4.1.2 XSS特殊攻击方式

目前已经出现了利用js的特性进行特殊编码变形绕过防御的手段,举例如下。

1.Jsfuck

Jsfuck可以针对常见的js函数、语法进行编码转换:


False       =>  ![]
True        =>  !![]
Undefined    =>  [][[]]
Nan         =>  +[![]]
0           =>  +[]
1           =>  +!+[]
2           =>  !+[]+!+[]
10          =>  [+!+[]]+[+[]]
Array       =>  []
Number      =>  +[]
String      =>  []+[]
Boolean     =>  ![]
Function    =>  []["filter"]
Eval        =>  []["filter"]["constructor"]( code )()
Window      =>  []["filter"]["constructor"]("return this")()

以常见的攻击载荷alert(/1/)为例:


alert(/1/)

编码后内容如图4-3所示。

图4-3 Jsfuck示例

2.Aaencode

js加密工具aaencode把js转为文字表情符号。以常见的攻击载荷alert(/1/)为例:


alert(/1/)

编码后内容如图4-4所示。

图4-4 aaencode示例