XSS Me警告 - 真正的XSS问题?

Pet*_*erB 1 php security xss user-input firefox-addon

我一直在使用Security Compass 的免费Firefox扩展XSS Me来测试XSS问题.但是,使用我所理解的安全过滤,XSS仍然会报告警告.这些准确的警告还是虚假的?

使用下面的代码作为测试用例:

<form method="post" action="">
<input type="text" name="param" value="<?php echo htmlentities($_POST['param'])?>">
<input type="submit">
</form>
<?php echo htmlentities($_POST['param'])?>
Run Code Online (Sandbox Code Playgroud)

我手动运行一些恶意软件,但没有一个在浏览器中执行,使用Charles调试代理我可以看到响应按预期编码.

但是,XSS Me会报告许多警告,就像它可以在HTML源代码中看到未编码的字符串一样: alt text http://img696.imageshack.us/img696/8850/xss.png

同时看着查尔斯,我可以看到字符串是编码的,应该是安全的,例如 &lt;IMG SRC=&quot;jav ascript:document.vulnerable=true;&quot;&gt;

  • 有没有我没有修复的漏洞?
  • 这些流氓警告信息是什么?
  • 如果是这样,另一个Firefox扩展(Firebug?)与XSS Me冲突?

Mys*_*tic 5

我在Security Compass工作,是Exploit Me工具的首席开发人员.

你是对的,XSS Me正在报告一个警告,因为这些攻击字符串似乎(对于XSS Me)从服务器完全未编码回来.另一个解析器/ JavaScript引擎(如IE 6/7/8,Safari或Chrome)可能会执行此代码,即使Firefox的解析器和JavaScript引擎没有.

XSS Me提交了两个请求:

  • 我们使用FireFox的JavaScript引擎检测漏洞的一个请求,我们将其称为"错误"
  • 第二个请求,我们通过简单地在HTML响应页面中查找攻击字符串来检测利用

您收到的警告是由第二个请求引起的.

如果您可以执行以下操作,我可以帮助您找到此问题的根本原因:

  1. 使用数据包嗅探软件(即Wireshark http://www.wireshark.org/)来检测攻击字符串而不是Charles.有时代理有一种修改或改变请求的方法

  2. 在Firefox中,您可以使用工具 - >插件并禁用除XSS Me之外的所有扩展吗?这样,您可以确定在到达XSS Me之前没有其他扩展正在更改响应(或请求).

  3. 在Firefox中查看响应页面的来源,以查看是否出现未编码的字符串

如果你想给我发一封电子邮件(tom@securitycompass.com),我很乐意帮助解决这个问题.如果它是XSS Me中的一个错误(我当然希望不会),那么我可以修补它并获得一个新的构建.

谢谢,

汤姆