XXE基本編 

# XXEとは

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

![0001.png](https://qiita-image-store.s3.amazonaws.com/0/182822/084f8674-71a1-259c-cfd6-49741596e03a.png)

# XXE応用編

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

# XXEの対策

リンク集などを見てくれ

# XXEと.NET Framework

[XXEと.NET Framework](https://qiita.com/tomoki0sanaki/items/1987ecd472a1fd325d71)

# XXEと.NET Framework (SgmlReaderDll.dll)

[XXEと.NET Framework (SgmlReaderDll.dll)](https://qiita.com/tomoki0sanaki/items/8a4e0442c70628d8a1e8)

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

[XXEとActiveScript](https://qiita.com/tomoki0sanaki/items/9e2c0438d972220de145)

# XXEとJava

[XXEとJava](https://qiita.com/tomoki0sanaki/items/b1ff35ebdf701b97390d)


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

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

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

```text:aa.txt
Hello
```

## XMLファイル : in1.xml

外部参照のある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

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

# リンク

- [XXE (XML eXternal Entity) Attack](http://www.securiteam.com/securitynews/6D0100A5PU.html)
- [XMLをparseするアプリのセキュリティ](http://d.hatena.ne.jp/teracc/20090621#1245559467)
- [XMLをParseするアプリのセキュリティ（補足編）](http://d.hatena.ne.jp/teracc/20090718#1247918667)
- [属性値のXXE攻撃](http://d.hatena.ne.jp/teracc/20100703#1278138339)
- [デベロッパーズコーナー：Javaプログラミングを極める「DoS攻撃への対策」（１）](http://www.utj.co.jp/xml/dev/java/dxjava_10.html)
- [REXMLのDoS脆弱性](https://www.ruby-lang.org/ja/news/2008/08/23/dos-vulnerability-in-rexml/)
- [System.Xml のセキュリティに関する考慮事項](https://msdn.microsoft.com/ja-jp/library/ms172415.aspx)
- [NIB: System.Xml のセキュリティに関する考慮事項](https://docs.microsoft.com/ja-jp/previous-versions/ms172415(v=vs.110))
- [Preventing XXE in PHP](https://websec.io/2012/08/27/Preventing-XXE-in-PHP.html)
- [PHPプログラマのためのXXE入門](https://blog.tokumaru.org/2017/12/introduction-to-xxe-for-php-programmers.html)
- [XXE攻撃 基本編](https://www.mbsd.jp/blog/20171130.html)
- [XMLプロセッサ Xerces 2](http://msugai.fc2web.com/java/XML/xerces.html)
- [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing)
- [XML と PHP のイケナイ関係 (セキュリティ的な意味で) Introduction of XXE attack and XML Bomb with PHP](https://www.slideshare.net/ebihara/phpcon-2013xmlphpvuln)
- [【緊急リリース】すべてのバージョンの OpenPNE 3、 opOpenSocialPlugin、 opWebAPIPlugin における XML 外部実体参照に関する脆弱性対応のお知らせ (OPSA-2013-003)](http://www.openpne.jp/archives/12091/)
- [CakePHP 2.2.0-RC2 XXE Injection](https://packetstormsecurity.com/files/114762)
- [Zend Framework の XXE 脆弱性対策 (ZF2014-01) と zendframework/ZendXml のススメ](https://co3k.org/blog/zf2014-01-xxe-protection)
- [XXE (Xml eXternal Entity) Attack](http://www.securiteam.com/securitynews/6D0100A5PU.html)
- [How we got read access on Google’s production servers](https://blog.detectify.com/2014/04/11/how-we-got-read-access-on-googles-production-servers/)
- [リクエストフォージェリを再考 – リクエストのインジェクションと考える](https://blog.ohgaki.net/reconsidering-request-forgery)
- [XXEに関するKenji_sのブックマーク](http://b.hatena.ne.jp/Kenji_s/XXE/)
- Java - [javax.xml.parsers.DocumentBuilderFactory](https://docs.oracle.com/javase/jp/6/api/javax/xml/parsers/DocumentBuilderFactory.html)
- .NET Framework [System.Xml.XmlDocument](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmldocument?view=netframework-4.7.2)
- .NET Framework [System.Xml.XmlDocument#XmlResolver](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmldocument.xmlresolver?view=netframework-4.7.2)
- .NET Framework [System.Xml.XmlResolver](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmlresolver?view=netframework-4.7.2)
- .NET Framework [System.Xml.XmlSecureResolver](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmlsecureresolver?view=netframework-4.7.2)
- .NET Framework [System.Xml.XmlUrlResolver](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmlurlresolver?view=netframework-4.7.2)
- .NET Framework [System.Xml.XmlXapResolver](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmlxapresolver?view=netframework-4.7.2)
- .NET Framework [System.Xml.XmlPreloadedResolver](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.resolvers.xmlpreloadedresolver?view=netframework-4.7.2)



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)


https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms762283%28v%3dvs.85%29