XSS Cheat Sheet

如果碰到没遇到或者不知道的,建议大家先Google、看文档。

首先大家可以先看下这个网站:

https://portswigger.net/web-security/cross-site-scripting/cheat-sheet

如果测试的时候在这个网站上找不到可以利用的方法的话,那...emmm...就放弃吧。

下面是我在工作中常用的一些方法,大部分均来自于网络上的各个表哥的思路,同时有自己的一些发散、扩展,我先替我自己对表哥们说声谢谢了。

1. 拼接拼接函数:

代码语言:javascript复制top、this、self、parent、frames、content、window比如:

代码语言:javascript复制

2. 编码常见的编码类型:URL编码、base64编码、Hex编码、JS8编码、JS16编码、Unicode编码、html编码

既然是编码肯定需要一些函数来执行,比如:eval,setTimeout,setInterval,constructor,execScript(IE)等

代码语言:javascript复制# URL

# base64

# JS8

# JS16

# unicode

XSS Test

XSS Test

# Ascii

3. 字符串利用正则表达式返回字符串

代码语言:javascript复制eval('~a~le~rt~~(~~1~~)~'.replace(/~/g, ''))

eval(/~a~le~rt~~(~~1~~)~/.source.replace(/~/g, new String()))

XSS Test

XSS Test

利用toString转换字符串。

整数toString(radix)转字符串, 第一个点表示浮点数,第二个点表示调用函数

代码语言:javascript复制XSS Test

alert字符串用parseInt函数,以基数为30转化后为8680439

parseInt('alert',30) == 8680439

toString函数将返回的数字8680439,以基数为30还原

8680439..toString(30) == alert

4. 函数多样调用代码语言:javascript复制XSS Test

XSS Test

XSS Test

XSS Test

XSS Test

XSS Test

XSS Test

XSS Test

模板字符串:反引号``

XSS Test5. 利用数组等的功能函数代码语言:javascript复制XSS Test

XSS Test

XSS Test

XSS Test

XSS Test

XSS Test利用拼接数组函数

concat()不仅仅可以用于连接两个或多个数组,还可以合并两个或者多个字符串

代码语言:javascript复制