BUUOJ [WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华

复现了武科大的一道题///

 

进入界面

一个hack me

BUUOJ [WUSTCTF2020]朴实无华_第1张图片

 

 

好吧,直接看看有没有robot.txt

哦豁,还真有

BUUOJ [WUSTCTF2020]朴实无华_第2张图片

 

 

好吧

fAke_f1agggg.php

看了里面,然后在响应头里面有个fl4g.php

 

哦豁,进去玩玩

 

然后里面一堆乱码.....

告辞

然后网上有完整的图

BUUOJ [WUSTCTF2020]朴实无华_第3张图片

 

 

下面是乱码图,直接对照着看呗

BUUOJ [WUSTCTF2020]朴实无华_第4张图片

 

 

黑人问号!居然叫我去非洲???

我又不是十佳员工,凭啥??

不可以!

 

直接进行第一个函数的绕过

intval函数绕过

 

 

get传值,num<2020,然后+1后,要大于2021...

 

emm,为了不去非洲,不过好像考过这道题的样子哦

BUUOJ [WUSTCTF2020]朴实无华_第5张图片

 

 

 

 

然后就会发现intval函数参数会把e前的数字返回,那么就是说,如果是2e5,返回的值是2,而且2e5+1,则返回200001

 

直接绕过!搞定!

 

md5弱类型

这个就直接秒咯~

百度一堆

php具有弱类型,== 在进行比较的时候,会先将字符串类型转化成相同,再比较

 

终于到最后一关了!

 

空格与系统命令执行

本层的意思就是:参入的get_flag的参数不能有空格,如果里面有cat,则转换为wctf202

然后传入的参数作为系统命令执行

 

先传ls进去查看里面有啥文件,然后看到了一串长的不像flag的flag文件

 

好吧,做到这里,发现不能用cat,于是百度了....

 

用tac这个东西,但是也要空格呀

浅谈CTF中命令执行与绕过的小技巧

< 符号

%09 符号需要php环境,这里就不搭建啦,见谅)

$IFS$9 符号${IFS} 符号

 

利用$IFS$9替代空

 

接着就拿到flag了

 

payload=num=2e5&md5=0e215962017&get_flag=tac$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

  

你可能感兴趣的:(BUUOJ [WUSTCTF2020]朴实无华)