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;
}

所以就跳到我们要的地方去了

以上,就是今天科普的内容。

欲知后事如何,且听下回分解。

注: 本次活动纯属个人行为,与任何组织无关。

相关日志

发表评论