从druid未授权到getshell
字数 1171 2025-08-03 16:43:28
从Druid未授权访问到GetShell的完整利用过程
前言
本文详细记录了一个从Druid未授权访问漏洞到最终获取WebShell的完整渗透测试过程。目标网站具有注册功能但需要邀请码,通过一系列技术手段最终实现了系统入侵。
漏洞发现与利用过程
1. Druid未授权访问发现
通过目录扫描发现目标系统存在Druid监控界面未授权访问漏洞。Druid是阿里巴巴开源的一款数据库连接池工具,如果配置不当,其监控页面可能无需认证即可访问。
2. 获取有效Session
通过Druid的URL监控功能发现文件上传接口,但该接口需要登录后才能使用。
利用工具druid_sessions(https://github.com/yuyan-sec/druid_sessions)从Druid监控页面提取Session信息。
爆破Session过程:
- 尝试使用无效Session访问受保护页面会返回错误
- 通过爆破找到有效的Session后可正常访问受保护页面
3. 文件上传漏洞利用
使用获取的有效Session访问文件上传接口:
- 尝试直接上传.jsp/.jspx文件,被系统拦截提示"非法"
- 测试其他后缀名(如1.xxx)可以成功上传,确认存在任意文件上传漏洞
- 系统仅对.jsp/.jspx等常见WebShell后缀做了黑名单过滤
4. Windows特性绕过黑名单
利用Windows文件系统特性实现绕过:
- 使用特殊格式
1.jsp::$DATA作为文件名上传 ::$DATA是Windows NTFS文件系统的流特性,可以绕过简单的后缀名检查- 上传成功后,实际文件会被保存为
1.jsp,从而获得WebShell
关键点总结
-
Druid未授权访问:检查
/druid/index.html等路径,确认是否存在未授权访问 -
Session提取与爆破:
- 从Druid监控页面提取Session
- 使用工具自动化爆破有效Session
- 验证Session有效性
-
文件上传漏洞利用:
- 确认黑名单过滤机制
- 测试各种后缀名验证任意文件上传
- 利用Windows特性绕过过滤(
::$DATA)
-
防御建议:
- 配置Druid监控页面访问权限
- 加强Session管理,避免Session泄露
- 文件上传应使用白名单机制而非黑名单
- 对上传文件名进行规范化处理,去除特殊字符
工具与资源
- Druid Session提取工具:https://github.com/yuyan-sec/druid_sessions
- Windows文件流特性:可用于绕过的多种格式(
::$DATA,:DATA,::$INDEX_ALLOCATION等)
注意事项
- 本文所述技术仅限安全研究使用
- 未经授权测试他人系统属违法行为
- 实际渗透测试必须获得书面授权