URL编码可以绕过xss文件?

时间:2012-08-20 20:04:43

标签: php xss

此处的第二段代码http://anautonomouszone.com/blog/xss-cheat-sheet声称通过网址编码绕过html特殊字符过滤(含义<>):

Bypass filter when it strips <script> tags:
%253cscript%253ealert(document.cookie)%253c/script%253e

显然这是URL编码,它使服务器不知道原始内容,但我不可能看到它何时转换回<script>

服务器像这样得到它,并将其发回。 HTTP内容未经过编码,因此用户可以按原样获取。

我错过了什么?这对于php函数htmlspecialchars是真的吗?

编辑:

在我在聊天中被误解之后,我会尽力让自己明白。

这取自XSS备忘单。和其他XSSes教程。这意味着,这是一种尝试绕过某些对抗 XSS的方法的方法。

我想要了解的很简单:

  • 它可以绕过哪些方法(即,在什么情况下这对攻击者有帮助?)
  • 是如何发生的?什么时候解码成为http-respone中的<script>
  • 我可以做些什么来保护我的网站安全?

请注意,这是在许多网站中,因此它可能不会引用百万分之一的开发人员错误,但很可能在某种程度上存在。

非常感谢。

1 个答案:

答案 0 :(得分:1)

有两种方式:

  • 查找标签的简单XSS过滤器/ IDS等如果不进行两次解码,可能会被愚弄
  • 由于软件的复杂性,应用服务器会不时地解码值两次
  • 即使已经由服务器完成,开发人员也会误解框架并添加额外的URL解码

修改 这是一个描述攻击的OWASP页面。在底部有两个链接到真正的漏洞: https://www.owasp.org/index.php/Double_Encoding