什么是SSRF
该篇简介
您将了解什么是SSRF、它们可以产生什么样的影响、您将查看一些 SSRF 攻击示例、如何发现 SSRF 漏洞、如何规避输入规则,同时提供了练习反对尝试你新发现的技能。
什么是SSRF
SSRF 代表服务器端请求伪造。该漏洞允许恶意用户导致网络服务器向攻击者选择的资源发出额外的或经过编辑的 HTTP 请求。
SSRF的类型
SSRF 漏洞有两种类型:第一个是常规 SSRF,其中数据返回到攻击者的屏幕。第二个是盲目 SSRF 漏洞,即发生 SSRF,但不会将任何信息返回到攻击者的屏幕。
有什么影响
成功的SSRF攻击可能会导致以下任一结果:
- 进入未经授权的区域。
- 访问客户/组织数据。
- 能够扩展到内部网络。
- 显示身份验证令牌/凭据。
任务一问题:
SSRF 代表什么? 答案: Server-Side Request Forgery
与常规 SSRF 不同,另一种类型是什么? 答案:Blind
SSRF示例
以下示例显示了攻击者如何完全控制 Web 服务器请求的页面。
预期请求是 website.thm 服务器期望接收的内容,红色部分是网站将获取信息的 URL。
攻击者可以将红色区域修改为他们选择的 URL
预期请求:http://website.thm/stock?url=http://api.website.thm/api/stock/item?id=123
以下示例显示了攻击者如何仅通过利用目录遍历来控制路径即可到达 /api/user 页面。当 website.thm 收到 ../ 这是一条向上移动目录的消息,该目录删除了请求的 /stock 部分,并将最终请求转换为 /api/user
预期请求:http://website.thm/stock?url=/item?id=123
在下面示例中,攻击者可以控制向其发出请求的服务器子域。请注意,以 &x= 结尾的有效负载用于阻止将剩余路径追加到攻击者 URL 的末尾,而是将其转换为查询字符串上的参数 (?x=)。
预期请求:http://website.thm/stock?server=api&id=123
回到原始请求,攻击者可以强制 Web 服务器请求攻击者选择的服务器。通过这样做,我们可以捕获发送到攻击者指定域的请求标头。这些标头可以包含由 website.thm 发送的身份验证凭据或 API 密钥(通常对 api.website.thm 进行身份验证)。
预期请求:http://website.thm/sto