我正在使用guestbook.php代码进行代码注入研究。 我使用的琐碎消毒剂功能如下:
php echo htmlspecialchars($ messages)
并尝试了几乎所有来自OWASP列表的不同攻击:https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
这些攻击都没有能够逃避过滤器。
有人会建议一个可以逃避这个过滤器并被执行的攻击吗?
答案 0 :(得分:0)
回声的上下文非常重要。
如果 htmlspecialchars
的结果是..
..那么它应该是“安全的”;通过这些限制和htmlspecialchars的操作,它可以从大多数显示的XSS中免费获得。
这是因为由于转义<
,>
和&
字符而无法通过创建不需要的HTML元素来输入恶意上下文。同样,它也会从另一个方向切断XSS,因为"
和'
转义无法终止引用的 HTML属性值。
以下是一些可能失败的示例案例。请注意,所使用的字符都不是'html special',因此它绕过了[not]执行的引用:
<!-- value used directly in script context -->
<script>alert(/hacked/)</script>
^^^^^^^^^^^^^^^
<!-- value used as an attribute -->
<a href="javascript:alert(/hacked/)">Hello!</a>
^^^^^^^^^^^^^^^^^^^^^^^^^^
<!-- if the attribute is not quoted a new attribute can be injected -->
<a id=fail href=javascript:alert(/hacked/) href=..>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^