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属性,一定要设置对!