Skip to Content
ウェブアプリケーションセキュリティ 第2版
book

ウェブアプリケーションセキュリティ 第2版

by Andrew Hoffman
March 2025
Intermediate to advanced
444 pages
6h 9m
Japanese
O'Reilly Media, Inc.
Audio summary available
Content preview from ウェブアプリケーションセキュリティ 第2版

第12章 XML外部エンティティ XML外部エンティティ

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

XML External Entity (XXE) は、実行するのは非常に単純であることが多いが、壊滅的な結果をもたらす攻撃の分類である。この攻撃の分類は、アプリケーションのコード内で不適切に設定された XML パーサーに依存する。

一般的に言って、ほとんど全ての XXE 攻撃の脆弱性は、XML(または XML に似た)ペイロードを受け入れる API エンドポイントの結果として発見される。XMLを受け入れるHTTPエンドポイントは珍しいと思うかもしれないが、XMLライクな形式にはSVG、HTML/DOM、PDF(XFDF)、RTFなどがある。これらのXMLライクな形式は、XML仕様と多くの共通点があり、その結果、多くのXMLパーサーもこれらを入力として受け付ける。

XXE攻撃の背後にあるマジックは、XML仕様が外部ファイルをインポートするための特殊な注釈を含んでいることである。この特別なディレクティブは external entity と呼ばれ、XML ファイルが評価されるマシンで解釈される。つまり、特殊な細工を施した XML ペイロードをサーバの XML パーサーに送信すると、そのサーバのファイル構造内のファイルを危険にさらすことになる。XXEは、他のユーザのファイルを侵害したり、/etc/shadowのようなUnixベースのサーバが正しく機能するために必要な重要な資格情報を格納するファイルにアクセスするためによく使用される。

ゼクシオの基礎

すべてのXXE攻撃の核心は、XML仕様と、その弱点である エンティティの扱いである。XMLエンティティとは、XMLファイルやXML仕様の中で別のデータを参照するために使用される文字のセットである。おそらく、&amp;&lt; のようなXMLエンティティを見たことがあるだろう。これらは、アンパサンド(&)や小なり(<)という文字を参照する。これらは常に同じASCII文字を参照するため、 定義済み実体として知られている。

XML文書内で参照できるエンティティの中で、より危険な形式は カスタムエンティティである。これらの実体は、現在のXML文書外のデータを含め、プログラマが定義した広範囲のデータを参照することができる。

カスタム・エンティティの中で最も危険なのは、もちろん外部エンティティ参照である。XML文書型定義(DTD)内で外部エンティティを参照することで、外部ファイルを解析前のXMLファイルに取り込むことができる。次の例を考えてみよう:

<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///etc/passwd"> ]>

この例のエンティティは、Linuxシステムのユーザ・アカウントに関する機密情報を含むファイルetc/passwdを参照している。XXE攻撃は、このような外部参照を利用して、機密情報を漏えいさせたり、意図したアプリケーションの機能を変更したり、時にはリモートでコードを実行させたりする。

ダイレクトXXE

direct XXEでは、外部エンティティ・フラグを持つXMLオブジェクトがサーバに送信される。その後、XMLオブジェクトは解析され、外部エンティ ティを含む結果が返される(図 12-1を参照)。

図12-1. ディレクトリXXE

mega-bank.comには ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ハイパーモダンPython ―信頼性の高いワークフローを構築するモダンテクニック

ハイパーモダンPython ―信頼性の高いワークフローを構築するモダンテクニック

Claudio Jolowicz, 嶋田 健志, 鈴木 駿
Kubernetesで実践するクラウドネイティブDevOps

Kubernetesで実践するクラウドネイティブDevOps

John Arundel, Justin Domingus, 須田 一輝, 渡邉 了介
流暢なReact

流暢なReact

Tejas Kumar

Publisher Resources

ISBN: 9798341627505