网站地图    收藏   

主页 > 后端 > 网站安全 >

58同城多处持久型xss - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 58同城有好几处持久型xss。可以绕过客户端。事实再次证明客户端验证是纸老虎。漏洞证明:1. 用户个人资料处:测试代码: onmouseover=javascript:alert(document.cookie)2.爆网站模板http://my.58.c...

58同城有好几处持久型xss。可以绕过客户端。事实再次证明客户端验证是纸老虎。
漏洞证明:
1. 用户个人资料处:
 
 
测试代码:
" onmouseover=javascript:alert(document.cookie)>
 
2.爆网站模板
http://my.58.com/mobileposthistory/
 
 
3. 用户简历处绕过客户端xss(最严重)。
测试过程:
58只做了客户端验证,没有做服务端过滤(很危险的信号),所以能绕过。事实再次证明客户端验证是纸老虎。
(1). 填写简历,建立的每个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: www.2cto.com
测试代码(生成1*1的iframe异步传送cookie):
 
 
 

 
 
 
 
把简历投寄给hr,等他们上钩。
 
 
 
修复方案:

服务端过滤啊。

作者 random_

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论