您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS V9.6.3的后台漏洞分析修复方法
梁胤鸣2025-05-20 12:02:25phpcms教程已有2人查阅
导读1、利用文件包含创建任意文件getshell漏洞文件:\phpcmsv9\phpcms\modules\block\block_admin.php
1、利用文件包含创建任意文件getshell
漏洞文件:\phpcmsv9\phpcms\modules\block\block_admin.php
漏洞产生点位于265~272行: 可以看到使用file_put_contents函数将 $str 写入 $filepath 中并且包含该文件,查看$filepath和$str变量是否可控。 可以看到变量 $template 可控,跟进 new_stripslashes()函数: 可以看到并无对 $template 的有效过滤,从而导致 $str 可控。再看漏洞产生点,是将 $str 写入文件中包含该文件,然后再将该文件删除。那么可以构造payload: 接下来寻找怎么利用该漏洞,在函数 public_view() 中,跟入get_one()函数: 可以看到是查询一条数据,其 sql 语句为: 并且需要返回一个数组。否则报错 nofound。因此需要先使用 add() 函数插入一条
数据并且 type 字段为 2,跟进 add() 函数: 可以看到第10行,会将 post 数据写入 v9_block 表中,如要将数据写入表中需要满足条件:
1、$pos 不为空。
2、$dosubmit 不为空。
3、$name 不为空,并且 $type = 2。
4、$name 不能与已有的数据重复。
于是构造 url : http:// .test.com/index.php?m=block&c=block_admin&pc_hash=123456&a=add&pos=1
POST数据:dosubmit=1&name=test&type=2
这第一步访问上述地址将数据插入至v9_block表中。
可以看到 id 为4即为刚才插入的数据。接下来将payload写入文件。
构造URL:http://www.ebingou.cn/index.php?m=block&c=block_admin&a=public_view&id=4
POST数据: 访问:
注:要想利用成功,在往v9_block表中插入数据时需要判断 $pc_hash 是否合法,所以想要利用该漏洞需先获取$pc_hash的值。而pc_hash的值登录后台即可在url中获取。
漏洞文件:\phpcmsv9\phpcms\modules\block\block_admin.php
漏洞产生点位于265~272行: 可以看到使用file_put_contents函数将 $str 写入 $filepath 中并且包含该文件,查看$filepath和$str变量是否可控。 可以看到变量 $template 可控,跟进 new_stripslashes()函数: 可以看到并无对 $template 的有效过滤,从而导致 $str 可控。再看漏洞产生点,是将 $str 写入文件中包含该文件,然后再将该文件删除。那么可以构造payload: 接下来寻找怎么利用该漏洞,在函数 public_view() 中,跟入get_one()函数: 可以看到是查询一条数据,其 sql 语句为: 并且需要返回一个数组。否则报错 nofound。因此需要先使用 add() 函数插入一条
数据并且 type 字段为 2,跟进 add() 函数: 可以看到第10行,会将 post 数据写入 v9_block 表中,如要将数据写入表中需要满足条件:
1、$pos 不为空。
2、$dosubmit 不为空。
3、$name 不为空,并且 $type = 2。
4、$name 不能与已有的数据重复。
于是构造 url : http:// .test.com/index.php?m=block&c=block_admin&pc_hash=123456&a=add&pos=1
POST数据:dosubmit=1&name=test&type=2
这第一步访问上述地址将数据插入至v9_block表中。
可以看到 id 为4即为刚才插入的数据。接下来将payload写入文件。
构造URL:http://www.ebingou.cn/index.php?m=block&c=block_admin&a=public_view&id=4
POST数据: 访问:
注:要想利用成功,在往v9_block表中插入数据时需要判断 $pc_hash 是否合法,所以想要利用该漏洞需先获取$pc_hash的值。而pc_hash的值登录后台即可在url中获取。
本文标签:
很赞哦! (1)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
phpcms怎么连接数据库,修改数据库文件
数据库配置文件位置:caches/configs/database.php我们打开这个配置文件,加入我们的数据库配置信息。数据库配置信息为二维数组结构,默认为default,可以根据linux服务器下phpcms提示hash数据验证失败怎么办
本文使用的是linux服务器。1、打开 php.ini 文件(我的是放在(/usr/local/php/etc)目录下)2、查看 max_input_vars 参数phpcms做企业站的流程
做一个企业站,三个页面比较重要1、首页2、列表页3、内容页做企业站的流程:1、由美工出一张,设计效果图2、将设计图静态化3、开始安装CMS4、强模板文件放到CSM里面phpcmsv9后台多表查询分页代码
phpcms v9里面自带的listinfo分页函数蛮好用的,可惜啊。不支持多表查询并分页。看了一下前台模板层支持get标签,支持多表查询,支持分页。刚好可以把这个功能搬到后台来使用。
留言与评论 (共有 0 条评论) |