admin 发表于 5 天前

服务端请求伪造(SSRF)——内网探测与攻击跳板

服务端请求伪造(SSRF)——内网探测与攻击跳板摘要:服务端请求伪造(SSRF, Server-Side Request Forgery)是一种由攻击者构造请求,诱导服务端发起对任意URL请求的漏洞。借助SSRF,攻击者可探测内网存活主机、读取云服务器元数据、攻击内部未授权服务,甚至实现远程代码执行。SSRF常出现在图片抓取、URL预览、外网回调等功能中。本文通过渗透案例剖析SSRF的多种利用方式,并讲解白名单校验、内网IP过滤、响应处理等防御策略。关键词:黑客网站攻击;SSRF;服务端请求伪造;内网渗透;渗透测试;云安全;防御策略一、引言在许多黑客入侵的深入阶段,攻击者已获得一个外围Web服务器权限,但难以直接访问内网。SSRF漏洞为攻击者提供了“跳板”,使Web服务器本身成为代理,对内网发起请求。2019年Capital One数据泄露事件中,攻击者利用SSRF读取AWS元数据获取凭据,导致大量数据泄露。SSRF的危害性不容小觑。二、SSRF漏洞原理2.1 漏洞成因应用程序根据用户提供的URL(或能间接指定URL的参数)向该地址发起HTTP/HTTPS请求,并将响应返回给用户,或者用于后续处理。如果没有对目标地址进行充分验证,攻击者可以指定内网地址、本地回环地址或特定协议(file://、gopher://、dict://)。2.2 典型危险代码(Node.js)javascript



const axios = require('axios');app.get('/fetch', async (req, res) => {    const url = req.query.url;    const response = await axios.get(url);    res.send(response.data);});
攻击者访问/fetch?url=http://169.254.169.254/latest/meta-data/获得云服务器IAM角色临时凭证。三、渗透测试利用方式3.1 内网主机探测与端口扫描
[*]使用http://192.168.0.1:8080,根据响应时间或页面内容判断端口开放情况。
[*]也可利用dict://协议探测服务banner。
3.2 读取本地文件(支持file协议)
[*]如果服务端支持file://,如file:///etc/passwd,则可直接读取文件。
3.3 攻击内网未授权服务
[*]Redis(gopher://协议构造RESP协议命令)、Memcached、MySQL、Elasticsearch等内部系统缺乏认证,可通过SSRF实现命令执行或数据篡改。
3.4 绕过限制技巧
[*]使用http://0.0.0.0、http://localhost、http://[::1]代替127.0.0.1。
[*]进制转换:2130706433代表127.0.0.1。
[*]使用重定向:若服务端仅检查原始URL,但跟随301跳转,可先提供一个白名单域名跳转到内网。
[*]URL解析差异:http://safe.com@127.0.0.1/某些库解析到127.0.0.1。
四、防御SSRF4.1 白名单校验(最彻底)
[*]仅允许请求预置的域名或URL前缀,使用正则严格匹配。示例:只允许api.example.com域下的路径。
4.2 如果必须支持用户提供IP/域名:
[*]解析URL,获取主机名,再解析为IP地址。
[*]检查IP是否为内网IP(如10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.0/8等),以及是否为IPv6链路本地地址。
[*]对域名解析结果也进行同样的内网IP检查(防止DNS rebinding攻击)。
4.3 禁用危险协议
[*]仅允许HTTP/HTTPS协议,禁止file://、gopher://、dict://、ftp://等。
4.4 响应处理
[*]将响应内容返回给用户前,进行清洗,或尽量只返回预期格式(如图片)。
[*]对于访问元数据服务IP(如169.254.169.254),直接拒绝。
4.5 网络层防护
[*]将Web服务器所在网络与内网核心服务隔离,使用防火墙限制Web服务器主动连接内网的端口。
五、检测SSRF漏洞
[*]手工测试:提交http://example.com(正常),再提交http://127.0.0.1:22,观察响应是否有差异或连接超时。
[*]外带信道:使用http://burpcollaborator.net,检查是否收到DNS/HTTP请求。
[*]自动化扫描器:SSRFmap、Burp Suite插件的SSRF检测。
六、总结SSRF让攻击者能够利用Web服务器作跳板攻击内网,防御重点在于严格的URL白名单或内网IP黑名单+禁止非HTTP协议。由于SSRF常与其他漏洞(如XXE、文件系统读取)组合使用,应将其视为高风险漏洞,并配合网络隔离策略。
页: [1]
查看完整版本: 服务端请求伪造(SSRF)——内网探测与攻击跳板