对TP站点的一次简单测试
字数 1073 2025-08-09 22:00:34
ThinkPHP 3.2.3 渗透测试实战教学文档
1. 目标系统信息
- 目标URL: http://x.x.x.x:8086/
- 系统类型: 疑似手机端页面
- 框架版本: ThinkPHP 3.2.3
2. 初步信息收集
2.1 路径探测
- 尝试访问
/admin路径时系统直接报错 - 通过报错信息确认了ThinkPHP 3.2.3版本
- 报错信息同时暴露了系统路径结构
2.2 已知漏洞分析
ThinkPHP 3.2.3版本存在以下已知漏洞:
- SQL注入漏洞
- 日志泄露漏洞
3. 漏洞利用过程
3.1 日志文件探测
尝试了以下常见ThinkPHP日志路径:
Application//Runtime/Logs/Admin/20_05_01.log
Application//Runtime/Logs/Index/20_05_01.log
Application/runtime/logs/home/16_09_09.log
成功访问到日志文件:
http://x.x.x.x:8086/Application/Runtime/Logs/Admin/20_11_18.log
3.2 日志分析技巧
- 发现可疑路径(需登录后访问)
- 直接搜索"admin"关键词
- 在日志中发现MD5加密的密码密文
3.3 密码破解
- 从日志中获取了两个用户名:
- admin
- test
- 获取到MD5加密的密码
- 使用工具破解MD5密文
4. 系统访问
4.1 成功登录
- 使用破解的凭证成功登录系统
4.2 后台功能评估
- 后台功能简陋
- 无文件上传功能
- 无法获取webshell
5. 关键工具与技术
- 路径探测工具:未明确说明,但需要能够快速测试常见路径
- 日志分析工具:文中提到"比较好用的工具",但未具体说明名称
- MD5破解工具:如Hashcat、在线MD5解密网站等
6. 防御建议
针对此类漏洞,建议采取以下防护措施:
-
日志安全:
- 禁止直接通过URL访问日志文件
- 设置日志目录访问权限
- 定期清理日志
-
框架安全:
- 及时升级ThinkPHP到最新版本
- 关闭调试模式
- 配置自定义错误页面
-
认证安全:
- 使用强密码策略
- 密码加盐存储
- 实现登录失败锁定机制
-
路径安全:
- 隐藏框架版本信息
- 禁用目录列表
- 配置自定义404页面
7. 扩展思考
-
如果存在SQL注入漏洞,可能的利用方式:
- 使用
/index.php?m=Home&c=Index&a=index&test=1)等参数测试 - 尝试基于时间的盲注
- 使用
-
其他可能的漏洞利用路径:
- 检查是否存在
/index.php?s=/index/\think\app/invokefunction等RCE漏洞 - 测试是否存在
/index.php?s=/Index/\think\config/get&name=database.username等配置泄露
- 检查是否存在
-
权限提升可能性:
- 检查后台是否有数据库管理功能
- 寻找可编辑的配置文件
- 检查服务器信息泄露
本教学文档基于实际渗透测试案例整理,仅供安全研究和防御参考,请勿用于非法用途。