出题WP

  1. Web
    1. get&post
    2. 熟悉的md5
    3. Seek flag
    4. 吃吃你的
    5. 空空如也
  2. Misc
    1. 我想吃掉你的胰脏

Web

get&post

查看源码就有提示

提示是爬虫协议。爬虫协议默认存放的文件名是robots.txt

看到了隐藏路径/dozer.php

<?php
highlight_file('dozer.php');
include("flag.php");
if($_GET['name1'] == "宫园薰"){
    if($_POST['name2'] == "有马公生"){
        echo $flag;
    }
     echo '我爱了你十年,你却不记得我的名字,CTF是你的谎言';
}
?>

看到了源码,考察的知识点是get&post。分别传入参数name1为宫园薰,name2为有马公生

得到了flag。此题需要用到工具hackbar

熟悉的md5

进去就看到了源码

<?php
include("flag.php");
highlight_file(__FILE__);
if (isset($_POST['a']) and isset($_POST['b'])) {
if ($_POST['a'] != $_POST['b'])
if (md5($_POST['a']) === md5($_POST['b']))
echo $flag;
else
print 'Ciallo!';
}

本题考察了md5的数组绕过,直接绕过就可以得到flag。

post传参a[]=1&b[]=2

Seek flag

<?php
error_reporting(0);
highlight_file(__FILE__);
// 悄悄告诉你,flag的位置就在根目录噢,好好了解下linux的文件结构吧!
if (isset($_GET['command'])) {
    $cmd = $_GET['command'];
    $output = shell_exec($cmd);
    echo $output;
}
?>

最简单的rce,payload为cat /flag 得到了第一段flag,然后得到提示“另一段在虫虫那呢”说明另一段就在爬虫协议文件robots.txt

得到了第二段flag

吃吃你的

进来看到一个贪吃蛇游戏,然而由于出题人实力有限,只能直接把flag藏在源码

查看源码就能看到flag

空空如也

进去看到源码

<?php
error_reporting(0);
highlight_file(__FILE__);
if (isset($_GET['command'])) {
    $cmd = $_GET['command'];
    
    // 检查命令中是否包含空格
    if (preg_match("/ /", $cmd)) {
        die('Invalid command: Spaces are not allowed.');
    }

    // 执行命令并获取输出
    $output = shell_exec($cmd);
    
    // 输出结果
    if ($output === null) {
        echo "Command execution failed or returned no output.";
    } else {
        echo "<pre>Command Output:\n" . htmlspecialchars($output) . "</pre>";
    }
}
?>

这题考察空格绕过。payload cat$IFS/flag ls$IFS/

ls命令查看根目录,发现flag,然后cat命令查看flag

Misc

我想吃掉你的胰脏

附件是一个图片,图片末尾有一个压缩包,压缩包有密码,

压缩包的文件头标识是PK 文件尾结尾也是PK,使用工具010将整个压缩包dump下来即可

010查看文件末尾发现了有提示DozerCTF????,这里考察了掩码攻击,使用工具ARCHPR进行掩码爆破

掩码攻击出压缩包密码为DozerCTF2024,解压缩就得到了flag