Web木马的特点,从某个角度来说,Web木马也是应用页面,只不过主要是针对目标服务器执行信息获取、添加额外功能等工作,这与正常的页面功能完全不同,但是会以当前Web的格式存放,这是由于Web木马须在服务器上由中间件来解析并执行。综合以上不可变的情况,可总结出Web木马的以下几个主要特点。
1.木马可大可小
根据功能不同,Web木马自身的文件大小也各不相同。最小的木马可利用一行代码进行实现。大的木马在提供各类丰富的功能基础之上,自身的大小也会超过10KB。因此无法根据文件的代码量判断木马。
2.无法有效隐藏
Web木马执行时必须按照中间件支持的Web格式进行解析并执行。在真实攻击中,攻击者通常会将木马命名为一个近似系统文件或正常文件的名字,并在其中填充大量与当前站点中相似的无效代码,以迷惑管理员。若攻击者没有系统权限,木马在服务器端无法真正隐藏。
3.具有明显特征值
Web木马的特点有很多,主要表现在其特殊功能方面,如针对数据库的大量操作功能、文件创建修改功能等都可被攻击者使用。在使用过程中,攻击者的操作行为会利用外部参数传入到Web木马中,Web木马再将攻击者传入的参数拼接成系统命令并执行。
在Web木马中,需调用系统的关键函数用以执行本身的功能,这些关键函数在木马中起着无法替代的作用,因此这些关键函数可作为Web木马的明显特征。在Web木马中常见的关键函数如下:
● 命令执行类函数:eval、system、popen、exec、shell_exec等。
● 文件功能类函数:fopen、opendir、dirname、pathinfo等。
● 数据库操作类函数:mysql_query、mysqli_query等。
需要注意的是,多数木马会对当前的关键函数进行类型隐藏,如先拆分结构,在调用时再进行拼接。因此,需要跟踪整体功能流程后,再根据执行效果进行确认,这一点需要注意。
4.必须为可执行的网页格式
木马需在当前服务器的Web容器中执行,因此必须为网页格式。无论是一句话木马还是大型木马,均需如此。当然,在极端情况下可配合文件包含漏洞实现木马执行,但最终执行环境必须为网页。
极端情况下(如木马可被上传,但无法解析时),可配合htaccess实现对执行名称后缀名的替换,实现特定后缀名的执行。