跨站脚本攻击,简称 XSS,是一种允许攻击者在受害者的浏览器上执行恶意 JavaScript 代码的漏洞。XSS 是一种客户端注入漏洞,因此它不会直接影响服务器,而是以该 Web 应用程序的客户端(用户)为攻击目标。
所以,XSS 的关键就在于“我从哪里来,要到哪里去”。
“我从哪里来” → 注入点
“我要到哪里去” → 反射点
注入点:即你可以注入内容的输入字段。下面举个例子:
在上面的图片中,你可以看到有两个注入点:1. 路径;2. 搜索框。
一定要记住:路径也是一个潜在的注入点。
跨站脚本攻击(XSS)可能会以这样的形式出现:https://vulnsite.com/”>
现在,如果你点击搜索,它将会显示如下内容:
我们可以看到,搜索框由一个名为 “q” 的参数控制,这意味着搜索框和 “q” 参数其实是同一个注入点。
网站上有很多注入点,其中很多可能是 POST 参数,你可以通过 Burp 爬虫来发现它们;还有很多注入点存在于需要身份验证的端点上,这意味着要找到它们,用户必须先登录;此外,URL 中的参数可以通过诸如 waybackurls、paramspider 等工具来发现,当然还有路径等也可能是注入点。
现在,让我们来谈谈反射点:
响应代码中,注入内容反射回来的位置被称为反射点。
我们将了解跨站脚本攻击(XSS)的三种反射场景:
作为文本在 HTML 标签之间反射
当注入的输入在两个 HTML 标签的开始和结束标记之间反射回来时,我们可以称之为“作为文本在 HTML 标签之间