8-文件上传漏洞
Posted jpga
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8-文件上传漏洞相关的知识,希望对你有一定的参考价值。
文件上传流程:
1.client将一个文件以http协议上传
2.以post请求发送至Web服务器
3.Web服务器收到请求同意并响应
4. 用户与Web服务器建立连接传输数据
文件上传漏洞定义:
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
漏洞产生:
1.服务器配置不当
2.开源编辑器上传漏洞
3.文件解析导致文件执行
4.过滤漏洞不言或者被绕过
5.文件上传限制被绕过
文件上传导致的危害/安全问题:
1.常见:
2.不常见:
完成攻击的条件
绕过文件上传
书中主要提到几种验证:
1.判断后缀验证文件
绕过方法:手动修改POST包,在文件名后添加%00截断函数判断
2.读取文件前xx(eg.10)字节判断文件类型
绕过方法:使用十六进制编辑工具(eg.010Editor)在正常文件头后插入php脚本代码
但是解析方式需要是php(文件后缀php,或者修改服务器解析文件方式例如将jpg按照php方式解析)
还有一些功能型漏洞巧妙利用:
1.Apache文件解析问题
文件类型定义在Apache的mime.types文件中
2.IIS文件解析问题
2.1类似0x00字符截断文件名,将截断字符换为‘;’。
IIS6漏洞:文件夹扩展名出错,道中/*.asp/目录下所有文件都作为ASP文件进行解析
(eg.http://www.target.com/path/xyz.asp/abc.jpg中abc.jpg会当作ASP文件被解析)
(eg.http://www.target.com/path/xyz.asp;abc.jpg只会执行xyz.asp不会管abc.jpg)
2.2支持Put功能 ->服务器配置不对
攻击流程:通过OPTION方法探测服务器支持的http方法类型->上传允许的文本文件->通过MOVE方法改写为脚本文件
2.3 php cgi路径解析问题
3.利用上传文件钓鱼
安全防御
1.文件上传目录设置为不可执行
2.判断文件类型
MIME Type,后缀检查等方式
推荐白名单
使用随机数改写文件名和文件路径
单独设置文件服务器的域名
以上是关于8-文件上传漏洞的主要内容,如果未能解决你的问题,请参考以下文章
PHPOKCMS 4.9.015版本存在文件上传漏洞( CNVD-2018-17547)