[WUSTCTF2020]朴实无华

news/2024/5/19 22:48:09 标签: ctf, web

查看robots.txt 找到/fAke_flagggg.php

显然这是个假的flag,但是我们在header处发现了fl4g.php

近来发现中文全部变成了乱码

 

插件转成utf8后正常显示

 

<?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("去非洲吧");
}
?>

 第一步 绕过intval()

显然不存在一个实数n使得n<2020&&n>2020

通过科学计数法绕过num="3e3",经过intval()解析,结果如下图

这个绕过只在较低php版本有效

PHP intval()函数详解,intval()函数漏洞原理及绕过思路_intval函数-CSDN博客

第二步 绕过md5

要求一个字符串的MD5值等于字符串本身

这个比较使用了==,是弱类型判断,也可以通过和第一步差不多的思路,科学计数法0==0绕过。故只要我们找出0e开头且MD5值也是0e开头的字符串即可。

这一步自己写脚本可能得跑一段时间,但现在我们站在巨人的肩膀上,找到了符合这个条件的字符串 0e215962017

第三步 绕过空格和cat

先ls查看flag位置

这一步就比较简单了,空格可以使用$IFS$9代替

cat可以使用tac,head,tail,nl替代

linux中查看文件命令和空格绕过_$ifs$9-CSDN博客 

 


http://www.niftyadmin.cn/n/5425354.html

相关文章

华为认证官网怎么查?证书多久能拿到?

在数字化浪潮中&#xff0c;华为认证以其专业性和权威性&#xff0c;成为了许多IT从业者追求的技能标签。 但很多人对于如何查询华为高级认证官网以及证书的具体领取时间感到困惑。 下面将为您详细解读这些问题&#xff0c;帮助您更好地了解和规划自己的职业发展。 01 华为认…

数据结构-链表(一)

一、链表简介 链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储和组织数据。与数组不同&#xff0c;链表的元素&#xff08;节点&#xff09;在内存中不必连续存储&#xff0c;而是通过指针链接在一起。 链表由多个节点组成&#xff0c;每个…

机器学习模型—分类回归树(CART)

机器学习模型—分类回归树(CART) **CART(分类和回归树)**是决策树算法的一种变体。它可以处理分类和回归任务。Scikit-Learn使用分类和回归树 (CART) 算法来训练 决策树。CART 最初由 Leo Breiman、Jerome Friedman、Richard Olshen 和 Charles Stone 于 1984 年制作。 CAR…

【蓝桥杯】分糖果

分糖果 题目描述 有 n 个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果&#xff0c;然后进行下面的游戏&#xff1a; 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后&#xff0c;拥有奇数颗糖的孩子由老师补给 1 个糖果&#xff0c;从而变成偶数。 反…

1361:产生数(Produce)

【解题思路】 1、将数字拆分保存在数组中&#xff0c;而后转换每一位。 2、将数字变化规则保存在x、y两个一维数组中&#xff0c;x[i]到y[i]是一种转换规则。 3、从n的初始值开始搜索&#xff0c;对n做数字拆分&#xff0c;将拆分后的各位数字保存在一个数组中。针对数组中的每…

【Go】探索Go语言中的关于defer的应用

冬来的秋去 像记忆裂痕 又再变更空枕触遗憾 半梦半醒侵沾眼晴的泪痕 每晚夜深妄想真情接近 绻梦绻恋一宵雨侵悲不禁 永远最相衬 但愿梦里是永恒 ——《永远之后-黄艺明》 在Go语言中&#xff0c;defer语句是一个非常强大且常用的特性&#xff0c;它允许我们在函数结束时执行一些…

C语言每日一题(63)复写零

题目链接 力扣网 1089 复写零 题目描述 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改&#xff0c;不…

使用go开发的小tips

开启go modGOROOT是你下载的go编译器的目录。GOPATH的位置是Go开发的工作空间&#xff0c;比如可用于保存Go项目的代码和第三方依赖包。下载不了包多半是镜像源有问题&#xff0c;什么阿里七牛都试下go mod tidy可以拉取未下载的包&#xff0c;移除没用上的包进行web开发时热重…