文件上传漏洞

导致文件上传漏洞的原因较多,主要包括以下几类:

未过滤或Web前端过滤被绕过

*文件内容检测被绕过

*中间件解析

不完善的黑名单扩展名

*文件路径截断

HTTP不安全方法(PUT协议)

加星号是比较重要的

文件名后缀就一个%00字节,可以截断某些函数对文件名的判断。在许多语言函数中,处理字符串的函数中0x00被认为是终止符。

例如:

网站上传函数处理xxx.php%00.jpg时,首先后缀名是合法的jpg格式,可以上传,在保存文件时,遇到%00字符丢弃后面的jpg,文件后缀最终保存的后缀名为xxx.php

*在你写的小马前面加一个GIF89a    假装是图片-.-


条件:

寻找一个上传点,查看上传点是否可用。

利用:

首先判断是程序员自己写的上传点,还是编辑器的上传功能

如果是编辑器上传功能,goole当前编辑器的漏洞

如果是程序员写的上传点

上传一个正常的jpg图片 查看上传点是否可用

上传一个正常的jpg图片,burp拦截,修改后缀为php (可以检测前端验证 MIME检测 文件内容检测 后缀检测)

上传一个正常的jpg图片,burp拦截, 00截断 1.php%00.jpg

判断服务器是什么类型,web服务器程序,是什么类型,版本号多少

利用解析漏洞

防御:::

上传文件的存储目录禁用执行权限

文件后缀白名单,注意0x00截断攻击(PHP更新到最新版本)

不能有本地文件包含漏洞

及时修复Web上传代码(重要)

升级Web Server

推荐阅读更多精彩内容