文章总结: 本文是PortSwiggerSSRF入门靶场BasicSSRFagainstthelocalserver的通关指南。核心思路是利用库存检查功能中用户可控的stockApi参数,将值修改为http://localhost/admin,由服务器后端发起请求绕过本地访问限制。通过两次SSRF攻击,先侦察获取管理界面HTML中的删除接口,再执行删除用户carlos的操作。文章详细介绍了攻击步骤、原理及同类技巧拓展。 综合评分: 85 文章分类: 渗透测试,红队,漏洞分析,WEB安全
【PortSwigger :Basic SSRF against the local server 完整通关指南】
原创
卡布奇诺的派对 卡布奇诺的派对
卡布奇诺的派对
2026年7月13日 08:11 河南 标题已修改
在小说阅读器读本章
去阅读
🔥 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.1 | localhost 的 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 中搜索 delete 或 carlos |
📌 总结
本关是 SSRF 漏洞的入门级靶场,核心思路极其简单:
找到有缺陷的参数 → 修改为目标内网地址 → 由服务器代为请求 → 成功绕过访问限制
作为 PortSwigger SSRF 学习路径的第一个实验室(Apprentice 难度),它没有任何过滤防护,只需将 stockApi 改为 http://localhost/admin 即可通关。
但这恰恰是 SSRF 漏洞最经典的利用场景:利用服务器对内网的信任,将服务器变成攻击内网的跳板。掌握这一基础,后续的黑名单绕过、白名单绕过、盲 SSRF 等进阶关卡才能得心应手。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:卡布奇诺的派对 卡布奇诺的派对 卡布奇诺的派对《【PortSwigger :Basic SSRF against the local server 完整通关指南】》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。



![[随波逐流]WEB安全工具这款安全神器藏不住了!](/images/random/titlepic/7.jpg)





评论