跳到主要内容

建站选型

基于 ThinkPHP 的 CMS 怎么审?一套可复用的代码审计思路

本文页面二维码
扫码打开
基于 ThinkPHP 的 CMS 怎么审?一套可复用的代码审计思路

阅读时间:约 12 分钟 · 适合:安全工程师、建站公司技术、CMS 采购技术评审

导读: yxtcmf6.1 基于 3.2.3,适合练审计:先懂框架洞,再搜关键词,再自动扫 + 人工验证元舟 PivArk 技术栈为 8.2 + 现代路由与权限;采购老 TP CMS 时,务必问清 框架版本是否仍维护、是否跟上游安全补丁。下文保留原文审计脉络。


前言

yxtcmf6.1 是一个基于 thinkphp3.2.3 的 CMS,19 年 3 月发布,用来练习是个不错的选择。

审计思路(可复用到其他 TP CMS)

  1. 了解 MVC 文件结构 与路由(如 index.php/User/Login/indexUserController.class.phpindex()
  2. 单独搭建 TP 3.2.3,掌握已知 SQL 注入等框架洞
  3. Seay 全局搜索 危险函数与 where( / find( / order( 等组合
  4. 自动审计 扫出候选,剔除核心框架与已分析项
  5. AWVS 等扫描器补漏

工具:phpstorm、Seay、phpstudy、AWVS。

ThinkPHP CMS 审计路径(示意)

图1:结构→框架洞→全局搜→自动扫→人工验证

0x01 ThinkPHP 3.2.3 常见 SQL 注入模式

1. ->where("可控参数")->find()

$option 可任意传入,可能注入。注意:若用 I($_GET['username']) 会过滤 exp 等。

2. ->find/select/delete("可控参数")

例:$id=I("id"); M("users")->find($id);

payload 思路:id[where]=1 and updatexml(...) — 有时无需单引号闭合。

3. ->where()->save()

username[0]=bind&username[1]=0 and (updatexml(...)) 类构造。

4. ->order("可控参数")->find()

order[updatexml(1,concat(0x3a,user()),1)] 进入 ORDER BY。

审计动作: 全局搜索 ->find(select(save(order(,逐条看参数是否 int 强制、是否 I() 过滤。

TP3.2.3 四类典型 SQL 注入构造(示意)

图2:where/find/order/save 组合中的可控参数

0x02 实战发现(原文摘要)

  • 后台 Ad 控制器where() 内 id 可控,括号闭合注入
  • 前台 register / login — 多处 where 组合,需逐个传参验证
  • 大量 where()(int) 或不可控 → 误报要耐心筛

0x03 自动审计

800+ 条结果:跳过 TP 核心、已确认 SQL 类;fread/fgets 无输出可放低优先级;readfile/unlink 重点关注。

0x04 后台任意文件读取

跟踪变量是否用户可控 → 验证可读敏感路径。

0x05 后台写入 getshell(route 表)

full_url 插入恶意片段,触发 route.php 写入;需满足 a/b/c 路径形式与引号闭合。说明:后台写配置类功能 是高频 getshell 点。

后台 route 表污染 → route.php 写入(示意)

图3:配置写入链是 CMS 审计必查点

0x06 前台写入 getshell(fetch 模板)

复杂调用链最终 file_put_contents — 说明 模板/缓存/编译 链也要审。

0x07 AWVS

本文环境 AWVS 未扫出额外洞——自动工具不能替代框架洞关键词搜索

实践侧记 · 选型 CMS 时问这五句

  1. 基于 哪版 TP/Laravel/自研?最后一版安全公告何时?
  2. 是否还在 8.x
  3. 插件是否 隔离 还是与内核同库同路由?
  4. 后台是否有 CSRF、审计日志、升级签名校验
  5. 交付后谁做 CVE 响应——厂商还是建站公司背锅?

元舟 PivArk 路径:现代 、统一 RBAC、插件 Gateway;审记时对照 插件中心全生命周期测试标准

总结

自动审计 + 框架洞关键词 + 耐心验证参数可控性,是 TP CMS 审阅主线。刚入门可跟一遍 yxtcmf;采购阶段 则应要求厂商出示 依赖版本与补丁策略,而非只听「我们也很安全」。

FAQ

*Q: 5/6 还有同类问题吗?*

A:洞点不同,但 搜索构造器、反序列化、调试模式 等仍要按版本查公告。

*Q:建站公司不懂审计怎么办?*

A:选 架构可说明、可门禁验证 的底座;客户要过等保时别交付停更壳。

权威块 · 更新于 2026-08-17 · 元舟 PivArk

先试用,再决定授权方式

开源版免费下载、源码可私有化部署。需要升级保障与企业支持?查看定价对比预约演示

QQ:97099335电话:13532806979