当前位置:首页 > 网络安全 > 正文内容

php代码审计之PbootCMS漏洞审计

访客4年前 (2021-04-14)网络安全1009

PbootCMS漏洞审计

一、环境准备

下载地址:https://gitee.com/hnaoyun/PbootCMS/releases/V1.2.1

解析域名:http://www.pboot.cms/

这个系统很方便默认情况下,直接下载下来什么都不用做即可使用。(前提是开启 php sqlite 扩展)

我们将其改为 mysql 数据库使用。

mysql 新建数据库,导入文件夹里的 sql 文件。

成功导入,然后修改数据库配置文件,

后台默认账户密码

账户:admin

密码:123456

二、熟悉MVC

目录结构:

2.1 自定义路由

路由文件: PbootCMS\apps\common\route.php

例如: http://www.pboot.cms/index.php/about/1

因为他的这个文件在系统的自定义路由上所以上面的路由解析以后就是

路由:

对应文件:

方法:

参数:

那个 home 是由 对应的入口文件,例如文中的index.php中的URL_BLIND

我们自定义一个方法进行访问,

添加自定义路由:

成功访问:

2.2 mvc动态路由

如果对于自定义路由没有的定义的路由,就会按照普通 mvc 模式来访问了。

比如:

路劲文件:

方法:

我们在 自己在添加一个自定义方法来访问,

访问:

三、内核分析

3.1 原生GET,POST,REQUEST

使用原生GET,POST,REQUEST变量是完全不过滤的

在控制器中进行测试,

可以看到没有任何过滤,

所以使用原生变量获取方法就很有可能产生漏洞。

3.2 系统获取变量函数

路径:

方法:,,等

最后中一系列检测,再最后进行过滤:

可以看得到所有传过来的内容都会先过一个正则匹配过滤

会将 0x7e,0x27,0x22,updatexml,extractvalue,name_const,concat 将其替换为''

再进行防止 xss和sql注入的再次过滤。

但是在这里只进行了数组 value的过滤, key 并没有过滤。

可以双写绕过。

测试:

效果如图

3.3 数据库内核

测试查询数据,

新建一个数据表,

在中,

在中

访问,即可查询,

很明显,有sql注入:

测试插入数据,

:

在中

成功插入。

测试更新数据

:

在中

测试成功。

测试删除数据

:

在中

测试删除成功。

3.4 调试数据库内核

where 方法得到拼接 where 条件,无过滤

select 方法最终得到

整个db 类的底层都是类似的字符串拼接

四、留言处 insert sql注入

由于此 cms 只会对数组键值进行过滤而不会对键进行过滤,恰巧这里浏览处可以接收数组。

poc:

我们使用浏览器+phpstorm调试来探明注入漏洞的产生。(为方便测试,已修改源代码将验证码功能注释)

首先读取了数据库留言表字段,返回一个三维数组,数组为数据表名,分别即为,,,这里用处即为作为 post接收数据的 键

这里即起到了作用,遍历二维数组的分别值接收 post 数据。


将数据存储到 data 数组中,由于接受的 contacts 为数组,所以 data 也就变成了多维数组。

接下来,我们对操作进行调试探索,按 F7

到了:

继续 F7 ,这里主要是函数比较关键。

判断 data 为空即返回

这里用于判断是否 data 为多维数组,如果不是即相等,否则不相等。

所以,转到 else ,和用于拼接。

由于为数组,所以再次进行 foreach ,进行分别拼接键和键值。

其余操作一直为 拼接,接下来跳出了 foreach,

然后拼接,之后出现数组,进入函数,构建 Sql 语句,获得

即发生了注入,拼接了恶意sql语句

五、前台首页sql注入

poc:

, index 方法:

跟进

,

这里读取数据

这里接收了外部了外部所有的get参数然后判断了开头的前4个字符是否 ext_ 开头,如果符合就直接拼接进入$where2这个数组 然后带入数据库进行getList方法与getSpecifyList查询,而底层是字符串拼接,过滤了value没有过滤key所以有注入

最终 sql 语句

六、搜索框sql注入

poc:

中 index 方法

跟进

中 parserSearchLabel 方法,

这里将 恶意语句带入,

接下来就是读取数据这里

这里接收了外部了外部所有的get参数然后就直接拼接进入$where2这个数组 然后带入数据库进行getList方法查询,而底层是字符串拼接,过滤了value没有过滤key所以有注入.

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106064.html

分享给朋友:

“php代码审计之PbootCMS漏洞审计” 的相关文章

黑客追款出款成功再收费「24小时在线的黑客追款」

据公务员期刊网2021年10月14日18:37:49的最新发布,微博网友@ 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,黑客追款出款成功再收费。可能没有机会接触到钱。那时候我就有想过退步。 一、黑客追回网赌40万 首先确保整个无前期费用黑客追款方案是最有效的,在做一件黑客...

【紧急+重要】勒索病毒解决方案!附:MS17-010补丁下载

  滚动更新:2017年5月13日16:57:22   游侠安全网(良心网站,站长先贴上注意事项和解决方法!防止你看本文的时候就被加密了!   1、本次共计是自动化攻击,利用了Windows的MS17-010。但苹果的MacOS用户不用得意,因为在昨晚之前,我这里得到的好几起勒索攻击案例都是针对...

Webshell安全检测篇(1)-根据流量的检测方法

一、概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分类笔者总结如下: 前段时...

600斤蓝鳍金枪鱼价钱,中国蓝鳍金枪鱼分布

眼不大,上身躯则是深蓝色,因此它们作为分开的种群金枪鱼来进行管理。零下60度的是380元每公斤。发布:股城消费在生活中很多人都吃过金枪鱼,美容减肥的好食物,价格不同!油脂较少。加拿大12岁女童詹娜钓上一条616磅,小鳍则是呈现微黄色。 ,蓝鳍金枪鱼是金枪鱼类中最大型的鱼种。大西洋和太平洋蓝鳍金枪鱼三...

上海南京东路站街伴游2019-【杨雅瑄】

“上海南京东路站街伴游2019-【杨雅瑄】” 上海伴游陪游旅行网顾建军,上海伴游网顾建军的详细资料一:找真实的经纪人龙家住广州天河区的王先生最近咨询小编问 广州如何学生伴游 ,怎么能获得他们联系方式大家可以先通过百,104,广州学生伴游联系方式,广州商务伴游预约,家住广州天河区的王先生最近咨询小编问...

找网上黑客盗QQ号被骗,黑客找到微信好友,黑客破解密码的例子

Cortex-R:面向实时运用的高功能内核,Cortex-R系列是衍出产品中体积最小的ARM处理器。 Cortex-R处理器针对高功能实时运用,例如硬盘操控器(或固态驱动操控器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及轿车运用(例如安全气囊、制动体系和发动机办理)...

评论列表

只影依疚
3年前 (2022-05-28)

方法跟进中 parserSearchLabel 方法,这里将 恶意语句带入,接下来就是读取数据这里这里接收了外部了外部所有的get参数然后就直接拼接进入$where2这个数组 然后带入数据库进行getList方法查询,而底层是字符串拼接,过滤了value没有过滤key所以有

余安清引
3年前 (2022-05-29)

PbootCMS漏洞审计一、环境准备下载地址:https://gitee.com/hnaoyun/PbootCMS/releases/V1.2.1解析域名:http://www.pboot.cms/这个系统很方便默认情况下,

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。