【发布时间】:2015-02-19 15:50:35
【问题描述】:
我最近有人对一个应用程序进行了渗透测试,它发现的一个关键问题是在这样的 URL 中传递了一些垃圾:
http://example.com/index.php/
%27%3e%3c%69%4d%67%20%53%72%43%3d%78%20%4f%6e%45%72%52%6f%52%3d%61%6c%65%
72%74%28%34%37%34%31%32%29%3e
问题在于,攻击者只需添加一个斜线,然后添加一些编码的 javascript(带有警报框的图像标签),这会杀死页面。简单有效的攻击。
如何针对它进行编码?我已经在清理所有预期的用户输入(例如当用户通过index.php?id=<script>alert(1)</script> 时)。那部分工作正常。
如何防止上述第一段下方引用的意外数据? (另外,这种类型的 XSS 攻击有具体的名称吗?)
【问题讨论】:
-
您是否接受它,然后按原样返回给其他用户?用户只有点击正确的链接才会受到影响?还是在您的页面上解析并执行?
-
我很好奇这个 URL 显示在哪里,或者 index.php 页面如何处理
$_GET(如果有的话?)。 -
应用程序查找通过 URL 传递的两个变量:
id和sort。这两个都被正确清理了——没有发现任何漏洞。不应显示其他用户传递的数据。 -
@acoder URL 中的 JS 不应该自己运行。你确定你没有在页面中呼应它吗?
-
这个数据是 urlencoded 应该没有什么区别 - 如果你通过 urldecoding 正确读取它,那么通过
htmlentities()保护仍然可以。
标签: javascript php security xss