文件上传漏洞与WebShell原理

文件上传漏洞完整指南:WebShell 原理、上传绕过方式、文件包含利用、防御加固。

写在前面:合法学习边界

文件上传攻击只在授权测试环境进行。

一、WebShell 架构

WebShell 架构
1
① 上传绕过 → ② 获取 WebShell → ③ 连接冰蝎/哥斯拉 → ④ 权限维持 → ⑤ 横向移动

二、上传绕过方式

1
2
3
4
5
6
7
前端校验:绕过 JavaScript 校验
MIME 类型:修改 Content-Type
后缀黑名单:.php → .phtml / .php5
大小写:.PhP / .PHP
空格绕过:shell.php. → 服务器去除空格
NTFS 流:shell.php::$DATA
图片马:GIF89a + PHP 代码

三、防御加固

1
2
3
白名单上传 · 重命名文件 · 随机文件名
上传目录禁止执行 · 使用 CDN 存储
WAF 规则检测 · 文件类型深度检测

四、小结

文件上传的核心是绕过校验 + 得到可执行 WebShell。防御核心是白名单 + 重命名 + 目录禁执行