打开之后是这样的是一些乱七八糟的字母也没有规律可言

但是一眼就注意到了url中的

?line=&filename=a2V5cy50eHQ=

后面这个像一个base64,解码看看

是keys.txt文件,如果是这样我们就知道了,想要访问某个文件必须是base64编码之后的,那么我们去index.php看看

啥也没有啊,不应该,因此我们可以看到前面还有一个line=,但是=后面没有内容,line是行的意思,我们不难猜测line就是后面文件的第几行,我们现在改变它的值访问一下。

如果是0的话就有php头,那么我们继续

<?php
    error_reporting(0);
    $file=base64_decode(isset($_GET['filename'])?$_GET['filename']:"");
    $line=isset($_GET['line'])?intval($_GET['line']):0;
    if($file=='') header("location:index.php?line=&filename=a2V5cy50eHQ=");
    $file_list = array(
        '0' =>'keys.txt',
        '1' =>'index.php',
    );
 
     if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){
        $file_list[2]='keys.php';
     }
 
     if(in_array($file, $file_list)){
        $fa = file($file);
        echo $fa[$line];
    }
?>

一共十九行,关键的地方就在下面,要我们设置cookie属性是margin然后还要等于margin

然后还要访问keys.php文件,那么我们只需要base64编码keys.php文件和设置cookie就行了。

flag就出来了。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐