文件上传漏洞完整指南: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。防御核心是白名单 + 重命名 + 目录禁执行。