发现这些居然都没过滤 直接简单无脑打payload:<img src=1 onerror=alert(1)>,发现onerror后面全部被过滤为空。
当时以为onerror被过滤,替换了oneload,onpageshow,onmouseover,onbounce,onstart等
Tips:onstart,onbounce当时这两个本地调试的时候,就只有火狐能弹,chrome弹不出来。
当时第一感觉应该是空格的问题导致他们被分割 系统牛马的读取方式我也猜不到,于是尝试性的去把src=1和onerror之间的空格改成+看看会不会解析。
payload:<img+src=1+onerror=alert(1)>
居然发现!虽然onerror事件前面的+被没解析为空格但是确切发现了是空格的问题,同时还发现了()被url编码了一遍
空格过滤+圆括号过滤!简单有手就行.
为了万无一失重组一下payload:<img/src=1/onerror=alert`1`>,但是又发现这个src和onerror之间的/的又没有被解析为空格。看到“1/onerror=`1`”是整个双引号包住了,当作一个整体成为了src的来源值,所以onerror事件不会被执行
小彩蛋:当时由于这个系统每天只能回帖15次 我找F12群里的师傅们帮忙试几个payload,
我一直在编辑里面捣鼓毕竟没次数了,后来发现甘栗酿编辑怎么样也弹不了,重新回复发帖就可以弹。这边还过滤了alert但是Alert没过滤 但话又说回来编辑功能点这边Alert不会被解析所以导致编辑处弹不了窗。(其实还可以用别的弹窗事件,当是感觉Alert也会弹的,就没去尝试别的)
当时我这边的思路就是利用“再去尝试闭合掉,把前面的“和src=1后面的自己输入转义之后的”闭合,接着遇到了空格被正常解析 ,onerror后面的又被“”包住,且本地调试是包住带着反引号也是可以执行的
当时发现这个回显我有点迷糊所以本地调试了一下
发现是可以弹的,但是注意!我当时是在编辑里面改的!不是直接重新发帖,回过头发现这个payload 在发表评论是可以弹出来的!!!
后来就在群里讨论 ,讨论完就继续试。突然一声QQ提示音 打开一看尼玛出xss了
当时看这个payload还是有点糊涂,仔细理解了一边 和我自己当时琢磨的差不多 想去过滤为空重新组合一遍完整的,但是这个系统的过滤很奇葩 每当组合起来过滤之后的东西就不是自己想要的。同时由于自己在编辑里面测 导致什么都弹不了窗口。直到12点了 可以重新评论
打入自己刚开始在编辑处怎么也弹不出来的payload:
<img/src=#\"onerror=alert`whskxk`>成功弹窗。
我觉得刑,师傅们在测试的尽量弹console.log,由于我这边可以编辑修改掉 我图方便就直接在网页弹框了。
投稿邮箱:[email protected]
投稿QQ:3200599554
黑客极客技术、信息安全热点
安全研究分析