[鹤城杯 2021]Middle magic

<?php
highlight_file(__FILE__);
include "./flag.php";
include "./result.php";
if(isset($_GET['aaa']) && strlen($_GET['aaa']) < 20){

    $aaa = preg_replace('/^(.*)level(.*)$/', '${1}<!-- filtered -->${2}', $_GET['aaa']);

    if(preg_match('/pass_the_level_1#/', $aaa)){
        echo "here is level 2";
        
        if (isset($_POST['admin']) and isset($_POST['root_pwd'])) {
            if ($_POST['admin'] == $_POST['root_pwd'])
                echo '<p>The level 2 can not pass!</p>';
        // START FORM PROCESSING    
            else if (sha1($_POST['admin']) === sha1($_POST['root_pwd'])){
                echo "here is level 3,do you kown how to overcome it?";
                if (isset($_POST['level_3'])) {
                    $level_3 = json_decode($_POST['level_3']);
                    
                    if ($level_3->result == $result) {
                        
                        echo "success:".$flag;
                    }
                    else {
                        echo "you never beat me!";
                    }
                }
                else{
                    echo "out";
                }
            }
            else{                
                die("no");
            }
        // perform validations on the form data
        }
        else{
            echo '<p>out!</p>';
        }
    }  
    else{
        echo 'nonono!';
    }
    echo '<hr>';
}

?>

preg_match:没有匹配的就返回false 

preg_replace:只能匹配一行的数据。

如果代码替换了abc,但后面又要求有abc,可以用%0a(换行符)

%0apass_the_level_1%23        %0a换行符,%23井号。

shal 哈希函数无法处理数组,会返回结果 null 

admin[]=1&root_pwd[]=2       ---》null == null

(1)为什么可以传[],变量不是admin吗?

个人理解:在php中,变量是没有明确是什么类型的,它可以是任意类型,所以可以传数组。

(2)admin[]=1        admin第0位=1

json_decode : 解码 JSON 字符串

level_3='{"result":0}'

(1)这里要猜测 $result 是一个字符串,这样 0=="abc",为true

<?php
$json='{"a":12345}';
$obj=json_decode($json);
print $obj->{'a'};        //12345
?>    //个人理解:json_decode作用就是便于数据存储,没有其他作用

相关推荐

  1. [ 2021]Crazy_Rsa_Tech(低加密指数广播攻击)

    2024-04-22 00:42:01       33 阅读
  2. 七彩之的独特序列(蓝桥

    2024-04-22 00:42:01       42 阅读
  3. 笔记2

    2024-04-22 00:42:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 00:42:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 00:42:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 00:42:01       87 阅读
  4. Python语言-面向对象

    2024-04-22 00:42:01       96 阅读

热门阅读

  1. SQL中WITH RECURSIVE的用法

    2024-04-22 00:42:01       39 阅读
  2. 【需求】人像数据集采集

    2024-04-22 00:42:01       31 阅读
  3. Ubuntu 22.04.4 LTS 初始配置(root、ssh)

    2024-04-22 00:42:01       29 阅读
  4. iOS RACScheduler 使用详解

    2024-04-22 00:42:01       37 阅读
  5. 深入浅出理解CSS中的3D变换:踏上立体视觉之旅

    2024-04-22 00:42:01       36 阅读
  6. k8s中修复mongodb启动失败

    2024-04-22 00:42:01       23 阅读
  7. Neural Radiance Fields (NeRF) 和 3D Gaussian Splatting区别

    2024-04-22 00:42:01       34 阅读
  8. 展开说说:Android Fragment完全解析-卷二

    2024-04-22 00:42:01       39 阅读