个人技术分享

WEB主页

猜测robots.txt文件!

okok!是一个反序列化题!正好可以拿来练练手!

PHP代码审计

<?php

error_reporting(0); //
show_source("cl45s.php");

class wllm{

    public $admin;
    public $passwd;
    public function __construct(){
        $this->admin ="user";
        $this->passwd = "123456";
    }

        public function __destruct(){
        if($this->admin === "admin" && $this->passwd === "ctf"){
            include("flag.php");
            echo $flag;
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
    }
}

$p = $_GET['p'];
unserialize($p);

上注释

<?php
class wllm{       //定义一个wllm类
    public $admin; 
    public $passwd;  // 定义了admin和passwd两个属性
    public function __construct(){
        $this->admin ="user";
        $this->passwd = "123456";
    }
 
        public function __destruct(){ //  在这里定义了一个构造函数 __destruct()
        if($this->admin === "admin" && $this->passwd === "ctf"){ 
            include("flag.php");
            echo $flag;
            /*
            条件判断
            检查 $this->admin 是否等于 "admin",并且检查 $this->passwd 是否等于 "ctf"
            如果条件满足,就会包含名为 flag.php 的文件,并输出变量 $flag 的值。
            */
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
        /*
        反之
        当不满足if条件语句时,就会执行else语句
        依次输出 admin、passwd 以及 " Just a bit more! "
        */
    }
}
   
$w=new wllm(); # 创建一个实例化对象 $w
$w->admin="admin"; # 将 admin 属性设置为 admin
$w->passwd="ctf"; # passwd 属性设置为ctf
$w=serialize($w); # 使用 serialize 方法将实例化对象 $w 进行序列化处理!
echo $w; # 打印出来!

一道很简单的反序列化题目!

这一题的关键就是passwd属性,一定要设置对!