我刚刚开始使用一个Web应用程序扫描器来查看我的Web应用程序有什么漏洞,并且得到的结果显示href标记中有xss漏洞。
例如,可以将警报脚本推送到以下URL的href中:
<a href="/contextroot/servlet.do?"><script>alert(81)</script>page=1">2</a>
这只是一个位置,用户可以在不同结果的表之间分页,并通过java TagSupport动态添加到jsp中。
我试过用javascript调用替换这个href的位置,但是这个漏洞仍然存在。我开始怀疑我在这里遗漏了一些关于xss的基本信息。有没有办法格式化这个标记,使它不容易受到xss的攻击?有没有资源来解释这是怎么回事?我试过研究,但是没有太多的运气...
1条答案
按热度按时间9jyewag01#
这听起来像是Reflected XSS的典型案例。
最有可能的情况是,服务器读取url参数,而不对它们进行转义,并直接将其注入DOM。然后,它将DOM提供给用户,从而导致任意脚本都可以注入DOM的行为。
解决方案:服务器应该在将查询参数注入DOM之前对其进行转义/净化。
PS.不太可能,但也可能是客户机(指JavaScript)提取查询参数并将它们注入DOM。