安全服务面试总结(第四弹 文件上传漏洞)

文件上传漏洞与sql注入相比,风险更大,如何web应用程序存在上传漏洞,攻击者甚至可以直接上传webshell到服务器。

常见的解析漏洞

IIS5.x~6.x解析漏洞

①当建立.asp .asa的文件夹时,其目录下的所有文件都会当作asp 文件来解析。
②当文件位 .asp;1.jpg时,iis同样会把他当作ASP脚本来执行。
经典漏洞 WebDav
webdav是基于http1.1协议的通信协议,通过它可以简单的使用put,move,copy这些请求来制作一个webshell 若它开启了delete功能,还能删除任意文件。

Apache解析漏洞

存在于Apache1.x Apache2.x中。
Apache解析文件的原则为,当碰到不认识的扩展名时,他就会向前解析,直到碰到认识的文件后缀。 例如 1.php.aaa.bbb

Nginx解析漏洞

这个漏洞造成的原因只要是php配置文件中的选项cgi.fi:x_pathinfo
例如/1.txt/1.php 由于1.php是不存在的,就会把1.txt文件当成php文件来执行。

绕过上传

一般程序员在预防文件上传漏洞方面做的主要分为两种检测,一种是客户端检测,另一种是服务器端检测。

客户端检测

客户端检测主要通过两种方式来绕过。
①使用firebug删除对应的JavaScript检测
②中间人攻击
Burp抓包,先按照正常的方式通过验证,然后在http报文中修改为对应的文件

服务端检测

①白名单,黑名单验证
在黑名单中,攻击者可以找到开发人员忽略的扩展名。所以,白名单相对来说比黑名单安全许多。
绕过黑名单:大小写绕过,寻找忽略的扩展名,在windows系统下,文件名后加上.或者空格,系统会自动忽略文件后的.或者空格,达到绕过黑名单的效果。
白名单的过滤方式可以防御未知风险,但是也不能完全依赖白名单,攻击者还可以通过解析漏洞的方式实现攻击目的。白名单仅仅是防止文件上传的第一步。
②MIME验证
对于此种验证方式,可以通过burp抓包进行修改对应的Content-Type类型,绕过验证。
③目录验证
一些开发人员为了代码的健壮性,在文件上传时,若目录不存在,则会创建对应目录。攻击者可以利用这一漏洞,创建自己需要的文件夹,例如.asp
文件夹,然后再利用存在的解析漏洞,实现攻击目的。
④00截断上传

文件上传漏洞修复

分析这些漏洞,发现其存在的原因主要是以下两点:
1.目录过滤不严格。
2.文件未重命名
一般来说,做到这两点,文件上传漏洞的风险就会小很多。但是没有绝对的安全,攻击者往往会利用一些解析漏洞达到目的,所以在服务器配置、web容器的配置方面也需要注意。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页