XXE基本編


XXEとは

XMLの外部参照機能を使って、機密情報を含む内部ファイルを読み出す不正行為。

XXE応用編

機密情報の漏えいだけではなくて、ポートスキャンとかDoSとかいろいろとあるけど、このページでは省略。

XXEの対策

リンク集などを見てくれ

XXEと.NET Framework

XXEと.NET Framework

XXEと.NET Framework (SgmlReaderDll.dll)

XXEと.NET Framework (SgmlReaderDll.dll)

XXEとActiveScript(VBScript)/(ClassicalASP/WSH)

XXEとActiveScript

XXEとJava

XXEとJava

上記のリンクされたページで、各種実験で使用したXMLファイル

XMLファイル : c:\z\aa.txt

外部参照で読みだされるファイル

aa.txt
Hello

XMLファイル : in1.xml

外部参照のあるXML

in1.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///c:/z/aa.txt">
<!ENTITY bar "alice">
]>
<xml>
&xxe; JaJaJaFa &bar;
</xml>

XMLファイル : in.xml

外部参照のない一般的なXML

in.xml
<root>
<abc>xyz</abc>
<aaa><bbb>ccc</bbb></aaa>
</root>

リンク

SQL Server
XML のセキュリティに関する考慮事項
https://docs.microsoft.com/ja-jp/sql/ado/guide/data/xml-security-considerations?view=sql-server-2017

ADO
XML セキュリティに関する考慮事項
https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/xml-security-considerations

LINQ to XML のセキュリティ (C#)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-security

NIB: System.Xml のセキュリティ ガイドライン
https://docs.microsoft.com/ja-jp/previous-versions/ms172416(v=vs.110)

XMLDOM リファレンス
http://ash.jp/xml/dom/index.htm

resolveExternals Property
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms762283(v=vs.85)