webshell绕过D盾

PHP常见的代码执行函数:

eval() assert() preg_replace() create_function() array_map() call_user_func() call_user_func_array() array_filter usort uasort()

PHP常见的命令执行函数
system() exec() shell_exec() passthru() pcntl_exec() popen() proc_open()

常见的一句话

webshell绕过D盾
文章图片

可以看出直接就是5级eval后门,
如果把$_POST['a']换成一个变量,D盾的级别成了4级,如下图:
webshell绕过D盾
文章图片

如果把$a在变为一个定义好的变量,级别就会变成1,所以是eval后门,因为参数的问题,D盾也有说明
webshell绕过D盾
文章图片

所以,可以用可变变量,可变变量是一种PHP独特的变量,他允许动态改变一个变量的名称。故加入到一句话木马中

webshell绕过D盾
文章图片

如图发现,说参数ww是未知内容了,那么直接在第一行定义一下ww试试
webshell绕过D盾
文章图片

成了可疑eval,剩下的利用php相关的特性和连接符,或者注释符,即可绕过

webshell绕过D盾
文章图片

【webshell绕过D盾】webshell绕过D盾
文章图片

    推荐阅读