文章简介:
本文全面梳理了文件上传相关知识,包括文件上传漏洞的原理及危害,介绍了 Webshell 相关工具(如冰蝎、哥斯拉、蚁剑),详细阐述了文件上传绕过检测的多种方法(前端检测、服务端检测的各种类型及相应绕过技巧),还探讨了文件上传的其他利用方式(如构造 XSS 漏洞、钓鱼、文件读取 / SSRF、执行 SSI 命令、探测 XXE 漏洞等),最后提出了针对文件上传漏洞的防御措施。
精简笔记:
- 文件上传简介
- 原理及危害:网站文件上传功能缺陷可致用户上传可执行脚本,获取服务器端命令执行能力进行恶意操作。
- 成因及利用条件
- 成因:开源编辑器漏洞、服务器配置不当等多种原因。
- 利用条件:恶意文件能上传且路径可访问执行。
- Webshell 工具
- 冰蝎:动态加密,不同环境有不同支持方式。
- 哥斯拉:多种 Payload 和加密器,支持多种后缀和插件。
- 蚁剑:开源跨平台,面向特定人员。
- 文件上传 bypass
- 前端检测:禁用 JS 可绕过。
- 服务端检测
- Mime type 检测:抓包修改类型。
- 文件扩展名
- 黑名单检测:多种绕过方式。
- 白名单检测:00 截断有条件绕过。
- 文件内容检测绕过:多种方法,如文件头伪装、利用图片马、条件竞争等。
- 利用服务器解析漏洞绕过:多种服务器存在相关漏洞可利用。
- 分块传输绕过:通过插件,加注释或延时可绕过部分 WAF。
- HPP 漏洞绕过:利用参数污染。
- 脏字符绕过:填充脏字符,数据包大可能放行。
- 文件路径修改:利用../ 回溯上传到根目录。
- 流量检测绕过:修改请求头相关设置。
- 文件上传的其它利用
- 构造 XSS 漏洞:上传多种文件可构造。
- 钓鱼:制作木马上传钓鱼。
- 文件读取 / SSRF:利用有漏洞的 ffmpeg 上传相关文件。
- 执行 SSI 命令:服务器支持相关功能时上传 shtml 文件。
- 探测 XXE 漏洞:处理 Excel 文件时可能存在漏洞。
- 防御措施
- 检查上传路径,设置权限。
- 扩展名检测,使用黑白名单。
- MIME 验证,内容检测。
- 图片二次渲染,文件重命名。
- 隐藏路径,定义.htaccess 文件。