CTFhub前端验证 MIME绕过
CTFhub前端验证 MIME绕过
前端验证
前端验证是在用户提交数据之前,在浏览器端检查输入数据是否符合要求
题目有限制只能上传特定后缀,所以我们在直接修改一句话木马的后缀为png,上传后bp抓包再改为php。这样就饶过了前端验证但是php依旧能在服务器端执行。

上传成功,获得文件上传路径
然后就是连接蚁剑

MIME绕过
什么是 MIME 类型?
MIME是一种 标识文件类型的方式
当上传文件时,浏览器会向服务器发送 文件的 MIME 类型,例如:
1 | |
这样,服务器就能知道 上传的是 PNG 图片。
MIME 绕过的核心原理
正常的文件上传逻辑
前端检查 MIME 类型
1
2
3javascript复制编辑if(file.type !== "image/png") {
alert("只允许上传 PNG 图片!");
}绕过方式:修改
file.type,或直接禁用 JS 校验。后端检查 MIME 类型
1
2
3if($_FILES['file']['type'] !== "image/png") {
die("上传的文件类型不正确!");
}绕过方式:
- 修改请求头的
Content-Type - 伪造文件扩展名
- 利用 PHP 解析漏洞
- 双扩展名绕过
- 修改请求头的

这里我们直接更改Content-Type。然后连接蚁剑。


CTFhub前端验证 MIME绕过
http://example.com/2025/03/18/CTFhub前端验证-MIME绕过/