2025.1.21——七、[SUCTF 2019]Upload Labs 2(未完成) 代码审计|phar反序列化|PHP SoapClient 反序列化触发SSRF|等等

题目来源:buuctf  [SUCTF 2019]Upload Labs 2

目录

一、打开靶机,分析信息

二、解题思路

step 1:分析源码

1.登陆页面源码admin.php  查flag方式

2.class.php  限制文件内容

3.func.php  查看上传文件类型,限制各种协议

4.index.php  限制文件格式和检查MIME类型

5.config.php

step 2:归总一下源码信息

step 3:整理思路

三、小结


一、打开靶机,分析信息

还配有源码,环境靶场得文件上传漏洞,要考虑是不是有什么后缀名过滤

二、解题思路

step 1:分析源码

1.登陆页面源码admin.php  查flag方式

<?php
include 'config.php';

//定义一个名为Ad的类,包含多个公共属性
class Ad{

    public $cmd;//存储要执行的系统命令

    public $clazz;//要实例化的类名
    public $func1;
    public $func2;
    public $func3;//要调用的类方法名
    public $instance;//存储的实例
    public $arg1;
    public $arg2;
    public $arg3;//分别作为$func1、$func2、$func3方法的参数

    //构造函数__construct,在创建Ad类的实例时被调用,用于初始化类的属性
    function __construct($cmd, $clazz, $func1, $func2, $func3, $arg1, $arg2, $arg3){

        $this->cmd = $cmd;

        $this->clazz = $clazz;
        $this->func1 = $func1;
        $this->func2 = $func2;
        $this->func3 = $func3;
        $this->arg1 = $arg1;
        $this->arg2 = $arg2;
        $this->arg3 = $arg3;
    }

    //check方法使用PHP的反射机制来完成下面的操作
    function check(){

        $reflect = new ReflectionClass($this->clazz);//创建一个ReflectionClass对象,用于获取$this->clazz指定的类的信息。
        $this->instance = $reflect->newInstanceArgs();//使用反射类的newInstanceArgs方法创建$this->clazz类的实例,并将其赋值给$this->instance。

        $reflectionMethod = new ReflectionMethod($this->clazz, $this->func1);
        $reflectionMethod->invoke($this->instance, $this->arg1);

        $reflectionMethod = new ReflectionMethod($this->clazz, $this->func2);
        $reflectionMethod->invoke($this->instance, $this->arg2);

        $reflectionMethod = new ReflectionMethod($this->clazz, $this->func3);
        $reflectionMethod->invoke($this->instance, $this->arg3);
    }

    //析构函数在对象销毁时自动调用,这里使用system函数执行$this->cmd存储的系统命令。
    function __destruct(){
        system($this->cmd);
    }
}

//主程序逻辑:
//首先检查请求的 IP 地址是否为127.0.0.1&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值