Bootstrap

[SWPUCTF 2021 新生赛]ez_unserialize-------WP

1、打开网页是一个gif动图

2、查看源代码

发现disallow,说明应该和robots有关。

Robots 协议(也称为爬虫协议、机器人协议等)的全称是 “网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可抓,哪些页面不能抓。

disallow就是爬虫不能搜索的所以我们去看看robots.txt

当然也可以直接用御剑扫后台,这里的flag.php进不去

3、看到可疑的php文件,访问一下,得到源码,下面就是代码审计了

代码详解

首先创造了一个类wllm,定义了两个公共属性admin,passwd,又定义两个方法,这两个方法都是魔术方法
__construct()            //对象创建(new)时会自动调用
__destruct()             //对象被销毁时触发
在__construct()中,给admin和passwd赋了值($this代表wllm这个类,$this->admin代表wllm这个类调用它的属性admin)
在__destruct()中,出现if判断,当admin和passwd分别强相等为admin和ctf时,包含flag.php这个文件,并且输出$flag这个变量,否则输出admin和passwd的值和Just a bit more!
===强相等代表不仅要数值相等,还必须类型相同
==弱相等只需要数值相等
比如:
a为字符型的1
a==1正确
a===1错误
​
最后,通过GET方式传参,接收数据的字符为p,并赋值给$p
反序列化$p

4、构造payload

复制源码,把不需要的部分注释掉,再补充序列化的代码,将admin和passwd的值改为触发if条件的值,即可得到payload

;