只要应用程序获取不受信任的数据并将其发送到客户端(浏览器)而未经验证,就会发生跨站点脚本(XSS)。这允许攻击者在受害者的浏览器中执行恶意脚本,这可能导致用户会话劫持,破坏网站或将用户重定向到恶意站点。
下面我们借助一个简单图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。
应用程序在构造中使用不受信任的数据而不进行验证。特殊字符应该被转义。
http://www.webpage.org/task/Rule1?query=try
攻击者将浏览器中的查询参数修改为 -
http://www.webpage.org/task/Rule1?query=<h3>Hello from XSS"</h3>
第1步 - 登录Webgoat并导航到跨站点脚本(XSS)部分。执行存储的跨站点脚本(XSS)攻击。以下是该场景的快照。
第2步 - 根据场景,我们以用户名:Tom
和密码tom
登录,如方案本身所述。点击“查看个人资料”,进入编辑模式。由于tom
是攻击者,它将 Javascript 脚本注入这些编辑框。
<script> alert("HACKED") </script>
第3步 - 更新结束后,Tom
会收到一个警告框并显示 "HACKED"
的消息,应用程序容易受到攻击。
第4步 - 现在按照方案,我们需要以jerry(HR)
身份登录并检查jerry
是否受注入脚本的影响。
第5步 - 以Jerry
身份登录后,选择Tom
并单击"view profile"
,如下所示。
在从Jerry
的账户中查看tome
的个人资料时,也会看到相同的消息框。
第6步 - 此消息框只是一个示例,但实际的攻击者可以执行的不仅仅是显示消息框。