【SCTF-Round#16】 Web和Crypto详细完整WP

dream it make it / 2024-01-18 / 原文

每天都要加油哦!    ------2024-01-18  11:16:55


[NSSRound#16 Basic]RCE但是没有完全RCE

<?php
error_reporting
(0);
highlight_file(__file__);
include(
'level2.php');
if (isset(
$_GET['md5_1']) && isset($_GET['md5_2'])) {
    if ((string)
$_GET['md5_1'] !== (string)$_GET['md5_2'] && md5($_GET['md5_1']) === md5($_GET['md5_2'])) {
        if (isset(
$_POST['md5_3'])&&md5($_POST['md5_3']) == md5($_POST['md5_3'])) {
            echo 
$level2;
        } else {
            echo 
"您!!!!!那么现在阁下又该如何应对呢";
        }
    } else {
        echo 
"还在用传统方法????";
    }
} else {
    echo 
"来做做熟悉的MD5~";
}
来做做熟悉的MD5~

这道题要md5_1和md5_2的string后的值要强不等于一样,并且他们的md5值要一样

参考这篇文章https://blog.csdn.net/qq_19980431/article/details/83018232

成功过去。其中md5_3没有任何限制,什么都行。

进入3z_RC3.

<?php
error_reporting
(0);
highlight_file(__FILE__);
$shell $_POST['shell'];
$cmd $_GET['cmd'];
if(
preg_match('/f|l|a|g|\*|\?/i',$cmd)){
    die(
"Hacker!!!!!!!!");
}
eval(
$shell($cmd));

cmd中不能有flag。会执行我们输入的语句。

进行目录穿越,可以得到根目录有个flag.使用通配符绕过。

得到flag:NSSCTF{79575ef9-a587-4557-8d5f-99074758ba48}