上述方法会产生很大噪声,可以很容易地提示管理员查看服务器日志。但采用下列方法,管理员这很难发现。
这种方法没有留下关于执行命令的任何可见轨迹(至少在访问日志中是这样)。
隐藏在正常文件中
黑客用来隐藏Webshell最简单的一个方法是将它们上传到深层子目录中和/或使用随机名称。
此外,一种更有效的方法是将Webshell代码嵌入到现有的合法文件中。
或使用CMS(例如WordPress)
注意:黑客通常会在函数前使用@运算符,以防发生任何错误,写入错误日志。
混淆
黑客使用各种混淆技术,以避免被管理员检测到。他们不断提出新的更复杂的方法来隐藏其代码并绕过安全系统。下面是我们看到的一些最常用的技术。
(1)删除空格换行符
通过从代码块中删除空格换行符,代码看起来像一个大字符串,这就使得代码的可读性降低并且更难识别脚本要实现什么目的。
(2)加密技术
该技术可以对代码进行加密,降低代码的可读性,并且充分利用运行时可以重建代码的各种函数。
(3)使用Hex进行混淆
ASCII字符的十六进制值也可以用于进一步混淆Webshell命令,下面的例子可以很好地说明混淆技术在Webshell中的应用。
以下是上述字符串的十六进制值。
因此,以下代码可用于接受十六进制编码的字符串并将其转化为PHP代码。