XSS

2019-07-21  本文已影响0人  byc_404

  xss.haozi.me 也不记得是从哪里知道了这个用于做xss的简单网站。整体上各种绕过方法还是值得去总结一下的。正好自己javascript也就学了点浅显的,以此为契机深入一下

目标是alert(1)

0x00

先看源码

0x00

源码里并没有什么特殊过滤的措施,所以知道xss的原理就可以直接上payload

0x00payload

0x01

0x01

这里的不同之处就在于<textarea>标签,其实也没有什么特别之处。就是如果按照上面的思路来构造payload,出来的内容就在textarea表示的文本框中。因此先闭合textarea即可。

0x01payload

0x02

0x02

这种形式的xss构造实话说在做完题后又在各种web安全书籍中关于xss的例子中见到:直接给value一个空值,闭合input。后面就一样了。

0x02payload

0x03

0x03

从这道题开始,有了一些绕过的限制。比如这里是把括号()换成空字符。(正好了解了js里的字符串替换用到的正则格式/[ ]/g  , /[ ]/是标准格式,其中g表示全局匹配)

因此alert(1)就用不上了,,,但是还有这样的一个方法:利用模板字符串,也就是可以嵌入表达式的字符串。用反引号``替代普通字符串的单引号与双引号。模版字符串可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串,这被称为“标签模板”功能。

所以:

0x03payload


0x04

0x04

于是做完0x03,0x04马上就把``给过滤了。。。

后来去看writeup时,发现<svg>标签可以表示实体字符,所以查了下括号的实体字符,分别为&#40;,&#41;payload如下

0x04payload

0x05

0x05

这个的限制也很有意思,把注释的-->闭合符号换成笑脸。

但其实,html注释的闭合还有一种(这真的是考基本功啊), 就是采用<!--  --!>的对称式注释方法。因此payload就显而易见了。

0x05payload


0x06

0x06

这里是过滤掉以auto开头或者on开头,=等号结尾的标签属性并替换成_,且忽略大小写,所以常规的标签闭合都不能用了。

乍一看感觉已经无解了啊。但是其实,on.*这个正则表达式中的小数点限定只匹配除换行符以外的其他字符。那么这里就可以用换行来绕过了。这样一来,正则不会匹配,即使它是on开头且有等号。

具体使用input里哪个属性,好像有多种方法,网上大部分wp都用的是onmousemove=alert(1),不过我自己试的时候并没有成功。所以用的是onerror属性

0x06payload

0x07

0x07

这里的正则匹配了<开头>结尾的标签字符串,且忽略了大小写。

其实可以用浏览器的容错性,少一个>并不影响。

0x07payload

0x08

0x08

此处能将</style>标签给换成稀奇古怪的一堆字符,也是为了防止我们闭合。

但是换行依旧有效!此处也只用换个行就可以解决正则匹配的问题。

0x08payload

0x09

0x09

这里的第一个要求是input内容必须以上面的网址开头,所以先写出网址后,考虑在script标签中注入。这里先闭合掉前面含有网址的sciprt后,加上alert(1)内容,后面还有</script>未匹配,因此考虑直接注释掉。

0x09payload


0x0B

0x0B

转大写的解决方法其实很简单,就是利用实体编码绕过

0x0Bpayload

0x0D

0x0D

正则匹配<,/,",'这四个符号,并且替换为空,但是输入点是在//注释后。

所以用换行来躲单行注释,同时为了处理单引号,用html注释闭合。

0x0Dpayload


0x0F

0x0F

这里将一些特殊字符编码处理了,但是这里的xss点在img标签中,看起好像没办法闭合了,但是这里的位置是在onerror属性中,所以我们可以闭合前面部分的代码,引出我们要的xsspayload,并且注释掉后面部分的代码。

0x0Fpayload

0x10

0x10

这道很简单,直接alert(1)都可以,就不贴payload了

0x11

0x11

转换了一些字符,但是可以注意到双引号"转换成\"正好将\引入在内。因此面对/变为\/\/就可以直接构造payload

0x12

0x12

由于输入点在script标签外,则不能考虑html实体编码

与上题颇为相似,双引号变成\\",在实际输出中可以在添一个\来转义掉第一个\绕过

0x12payload

由于一些原因,其中几道题因为用到外部js不知为何不能通过,就不写题解了。

上一篇 下一篇

猜你喜欢

热点阅读