hi.baidu pet Dom-Xss Bug_黑狼's blog_百度空间
百度空间的宠物插件对用户输入变量未经任何过滤便存储,并不经过滤输出,造成XSS.

1.在http://hi.baidu.com/p__z/modify/sppet中,用户可以输入留言管理,提交后,未过滤直接储存.
2.在http://hi.baidu.com/ui/scripts/pet/pet.js中

将输出一段HTML:<p style="margin-top:5px"><strong>'+F[2]+"说:</strong>"+BdUtil.insertWBR(F[0], 4)+'</p>
其中BdUtil.insertWBR为
function(text, step) {
    var textarea = textAreaCache || getContainer();
    if (!textarea) {
        return text;
    }
    textarea.innerHTML = text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    var string = textarea.value;
    var step = step || 5, reg = new RegExp("(\\S{" + step + "})", "gi");
    var result = string.replace(/(<[^>]+>)/gi, "$1<wbr/>").replace(/(>|^)([^<]+)(<|$)/gi, function (a, b, c, d) {if (c.length < step) {return a;}return b + c.replace(reg, "$1<wbr/>") + d;}).replace(/&([^;]*)(<wbr\/?>)([^;]*);/g, "&$1$3;");
    return result;
}
在首页中,textAreaCache 和 getContainer()均不存在,故!textarea为true,未经过滤直接return text.造成XSS.




郑重声明:资讯 【hi.baidu pet Dom-Xss Bug_黑狼's blog_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——