academy CSRF 7問目 samesite をGETで回避

CSRF

academy CSRF 7問目
Lab: SameSite Lax bypass via method override

順番飛ばしてすみません。
新しく増えていた問題で面白そうだったので..

ログインして、POST /login リクエストを確認
setCookieに、samesiteがないので、今回は、デフォルトのlaxが適用される

メール変更する

POST /my-account/change-email リクエストを確認
CSRFトークンらしきものがないみたい。

samesite=laxさえ突破できれば、CSRF脆弱性を実証できるのでは?
getに変えれば突破できるかも

POST /my-account/change-emailをリピータに渡して
右クリックで、change request method して、send

405 method not allowed だめみたい

GETのパラメータに、&_method=POST を追加

302 found おおっ、これでいけたみたい

あとは、エクスプロイトサーバーのbodyに
このURLを飛ばすJS文を作って貼り付けます

Deliver exploit to victitm(被害者へ送る)ボタンを押して、クリア!
メールアドレスも変更されている

今回のポイントは、GETメソッドにすれば、samesite=laxを回避できるとのことで、
なんと、GETのパラメータに、_method=POST を渡せば通ってしまうところ。
だから、CSRF対策で、GET封じが大事なんですね。

_method=POSTでいける設定のサーバーってどれくらいあるんでしょうか?
さらに興味が湧いてきます

–)v

コメント

タイトルとURLをコピーしました