phpcms2008远程代码执行漏洞
phpcms2008远程代码执行漏洞
描述:
近日,互联网爆出PHPCMS2008代码注入漏洞(CVE-2018-19127)。攻击者利用该漏洞,可在未授权的情况下实现对网站文件的写入。该漏洞危害程度为高危(High)。目前,漏洞利用原理已公开,厂商已发布新版本修复此漏洞。
影响范围:
PHPCMS2008 sp4及以下版本
POC github地址:
https://github.com/ab1gale/phpcms-2008-CVE-2018-19127
漏洞分析:
在type.php中:
包含/include/common.inc.php 其作用是对$_GET,$_POST等全局变量进行注册。
extract函数大家都明白,将数组的项注册为变量。可以对任意变量进行注册。
在type.php第30行调用template函数
template函数定义在global.func.php
$template变量在这里是完全可控的,且默认开启模版缓存自动刷新。当template变量输入为template=tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss时,$compiledtplfile=”data/cache_template/phpcmstag(){};@unlink(FILE);assert($_POST[1]);{//../rss.tpl.php” .此时,可自然进入判断 ,调用template_compile函数,次函数定义在include/template.func.php
在templatecompile函数中,$template变量是我们可控的,而$content变量当我们的输入为”template=tag(){};@unlink(FILE);assert($_POST[1]);{//../rss”自然会选择前者,而content内容中$template变量可控,最后file_put_contents函数写入任意代码,需要注意的是,file_put_contents路径为data/cache_template/phpcmstag(){};@unlink(FILE);assert($_POST[1]);
{//../rss.tpl.php时,php会将其路径解析为data/cache_template/rss.tpl.php。
总结一下:
type.php 包含common.inc.php 任意变量注册-》$template变量可控->template函数变量$template可控->template_compile函数变量$template可控-》file_put_contents函数由$template影响两个参数变量可控,借助php此函数解析文件特性,将一句话写入文件。
漏洞修复:
升级至最新版本
REFERECE:
https://github.com/ab1gale/phpcms-2008-CVE-2018-19127
http://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-19127
phpcms2008远程代码执行漏洞的更多相关文章
- Spring框架的反序列化远程代码执行漏洞分析(转)
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- Apache Struts 远程代码执行漏洞(CVE-2013-4316)
漏洞版本: Apache Group Struts < 2.3.15.2 漏洞描述: BUGTRAQ ID: 62587 CVE(CAN) ID: CVE-2013-4316 Struts2 是 ...
- MongoDB ‘conn’Mongo 对象远程代码执行漏洞
漏洞名称: MongoDB ‘conn’Mongo 对象远程代码执行漏洞 CNNVD编号: CNNVD-201307-497 发布时间: 2013-07-25 更新时间: 2013-07-25 危害等 ...
- Struts2再爆远程代码执行漏洞
Struts又爆远程代码执行漏洞!在这次的漏洞中,攻击者可以通过操纵参数远程执行恶意代码.Struts 2.3.15.1之前的版本,参数action的值redirect以及redirectAction ...
- struts2之高危远程代码执行漏洞,可造成服务器被入侵,下载最新版本进行修复
Struts2 被发现存在新的高危远程代码执行漏洞,可造成服务器被入侵,只要是Struts2版本 低于 2.3.14.3 全部存在此漏洞.目前官方已经发布了最新的版本进行修复.请将stru ...
- 【漏洞公告】CVE-2017-12615/CVE-2017-12616:Tomcat信息泄漏和远程代码执行漏洞
2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,在一定 ...
- PHPMailer < 5.2.18 远程代码执行漏洞(CVE-2016-10033)
PHPMailer < 5.2.18 Remote Code Execution 本文将简单展示一下PHPMailer远程代码执行漏洞(CVE-2016-10033)的利用过程,使用的是别人已经 ...
- 隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)
Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接 ...
- thinkphp5.0.22远程代码执行漏洞分析及复现
虽然网上已经有几篇公开的漏洞分析文章,但都是针对5.1版本的,而且看起来都比较抽象:我没有深入分析5.1版本,但看了下网上分析5.1版本漏洞的文章,发现虽然POC都是一样的,但它们的漏洞触发原因是不同 ...
随机推荐
- Bootstrap-datepicker3官方文档中文翻译---Keyboard support/键盘支持(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)
本日期控件包含了键盘导航. “focused date” 在键盘导航期间一直会被保持追踪并且高亮显示(就想鼠标悬停的时候一样),当一个日期被切换(译者注:选中状态的切换)时或者控件隐藏时清除. up ...
- js 如何将dom转换为 图片(base64)
1.引入js <script src="https://cdn.bootcss.com/html2canvas/0.4.1/html2canvas.js"></s ...
- coding基本功实践
作为一名程序员,除了需要具备解决问题的思路以外,代码的质量和简洁性也很关键.因为从一个人的代码可以直接看出你的基本功.对于Python而言,这就意味着你需要对Python的内置功能和库有很深入的了解. ...
- Java线段树
线段树不是完全二叉树,是平衡二叉树 堆也是平衡二叉树 堆满二叉树: h层,一共有2^h-1个节点(大约是2^h) 最后一层(h-1层)有2^(h-1)个节点 最后一层的节点数大致等于前面所有层节点之和 ...
- javaScript -- touch事件详解(touchstart、touchmove和touchend)
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...
- go time模块
package main import ( "fmt" "time") func test() { time.Sleep(time.Millisecond * ...
- Linux安装JSON-C
0.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. JSON采用完全独立于语言的文本格式,但是 ...
- 编译phoneix源码,整合Hbase
Hbase版本:1.2.0-cdh5.14.0 1):下载phoneix源码 链接:https://pan.baidu.com/s/1uryK_jLEekdXV04DRc3axg 密码:bkqg 2) ...
- Vue生命周期,面试常见问题
一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...
- (二)shell中的变量
1.常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.自定义变量 基本语法: (1)定量变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量 注 ...