【PortSwigger 实战:Basic SSRF against the local server 完整通关指南】

🔥 SSRF 初体验:一行代码轻松拿下本地管理后台!

—— PortSwigger 实战:Basic SSRF against the local server 完整通关指南

Payload: http://localhost/admin/delete?username=carlos
在这里插入图片描述

🎯 靶场速览

目标:该实验室有一个库存检查功能,会从内部系统获取数据。管理界面 http://localhost/admin 被限制为只能从服务器本地访问,外部浏览器直接访问会被拒绝。需要利用 SSRF 漏洞访问该管理界面,并删除用户 carlos

核心逻辑:库存检查功能存在缺陷——它盲目信任用户提供的 stockApi 参数,并由服务器后端向该 URL 发起请求。由于请求是由服务器自己发起的,完全符合“只允许本地访问”的规则,从而绕过了防火墙限制。

难度等级:Apprentice(学徒级)—— 基础 SSRF,无任何过滤防护。

🚀 分步攻击链

第 1 步:发现漏洞入口

访问任意产品页面,点击 “Check stock” 按钮,用 Burp Suite 拦截该 POST 请求。

在请求体(Request Body)中,你会发现一个参数 stockApi,其值为服务器原本要去请求的内部库存 API 地址。

将此请求 右键 → Send to Repeater

第 2 步:第一次 SSRF 攻击(侦察)

在 Repeater 中,将 stockApi 参数的值修改为:

http://localhost/admin

点击 “Send” 发送请求。

查看右侧的响应窗口,你不会看到库存信息,而是会看到 http://localhost/admin 页面的 HTML 源代码。这证明 SSRF 攻击成功,服务器替我们访问了本地的管理面板。

在返回的 HTML 中,搜索与删除用户相关的链接,找到:

/admin/delete?username=carlos

这是删除用户 carlos 的 API 端点。

第 3 步:第二次 SSRF 攻击(执行)

再次修改 stockApi 参数,构造完整的删除请求:

http://localhost/admin/delete?username=carlos

点击 “Send” 发送请求。

观察响应,会看到一个 302 Found 重定向响应,表示删除操作已成功执行。实验通过 ✅

💡 核心原理

什么是 SSRF?

SSRF(Server-Side Request Forgery,服务端请求伪造)是一种允许攻击者诱使服务器端应用程序代表攻击者向任意指定 URL 发起请求的安全漏洞。

本关的攻击链条
步骤谁在发起请求请求目标结果
正常流程服务器后端内部库存 API返回库存数据
第 1 次攻击服务器后端http://localhost/admin返回管理界面 HTML ✅
第 2 次攻击服务器后端http://localhost/admin/delete?username=carlos删除用户 ✅

关键点:管理界面限制的是外部访问(来自浏览器的请求),而 SSRF 发起的请求来自服务器自身,完全符合“本地访问”的安全规则,因此绕过。

本关属于哪种 SSRF?

这是 Open SSRF(有回显 SSRF) —— 攻击者可以直接看到服务器的响应内容,利用起来非常直观。与之相对的是 Blind SSRF(盲 SSRF) ,攻击者无法直接看到响应,需要通过带外(OOB)方式验证。

🔧 同类技巧拓展

技巧说明适用场景
直接使用 localhost最简单直接的方式,无任何过滤时首选本关适用
使用 127.0.0.1localhost 的 IP 地址等价形式localhost 被过滤时
IP 地址变形十进制(2130706433)、八进制(017700000001)、缩写(127.1)等IP 黑名单过滤时
域名绑定注册自己的域名解析到 127.0.0.1关键字过滤时
URL 编码绕过对 URL 进行多重编码关键字过滤时
利用开放重定向通过本地重定向接口做跳板主机限制时

✅ 排障自检清单

问题原因解决方案
修改 stockApi 后响应仍是库存数据修改的参数不对确认参数名是 stockApi,不是其他字段
响应显示 “Admin interface only available locally”请求未由服务器发起确认是在 Repeater 中修改并发送,而非浏览器直接访问
删除后实验未通过用户名拼写错误确认是 carlos(全小写)
URL 编码后请求失败编码过度本关无需任何编码,直接使用明文 URL 即可
找不到删除接口未仔细查看 HTML在第一次 SSRF 的响应 HTML 中搜索 deletecarlos

📌 总结

本关是 SSRF 漏洞的入门级靶场,核心思路极其简单:

找到有缺陷的参数 → 修改为目标内网地址 → 由服务器代为请求 → 成功绕过访问限制

作为 PortSwigger SSRF 学习路径的第一个实验室(Apprentice 难度),它没有任何过滤防护,只需将 stockApi 改为 http://localhost/admin 即可通关。

但这恰恰是 SSRF 漏洞最经典的利用场景:利用服务器对内网的信任,将服务器变成攻击内网的跳板。掌握这一基础,后续的黑名单绕过、白名单绕过、盲 SSRF 等进阶关卡才能得心应手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡布奇诺的派对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值