ThinkPHP框架特征及漏洞复现

ThinkPHP是一款运用极广的PHP开发框架。

Web特征

访问8080会进入默认页面,其中包含了thinkphp关键字以及版本信息相关内容:

image-20251125220034767

调试模式特殊响应:访问 /index.php?s=/index/index/xxx(传入不存在的方法),若返回含 think\exception\ClassNotFoundException 的堆栈信息,直接确认框架。

错误页面与异常响应特征:当访问不存在的路径、传入错误参数或开启调试模式时,ThinkPHP 会返回带框架特征的错误页面 / 信息

image-20251125220446808

一些特征目录:

特征路径 / 文件 说明与探测价值
/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漏洞利用

image-20251125220959313image-20251125221106833

工具2:vulmap

image-20251125221338187

posted @ 2025-12-02 12:50  shinianyunyan  阅读(12)  评论(0)    收藏  举报