Shikata Ga Nai

Private? There is no such things.

DOM XSS in document.write sink using source location.search inside a select elementの考え方について詳しく書いてみて

Hello there, ('ω')ノ

 

PortSwiggerのWEBアカデミーにはソリューションがあるのですが

それだけでは、なかなか理解できないところもあるかと。

 

 

脆弱性を見つけ出すにはWEBの仕組みを理解することろからはじまって。

一つのアクションについて丁寧にリクエストを確認したりと。

まずは、View detailsを。

 

 

 

該当するリクエストとパラメータを確認しておいて。

 


次にCheck stockを。

 

 

ここでもエンドポイントとパラメータを。

ページを再描画するリクエストは送信されていないようなので。

在庫数は、JavaScriptで処理されていると考えて。

 

 

ソースコードを確認して、該当箇所を読んでいると。

下記の処理のところでstoreIdパラメータを渡すと受け取って処理してくれそうで。

 var store = (new URLSearchParams(window.location.search)).get('storeId');

 

 

GETメソッドなので、URLに下記のパラメータを追加してみると。

 &storeId=test

 

 

狙い通りにプルダウンメニューに反映され。

そこで、コントールできるパラメータがアウトプットできることがわかったので。

XSSの検証に入ることに。

 

 

該当するリクエストを確認して、このリクエストのStoreIdパラメータに

XSSのペイロードを入れて検証していくわけで。

 

 

Best regards, (^^ゞ