|
服务端请求伪造(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)[size=12.573px]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 内网主机探测与端口扫描3.2 读取本地文件(支持file协议)3.3 攻击内网未授权服务3.4 绕过限制技巧四、防御SSRF4.1 白名单校验(最彻底)4.2 如果必须支持用户提供IP/域名:4.3 禁用危险协议4.4 响应处理4.5 网络层防护五、检测SSRF漏洞六、总结SSRF让攻击者能够利用Web服务器作跳板攻击内网,防御重点在于严格的URL白名单或内网IP黑名单+禁止非HTTP协议。由于SSRF常与其他漏洞(如XXE、文件系统读取)组合使用,应将其视为高风险漏洞,并配合网络隔离策略。
|