记一次SSRF->getshell
字数 1190 2025-08-05 12:50:18
SSRF漏洞利用实战:从SSRF到Getshell的完整渗透过程
1. 目标识别与初步侦查
1.1 目标框架识别
- 目标网站使用ThinkPHP框架
- 具体版本为ThinkPHP 3.2.3
- 后台系统基于OneThink模板(ThinkPHP的二次开发)
1.2 初始渗透思路
-
XSS攻击路线:
- 寻找XSS漏洞 → 获取管理员cookie → 进入后台 → 利用TP3.2.3缓存漏洞getshell
-
SQL注入路线:
- 寻找SQL注入点 → 获取账号密码 → 进入后台 → 利用TP3.2.3缓存漏洞getshell
-
日志泄露路线:
- 寻找登录日志 → 通过fuzzing获取日志文件 → 从中提取管理员凭证
2. 实际渗透过程
2.1 初步尝试
- XSS和SQL注入尝试未果
- 成功fuzzing出日志文件,但内容仅为扫描器payload,无实用价值
2.2 后台发现
- 尝试弱口令失败
- 通过报错信息确认系统为OneThink模板
- 搜索公开漏洞:
- 发现两个已知漏洞:SQL注入和SSRF
- SQL注入EXP尝试失败
2.3 SSRF漏洞利用
2.3.1 SSRF利用思路
- 读取服务器配置文件
- 探测内网服务(如Redis 6379端口)
- 获取服务器真实IP
2.3.2 实际操作
- 在攻击者VPS上设置监听
- 使用SSRF EXP发起请求
- 成功获取目标服务器真实IP
2.4 横向渗透
2.4.1 IP反查
- 使用微步在线进行IP反查
- 过滤无效IP后获得39个关联网站
2.4.2 弱口令测试
- 对39个网站后台进行弱口令测试
- 成功发现一个使用"网站域名"作为密码的后台(admin/domain)
2.5 最终getshell
- 进入后台后搜索公开EXP
- 成功利用EXP获取webshell
- 通过内网横向移动最终控制目标主站
3. 关键技术与工具
3.1 漏洞利用技术
- ThinkPHP 3.2.3缓存漏洞
- OneThink模板SSRF漏洞
- 内网横向渗透技术
3.2 使用工具
- Burp Suite:用于拦截和修改HTTP请求
- 微步在线:用于IP反查和情报收集
- 自定义监听脚本:用于接收SSRF回连数据
4. 防御建议
4.1 针对SSRF的防御
- 限制服务器出站连接
- 验证用户输入的URL
- 使用白名单机制限制可访问的资源
4.2 通用安全建议
- 避免使用默认或弱密码
- 及时更新框架和组件
- 限制错误信息的暴露
- 实施网络隔离,防止内网横向移动
5. 经验总结
- 框架识别是渗透测试的第一步,准确识别可大幅提高效率
- 公开EXP搜索是快速突破的关键
- SSRF漏洞不仅可以用于内网探测,还能用于获取真实IP
- 横向渗透往往能绕过主站的严格防护
- 密码策略不足是许多系统的通病,弱口令测试不应忽视
本案例展示了如何通过SSRF漏洞作为突破口,结合信息收集和横向渗透技术,最终实现从外网到内网的完整入侵链。