首页 > 其他分享 >[WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华

时间:2024-02-12 21:11:06浏览次数:34  
标签:WUSTCTF2020 intval get die else flag 朴实无华 md5

[WUSTCTF2020]朴实无华

EJ_p8bXcvGk-Vi2wL1pvwPaElnMjdis3uYeixTkiw84

robots.txt里发现提示

3PT2a_O90Iz8cPeWLt1phKcRe5Wj_8dr1jCc06UeHNk

打开这个页面,虽然页面里没有有用的信息,但是在响应头里发现了另一个页面提示

_eItnTdv1M3DkBBQa7F9UURYZCmnzD1DW6cwL7aRYC8

c6vaKp-IEXRzDVGnSIoerRMfeBgWhiZrWgGj9wmah9Y

打开发现代码

NWbwuFh5_XLZGXEvr9murGnckNCuOAqHJ6yHYGfDKTM

<?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("金钱解决不了穷人的本质问题");
    }
}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("去非洲吧");
}
?>

这题有三关,需要同时满足条件才能显示flag

level1的关键代码在这个判断

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

intval() 函数用于获取变量的整数值。

intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer数值。 intval() 不能用于 object,否则会产生 E_NOTICE错误并返回 1。

在第一层中要使用get传参一个num变量,整数值要小于2020,但是加上1之后又要大于2021,根据intval()函数的使用方法,当函数中用字符串方式表示科学计数法时,函数的返回值是科学计数法前面的一个数,而对于科学计数法加数字则会返回原本科学计数法的数值。

举个例子:

<?php
$num='2e4';
echo(intval($num));
echo('<br>');
echo(intval($num+1));
?> 

这里输出的值分别为2和20001

因此可以使用科学计数法解决,输入参数num=2e4

CjiGr28pi2p2xp-QDVIGTdIIMFa9FebjAjnQPmVCh9o

level2是md5绕过,一般的md5绕过是传入0e开头的md5值,因为在弱比较时,弱比较中会截取一个字符串的数字,知道遇到字符截止,对于0e+数字的值只会截取e之前的0,所以这里即便是令传入的md5值等于$md5后还需要等于其自身进行md5的值,我们选取0e或者加密后仍为0e开头的数就行例如:0e215962017、以及这些纯字符串转化后为0e+数字的数:QNKCDZO、s878926199a

6AQDCfTlOpsHugRhuL2UUNHwcce4UbLTdIzStuoPdZ8

level3过滤了空格和cat,因此可以用几个常见的字符替代

代替cat: more、less、head、tail、sort

代替空格:$IFS、${IFS}、$IFS$1

具体可参考:https://mayi077.gitee.io/2020/03/14/CTFHub-%E4%B9%8B-RCE/

首先通过ls查看文件

P7Sb0xSdpLWA-B4wmhuPymPc_fKYavJW8guXzrE5ODE

然后通过其他字符进行代替

FEVIklYHJVFhMnOVsgKK3nVuV7XaKLhE1eBvXHg0Ky0

标签:WUSTCTF2020,intval,get,die,else,flag,朴实无华,md5
From: https://www.cnblogs.com/fishjumpriver/p/18014131

相关文章

  • 【pwn】wustctf2020_closed --exec重定向
    这道题先来看一下ida这道题的代码逻辑很简单,首先关闭了标准输出和错误输出那可以将标准输出重定向到标准输入exec1>&0是一种Shell命令行中的重定向语法,用于将标准输出(文件描述符1)重定向到标准输入(文件描述符0)。在LinuxShell中,每个进程都有三个默认的标准文件描述符:标准......
  • wustctf2020_getshell
    wustctf2020_getshellret2shell在vulnerable函数中存在溢出漏洞shell函数中已经预留了后门溢出->跳转到后门函数frompwnimport*context.log_level='debug'elf=ELF('wustctf2020_getshell')io=process('wustctf2020_getshell')payload=b'A�......
  • [WUSTCTF2020]girlfriend
    下载了一个音频文件,打开来听起来像是在打电话输入号码的声音,猜测DTMF拨号音识别,有个程序可以识别一下dtmf2num.exe,通过链接可以下载http://aluigi.altervista.org/mytoolz/dtmf2num.zipDTMF2NUM0.2byLuigiAuriemmae-mail:[email protected]:aluigi.org-open......
  • [WUSTCTF2020]alison_likes_jojo
    boki图片中有隐藏文件压缩包需要密码暴力破解出密码888866解压得到信息经过三次base64解码后得到信息得到密码,这是另一张图片outguess隐写的密码,之后到虚拟机中进行破解得到flagflag{pretty_girl_alison_likes_jojo}......
  • [WUSTCTF2020]朴实无华 1
    原理intval绕过MD5加密值和原值相等绕过命令执行空格过滤解题过程intval($num)<2020&&intval($num+1)>2021绕过:https://blog.csdn.net/qq_47804678/article/details/128814377参考文章:https://blog.csdn.net/m0_62879498/article/details/124632041......
  • buuctf-[WUSTCTF2020]朴实无华
    打开靶机显示  啥都没有,先去查看robots.txt 发现  之后再fake里面请求头中发现fl4g.php  最后绕过三层php限制  第一关intvar 可以解析科学计数法 所以传入 1e4第一个截断解析为1  第二个加一解析为10001 payload:num=1e4第二关只要是0e开头md5......
  • BUUCTF:[WUSTCTF2020]girlfriend
    下载下来一个音频文件一个题目描述使用Audacity打开这段音频Audacity官方下载Audacity是一款易于使用的多轨音频编辑器和记录器,适用于Windows,MacOSX,GNU/Linux和其他操作系统。在CTF比赛中,可以通过对音频进行频谱的分析,以及音频其他内容的分析,找到flag。听起来像是在打电话......
  • BUUCTF:[WUSTCTF2020]spaceclub
    题目地址:https://buuoj.cn/challenges#[WUSTCTF2020]spaceclub一个txt用记事本打开的话,什么都看到确有4kb的大小,联想题目名字spaceclub,使用ctrl+a全选就看清楚了notepad这样全选可能还是不太直观,我这里用sublime打开然后全选一开始以为是摩斯密码,后来发现是每一行的长短对应一个......
  • [WUSTCTF2020]level2 1
    查壳:32位,有个小壳,怎么办,脱了呗,还能这么办(方法见前文)https://www.cnblogs.com/TFOREVERY/p/17366210.html脱壳后,进入IDA找主函数:脸上就是flag{Just_upx_-d}收工。......
  • pwn | wustctf2020_getshell
    pwn|wustctf2020_getshellx86ret2textexp:frompwnimport*fromLibcSearcherimport*context.log_level='debug'p=remote('node4.buuoj.cn',28063)p.sendline(b'M'*(0x18+4)+p32(0x0804851B))p.interactive()......