原文:Developers are lazy(or maybe busy)
漏洞:@符绕过造成URL重定向
作者:KatsuragiCSL
难度:低
正文
这次我要写一个我在私人程序中发现的开放重定向的BUG漏洞。尽管这个BUG的危害不太严重,但是去发现它的过程却很有趣!
我们暂且定义这个网站的域名为example.com,一开始我注册了一个测试账号,接着四处寻找可能存在漏洞的点,然后就发现了下面的URL链接:
|
|
条件反射就想到了要去测试开放重定向这种类型的漏洞!
首先,我尝试了最常规的payload:https://www.example.com/account/login?next=https://google.com 遗憾的是这个payload并没有生效,我没有被重定向到Google去!
然后,我又尝试另一个payload:https://www.example.com/account/login?next=https://example.com@google.com , //google.com , javascript:alert(1) 不过这些花里胡哨的东西并没有任何作用
最后灵犀一点,我换成这个payload之后终于有了一点反应:https://www.example.com/account/login?next=https://www.example.com&next=https://google.com 但这也仅仅只是有点反应而已,并没有实现真正的跳转,回车之后我的URL变成了:https://example.com%2Cgoogle.com 并且浏览器还提示错误
尽管又失败了,但是此时我相信自己能够利用这个点!从上面浏览器URL的变化可以发现服务器只是过滤了第一个参数,第二个参数中的值被保留了,只不过是用了一个逗号(%2C)连接而已
所以我又构造了最终的payload:https://www.example.com/account/login?next=https://www.example.com&next=@google.com
并且得到URL:https://example.com,@google.com 这其实就已经将我重定向到https://www.google.com了,不信你可以访问看看

最后让作者很郁闷的是虽然登陆页面的重定向漏洞被修复了,但是当他来到注册页面,bom一模一样的漏洞依然存在,此处省略n个单词….
打赏译者
