文件上传本身是互联网中最为常见的一种功能需求,所以文件上传漏洞攻击是非常常见,并且是危害极大的 常见安全问题 1) 上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行 2) 上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为 3) 上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行 4) 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈 常见的攻击方式就是攻击者上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力 案例
攻击者利用这些功能上传一个网页木马,如果存放上传文件的目录有执行脚本的权限,那么攻击者就可以直接得到一个WebShell,进而控制Web服务器
被这种webshell攻击的系统中,大部分都是将存储上传文件的位置与Web应用程序放在同一服务器,甚至同一目录下,这样上传的目录也和Web应用程序一样具备执行脚本的权限,从而导致系统产生了一个高危上传漏洞 防御 这个漏洞有两个必要条件
一是可以上传木马
二是存放上传文件的目录具备执行脚本的权限 那么首先要做的就是过滤上传的文件,但即使做了各种安全过滤,限制木马上传,实际还是会有各种绕过过滤的攻击方法,比较难以限制,但过滤工作还是要做的 防御的关键还是要限制上传的目录具备执行脚本的权限上
如果将存储上传文件的位置设计在另一台文件服务器上,与Web应用服务器分开,并且没有执行权限,这样即使木马被上传进来,也因为文件服务器不能执行脚本而没有办法实施攻击