由于应用越来越多的需要和其他的第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向到不同的页面,譬如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个过程中如果实现不好就可能导致一些安全问题,特定条件下可能引起严重的安全漏洞。
成因及危害:网站接受用户输入的URL,并跳转到这个URL。但因为对这个URL的合法校验不够,导致可以跳转到黑客精心布置的钓鱼页面去,用户的用户凭据或其他用户信息则可能被骗取。
常见漏洞点
1. 用户登录/注册处
2. 分享链接处
etc...
高频关键词,瞅见了就随手测一下或当作参数fuzz。有的时候你比别人多测试几下 洞就来了
```
/?url=
/trans.html?url=
/login?service=
/login?url=
/jump.html?url=
/jump/?url=
/redirect=
/redirect_to=
/redirect_url
/url=
/jump=
/jump_to=
/target=
/to=
/link=
/linkto=
/domain=
/?mainUrl=
/login.php?r=
/?returnurl=
/click?url=
/url.php?url=
/?&errURL=
/loginredirect.jsp?_redirectPath=
/goto=
/login.htm?goto=
/ulink?url=
/u=
/recurl&url=
/location=
/request.s?d=
/link.php?url=
/logout&destUrl=
/origURL=
/?nexturl=
/PageUrl=
/Login?referurl=
```
一般来说这种漏洞是最好挖的,但某些情况会对重定向的地址做一个安全/黑白校验。匹配到黑名单则无法跳转
绕过方法(也可用于SSRF Bypass):
1.使用IPV4,IPV6,域名
2.将IP地址编码,如16进制
3.利用?,#,@,//,/,\,\\ etc.
?redirect_url=https://evil.com/white.site
?redirect_url=https://evil.com?white.site
?redirect_url=https://evil.com//white.site
?redirect_url=https://evil.com#white.site
?redirect_url=https://white.site@evil.com
?redirect_url=//evil.com
?redirect_url=https://evil.com{特殊字符}white.site
4.利用xip.io特殊域名
?redirect_url=https://white.site.127.0.0.1.xip.io
5.利用信用网站做中转
本文迁移自知识星球“火线Zone”