1.URL介绍
开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信的站点跳转出去的,用户会比较信任。
2.URL跳转三种方式
(1)META标签内跳转
(2)javascript跳转
(3)header头跳转
观察响应包,每种跳转方式对应的漏洞和利用方法也不同。
3.漏洞产生原因
(1)代码层忽视URL跳转漏洞,或不知道/不认为这是个漏洞;
(2)代码层过滤不严,用取子串、取后缀等方法简单判断,代码逻辑可被绕过;
(3)对传入参数操作(域名剪切/拼接/重组)和判断不当,导致绕过;
(4)原始语言自带的解析URL、判断域名的函数库出现逻辑漏洞或者意外特性;
(5)服务器/容器特性、浏览器等对标准URL协议解析处理等差异性导致被绕过;
4.漏洞危害
URL跳转漏洞本身属于低危漏洞,但可以结合其他漏洞加以深入利用,主要的利用方式不仅限于钓鱼攻击,包括:
(1)xss漏洞:通过javascript:alert(0)或CRLF;
(2)获取用户权限(伪造钓鱼网站、窃取登录凭证token);
(3)绕过检测(窃取CSRF token,绕过SSRF、RCE黑名单);
(4)高级利用方法(配合其他功能/漏洞)。
5.漏洞过程
http://localhost:8081 我们要访问的网站http://www.xxx.com/攻击者搭建的网站
(1)攻击者模拟我没要访问的网站,搭建成一模一样的显示界面
(2)我们访问网站 有这个登录操作http://localhost:8081
(3)登录重定向到http://www.xxx.com/
(4)如果用户登录了帐号密码 其实就是在攻击者伪造的页面http://www.xxx.com/上登录,由于http://www.xxx.com/自己搭建 所以攻击者能够获取你登录的帐号密码