url重定向漏洞绕过方式总结
url重定向漏洞
URL重定向(URL redirection,或称网址重定向或网域名称转址),是指当使用者浏览某个网址时,将他导向到另一个网址的技术。而url重定向漏洞产生的原因是这个网址可控且没有做足够的校验,导致网站接受恶意用户输入的链接,跳转到一个攻击者控制的网站,而攻击者控制的网站往往是一个钓鱼页面,用于骗取用户的个人信息和登录口令。
简单示例
存在漏洞的url往往都具有以下格式:
http://www.example.com/xxx?server=http://www.example.com/yyy
后面的url就是其跳转的url,一般由于regist、login、logout这些位置在操作完之后都会有跳转操作,url跳转漏洞也多出现于这类位置。
绕过方式
检测是否存在信任域名绕过
由于过滤机制往往只检查后面url是否包含信任域名,所以可构造如下url进行绕过:
http://www.example.com/xxx?server=http://www.example.com.hack.com/hack.html
hack.com是攻击者网站,攻击者在hack.com中构造www.example.com.hack.com的解析且http://hack.com/hack.html 页面为攻击页面即可。
http://www.example.com/xxx?server=http://hack.com/www.example.com/
hack.com是攻击者网站,攻击者在hack.com中构造http://hack.com/www.example.com/ 页面为攻击页面即可。
多次重定向绕过
某些过滤机制可以允许跳转某些信任站点如 baidu.com,如果存在这种情况,可以使用多重跳转来规避过滤机制。
link?url= 是百度的默认跳转方式,后面是百度的缓存链接,上面链接的缓存是google页面,此url可通过百度二次跳转到谷歌。
特殊符号绕过
以下例子中,www.example.com为可信网站,www.hack.com为恶意网站
@绕过
http://www.example.com/xxx?server=http://www.example.com@www.hack.com
/绕过
http://www.example.com/xxx?server=/www.hack.com
//绕过
http://www.example.com/xxx?server=//www.hack.com
////绕过
http://www.example.com/xxx?server=////www.hack.com
\绕过
http://www.example.com/xxx?server=http://www.hack.com\www.example.com
#绕过
http://www.example.com/xxx?server=http://www.hack.com#www.example.com
?绕过
http://www.example.com/xxx?server=http://www.hack.com?www.example.com
.绕过
http://www.example.com/xxx?server=.hack.com
防御建议
跳转地址白名单化
如无法使用白名单,要合理校验跳转地址,限制绕过手段
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!