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
同时看着查尔斯,我可以看到字符串是编码的,应该是安全的,例如 <IMG SRC="jav ascript:document.vulnerable=true;">
我在Security Compass工作,是Exploit Me工具的首席开发人员.
你是对的,XSS Me正在报告一个警告,因为这些攻击字符串似乎(对于XSS Me)从服务器完全未编码回来.另一个解析器/ JavaScript引擎(如IE 6/7/8,Safari或Chrome)可能会执行此代码,即使Firefox的解析器和JavaScript引擎没有.
XSS Me提交了两个请求:
您收到的警告是由第二个请求引起的.
如果您可以执行以下操作,我可以帮助您找到此问题的根本原因:
使用数据包嗅探软件(即Wireshark http://www.wireshark.org/)来检测攻击字符串而不是Charles.有时代理有一种修改或改变请求的方法
在Firefox中,您可以使用工具 - >插件并禁用除XSS Me之外的所有扩展吗?这样,您可以确定在到达XSS Me之前没有其他扩展正在更改响应(或请求).
在Firefox中查看响应页面的来源,以查看是否出现未编码的字符串
如果你想给我发一封电子邮件(tom@securitycompass.com),我很乐意帮助解决这个问题.如果它是XSS Me中的一个错误(我当然希望不会),那么我可以修补它并获得一个新的构建.
谢谢,
汤姆
| 归档时间: |
|
| 查看次数: |
4276 次 |
| 最近记录: |