ThinkPHP框架特征及漏洞复现
ThinkPHP是一款运用极广的PHP开发框架。
Web特征
访问8080会进入默认页面,其中包含了thinkphp关键字以及版本信息相关内容:
调试模式特殊响应:访问 /index.php?s=/index/index/xxx(传入不存在的方法),若返回含 think\exception\ClassNotFoundException 的堆栈信息,直接确认框架。
错误页面与异常响应特征:当访问不存在的路径、传入错误参数或开启调试模式时,ThinkPHP 会返回带框架特征的错误页面 / 信息
一些特征目录:
| 特征路径 / 文件 | 说明与探测价值 |
|---|---|
/index.php |
框架默认入口文件(必存在),访问后若返回含 ThinkPHP 字样的页面/错误,直接确认。 |
/public/index.php |
TP5+ 推荐的入口文件路径(分离 Web 根目录),旧版本可能无 public 目录。 |
/runtime/ |
默认缓存/日志目录(权限配置不当可访问),目录列表或内部文件(如 log/*.log)可能含框架标识。 |
/vendor/ |
Composer 依赖目录(TP5+ 必用),若可访问,vendor/topthink/framework/ 直接证明框架。 |
/vendor/composer.json |
依赖配置文件,require 字段会明确 topthink/framework: x.x.x,直接获取精确版本。 |
/vendor/topthink/framework/src/think/Version.php |
TP5+ 版本定义文件,内容含 const VERSION = '6.0.12'; 等,直接读取版本。 |
/install.php |
部分开源项目基于 ThinkPHP 开发时的安装残留文件(如旧版 CMS),访问可能显示安装页面或框架信息。 |
/application/ |
TP3-TP5 的默认应用目录(TP6 改为 app/),目录结构(如 controller/Index.php)符合框架规范。 |
/app/ |
TP6+ 默认应用目录,替代旧版 application/。 |
/static/ |
默认静态资源目录(CSS/JS/ 图片),部分旧版本静态文件(如 static/js/think.js)含框架标识。 |
fofa语法:app="ThinkPHP"、header="thinkphp" && (url="/index.php" || url="/public/index.php")
漏洞复现
可以使用工具进行自动化探测和利用。
工具1:天狐渗透工具箱-社区版V2.0纪念版/Thinkphp漏洞利用


工具2:vulmap


浙公网安备 33010602011771号