记一次对某站点的渗透测试(bypass)
字数 1681 2025-08-25 22:58:28
渗透测试实战:从信息收集到Bypass WAF的完整过程
0x01 信息收集与初步探测
1.1 目标识别
- 目标站点使用
.action后缀,表明是Java环境(Tomcat + Struts2框架) - 初步尝试Struts2漏洞利用工具未果
1.2 端口扫描与服务发现
- 发现OA系统开放
- 通过信息收集手段获取OA系统账号密码(具体方法未详述)
1.3 目录与文件扫描
- 使用lijiejie的扫描工具发现DS_Store文件泄露
- 发现一处反射型XSS漏洞(但危害较低)
- 尝试寻找备份文件、目录爆破、中间件漏洞均无果
0x02 横向渗透与提权
2.1 同系统站点查找
- 通过FOFA搜索相同系统的其他站点
- 在另一站点发现可利用的Struts2漏洞
2.2 获取初始访问
- 利用Struts2漏洞上传Webshell
- 虽然工具显示上传失败,但实际成功获取Shell
- 使用冰蝎(Behinder)连接Webshell
2.3 权限提升
- 初始权限受限(无法执行systeminfo等命令)
- 更换为哥斯拉(Godzilla)的Webshell
- 使用哥斯拉的Shell操作模块执行命令
- 通过systeminfo检查补丁情况
- 使用https://bugs.hacking8.com/tiquan/查找可利用的提权漏洞
- 最终使用修改后的SweetPotato源码进行提权成功
0x03 源码审计与漏洞挖掘
3.1 源码获取
- 使用7z打包下载源码(哥斯拉默认打包功能存在问题)
3.2 框架分析
- 系统使用Hibernate + Struts2 + Spring框架
- 使用jd-gui反编译class文件获取Java源码
3.3 漏洞发现
-
文件上传漏洞:
- 发现无过滤的文件上传点
- 直接构造接口上传被拦截(站点可能进行了二次开发)
-
账号爆破漏洞:
- OA系统存在可爆破的账号密码
- 修改密码处未限制,可批量爆破账号改密码
0x04 系统更新后的二次渗透
4.1 新发现漏洞
-
弱口令漏洞:
- admin/admin直接登录成功
-
源码与密钥泄露:
- 发现并下载包含敏感信息的压缩包
- 泄露了aliyun、钉钉、wechat、云盘等密钥
- OSS可被接管,涉及其他公司资产
-
SSRF漏洞:
- 通过新增的ueditor组件(1.4.3 jsp版本)发现SSRF
4.2 WAF绕过技术
4.2.1 上传点发现
- 通过源码审计发现隐蔽上传点
- 初步测试:
- JPG文件可正常解析
- HTML文件触发Connection reset(硬件WAF存在)
4.2.2 后缀名绕过
- 尝试方法:
- 大小写(SVG)
- 换行
- 多个等号
- 加点
- 脏数据
- 不常见后缀名
- 去掉引号
- 最终绕过方法:
- 将Content-Type改为text/html
- 文件名只写"xxx"(无后缀)
- 系统自动重命名为时间戳.xxx
4.2.3 内容过滤绕过
- Java特征代码被拦截
- EL表达式可用
- 使用约80万字符的脏数据成功绕过
- 上传免杀Webshell(前辈提供的免杀马)
0x05 防御建议
-
Struts2防护:
- 及时更新Struts2框架
- 禁用不必要的Struts2功能
-
文件上传防护:
- 实施白名单文件类型验证
- 检查文件内容而不仅是扩展名
- 随机化上传文件名
-
认证安全:
- 禁用默认账号
- 实施强密码策略
- 增加登录失败锁定机制
-
敏感信息保护:
- 禁止源码打包下载
- 使用环境变量存储密钥
- 定期轮换密钥
-
WAF配置:
- 不仅拦截常见攻击模式
- 对异常大的请求保持警惕
- 实施深度内容检测
-
系统加固:
- 及时安装安全补丁
- 最小权限原则
- 定期安全审计
0x06 工具与资源
-
扫描工具:
- lijiejie的目录扫描工具
- FOFA网络空间搜索引擎
-
Webshell管理:
- 冰蝎(Behinder)
- 哥斯拉(Godzilla)
-
提权资源:
- SweetPotato提权工具
- https://bugs.hacking8.com/tiquan/(提权漏洞查询)
-
源码审计:
- jd-gui Java反编译器
-
免杀技术:
- 自定义Webshell
- 大流量脏数据混淆