解析漏洞与文件上传漏洞


前言

文件上传是很常用的功能点,如:上传头像、上传附件、保存文件等,文件上传漏洞的思想很简单,即可以将包含恶意代码的文件上传到服务器,并且能够解析执行,从而实现getshell。

首先,本文将介绍如何解析执行文件以及已知的一些解析漏洞;

然后,本文将讲解常见文件上传漏洞的防御方式以及绕过方法;

最后,本文会提供修复文件上传漏洞的建议。

解析&解析漏洞


Apache默认解析的后缀名

FilesMatch ".+\.ph(p[3457]?|t|tml)$">

IIS默认解析的后缀名

IIS6.0

.asp .asa .cer .cdx

通过aspnet_isapi.dll解析

Tomcat默认解析的后缀名

<servlet-mapping>

        <servlet-name>jsp</servlet-name>

        <url-pattern>*.jsp</url-pattern>

        <url-pattern>*.jspx</url-pattern>

</servlet-mapping>


IIS解析漏洞

IIS6.0:*.asa或*.asp格式的目录下的任意文件会被IIS当作asp文件来解析

IIS6.0:当文件名为*.asp;1.jpg类型的格式时,会被IIS当做ASP脚本执行

顺带提一下,当开启WebDav拓展,并且只是PUT、Move、Copy、Delete等方法时,可被上传恶意脚本

OPTIONS查看支持的方法

PUT上传文件

Move或Copy修改文件名


Apache解析漏洞

Apache 1.x & 2.x:当Apache遇到不认识的后缀名时,如:1.php.xx,会从后往前依次尝试解析,直到发现认识的php后缀名,遂当做PHP脚本解析。(apache认识的后缀名储存在/etc/mime.types)


Nginx解析漏洞

(PHP CGI解析漏洞):http://ultramangaia.cn/gg.jpg,在这个网址后面加上1.php,即http://ultramangaia.cn/gg.jpg/1.php,会被解析成PHP脚本。(php.ini文件中cgi.fix_pathinfo开启时/此漏洞也可能会出现在IIS7.0、IIS7.5、Lighttpd等,因为是PHP CGI的问题)

空字节:http://ultramangaia.cn/gg.jpg,在这个网址后面加上%00.php,即http://ultramangaia.cn/gg.jpg%00.php会导致解析为PHP脚本

nginx 0.5.*

nginx 0.6.*

nginx 0.7 <= 0.7.65

nginx 0.8 <= 0.8.37


文件上传漏洞防御及绕过方法

客户端校验

  JavaScript 检查后缀名

  绕过:Burp Suite 改后缀名

服务端校验

  文件头content-type字段校验(eg. image/gif)

  绕过:修改content-type字段

  文件头校验(eg. GIF89a)

  绕过:生成图片马绕过

  后缀名黑名单/正则黑名单

  绕过:黑名单覆盖不全时,可换后缀名绕过

  绕过:大小写绕过

  后缀名白名单/正则白名单


其他特性利用

Windows环境的奇葩规则,如会自动去掉不符合规则符号后面的内容

gaia.php[空格]

gaia.php.

gaia.php:1.jpg    (注:生成的文件内容是空白的)

gaia.php::$DATA

gaia.php::$INDEX_ALLOCATION (注:生成文件夹)

gaia.php::$DATA.jpg  (注:生成0.jpg)

gaia.php::$DATA\aaa.jpg (注:生成aaa.jpg)


上传.htaccess改变解析方式

AddType application/x-httpd-php xxx

会将xxx后缀的文件,用PHP解析

或者

<FilesMatch "shell.jpg">

  SetHandler application/x-httpd-php

</FilesMatch>

会将shell.jpg用PHP解析。


文件上传漏洞修复建议

白名单机制

强行重命名为特定后缀名

检查文件内容

文件保存随机的文件名,在数据库中映射后缀,返回时,设置Content-Type

隐藏文件路径

文件路径在web目录之外,不能直接访问到

将上传的文件保存到OSS(阿里云)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 4,889评论 0 4
  • 文件上传漏洞 常见的漏洞分类服务器配置不当导致文件上传开源编辑器存在上传漏洞本地文件上传限制可以上传被绕过服务器端...
    二潘阅读 17,389评论 2 3
  • 一、初步认识 1.上传功能:网站上各种可以上传文件,图片的地方可以被用作上传点进行非法上传 2.上传原理:在前端代...
    楠昭阅读 5,655评论 1 11
  • 听完了第一节课了解东西方领导力的区别,讲课老师通过演讲的方式剖析了东西方领导力理解的不同,其实从老师的介绍来讲,我...
    三个石头_王磊阅读 1,612评论 0 0
  • 谦虚,词意就是虚心,不夸大自己的价值和行为。稻盛和夫先生一直遵从自己的内心,做一个谦虚而不骄傲的人。 做企业也是如...
    依兰33阅读 3,085评论 0 0

友情链接更多精彩内容