The Week of Baidu Bugs – Day 01: 任意URL跳转漏洞
来源:大风起兮云飞扬
搬来百度不久,所以花了点小时间找了找baidu的漏洞,收集了一点,会陆续发出来。
Baidu的安全做的还是挺不错的,至少核心功能模块的漏洞还是比较少,看的出来网站对安全还是挺上心。
这次将在这里陆续披露一些漏洞的细节和POC,并讲讲漏洞的原理,希望百度能够尽快fix这些漏洞或者bugs。同时也搞搞科普,看看漏洞是怎样形成的,怎样造成危害的。
以后有机会可以和朋友们再搞搞The Month of Baidu/QQ/xxx Bugs之类。
今天是”The Week of Baidu Bugs“(WoBB)的第一天,由潜入深,先讲讲URL跳转漏洞。
这种漏洞往往是被利用来钓鱼,目前很多网站都有类似的漏洞。
一般形式如下: http://www.fvck.com/?jmpurl=http://www.attacker.com
从链接功能上看,应该是做一个跳转,但是jmpurl没有对跟的域名做限制,可以跳到任意地址去。
所以攻击者可以构造这个link,然后就跳到他自己的网站去了。
我们知道,目前钓鱼者往往喜欢在IM里或者是邮件里发送一些欺诈网站,比如欺骗说中奖了一类。
而我们的对抗方法一般是检查域名是否为自己的网站: fvck.com
IE8和FF都有一个高亮显示主域名的方式来对抗这种基于URL的欺骗(参考我前不久写的IE8安全新特性),那么如果是这种URL跳转漏洞,类似的防御方法就变得一点用都没有了。
如下图,在QQ中,不同域名的链接的提示是不同的
言归正传,baidu的URL跳转漏洞如下:
http://passport.baidu.com/ubrwsbas?u_jump_url=http://www.ph4nt0m.org
passport.baidu.com是baidu的登录入口,其中只要是有 u_jump_url 这个参数的地方,后面的跳转地址都是可以控制的,可以指向我们的任意链接。
我给出的link只是其中一个,你还可以去找找带了u_jump_url这个参数的其他链接,都能够由自己控制。
除了这个参数的问题外,还有一个基于DOM的跳转漏洞
构造以下链接:
http://hi.baidu.com/aullik5/album/默认相册#.ph4nt0m.org
然后刷新页面,看到了什么?是的,跳转到了 http://hi.baidu.com.ph4nt0m.org
问题出在如下代码
提交后,服务器返回中有
<script language=”javascript”>
<!–
var hash=window.location.hash;
if(hash.replace(/#+/,””).length>1)
{
var arg=window.location.href.split(/#+/)[1];
window.location=”http://hi.baidu.com”+arg;
}
所以就跳到我们要的地方去了
以上,就是今天科普的内容。
欲知后事如何,且听下回分解。
注: 本次活动纯属个人行为,与任何组织无关。