渗透思路:上传按钮

遇到文件上传怎么测:前端绕过、MIME/扩展名/内容校验绕过、解析漏洞、配合文件包含,思路清单。

写在前面:合法学习边界

上传测试只用于授权靶场。对真实系统上传木马可能触犯法律。

一、上传为什么危险

文件上传一旦能落地可执行目录,就等于给攻击者“放进去一个后门”。测试核心是“文件能不能传上去、能不能访问、能不能执行”。

二、思路清单

1. 前端校验绕过

1
2
直接改包(绕过 JS 限制)
删掉前端限制后重放

2. MIME / Content-Type 绕过

1
2
改 Content-Type 为 image/png 等
服务端若只看 MIME,可绕过

3. 扩展名校验绕过

1
2
3
4
5
双扩展:shell.php.jpg、shell.jpg.php
大小写:.PhP、.JSP
特殊后缀:.php3、.phtml、.php5、.jspx、.war、.asp
加空格/点/换行:shell.php 、shell.php.
配合服务器解析差异

4. 内容/文件头校验绕过

1
2
在文件头加图片魔数:GIF89a / \xFF\xD8\xFF
文件内容里夹一句话(图片马)

5. 解析漏洞

1
2
3
4
nginx 解析:/shell.jpg/x.php → 以 PHP 解析
Apache 多后缀解析
IIS 分号/畸形解析
中间件版本决定能否利用

6. 配合文件包含 / 其他

1
2
3
4
上传图片马 → 配合文件包含执行
上传 .htaccess / .user.ini 改解析规则
上传 XML → XXE
上传压缩包 → 解压路径穿越

7. 上传后路径探测

1
2
3
找上传文件真实路径(时间戳/随机名?)
目录探测:/upload/、/files/
访问确认是否能执行

三、优先级

1
2
3
先测能不能绕过上传限制(前端→MIME→扩展名→内容)
再判断服务器解析(解析漏洞)
最后配合文件包含/htaccess 打通执行

四、小结

上传测试的核心是“文件能不能落到可执行位置并被触发”。一条条过:前端、MIME、扩展名、内容、解析、配合。每个站点环境不同(中间件/语言),对应的绕过方式也不同,抓包 + 探测真实路径是关键。