客户端校验
最简单的文件校验是本地js校验
,一般都是要求只能上传jpg,png,gif图片格式
:
![本地校验.jpg](https://i-blog.csdnimg.cn/blog_migrate/e0bc2e7917a0af13ec7a871c19fce3e3.png)
应对措施:在本地禁用js
。
![本地禁用js.jpg](https://i-blog.csdnimg.cn/blog_migrate/b50a2f6acd81715352030ab7a0b47c59.png)
服务端校验
服务端校验比较棘手一点。
MIME类型校验
虽然我们在客户端同过禁用js上传了文件,但服务端还会再对文件类型进行校验,并且校验的是MIME
。
![MIME校验.jpg](https://i-blog.csdnimg.cn/blog_migrate/9ce2c9b7fb55f22fa86ab7097b11e0c2.png)
我们在开发者工具中,虽然看到文件发送成功:
![文件上传成功.jpg](https://i-blog.csdnimg.cn/blog_migrate/7aff69c49a8d7a4496051296b477ffad.png)
但如果服务端对我们请求的数据中的MIME类型进行校验,发现并非image类型,仍会丢弃。
所以,我们要修改请求包中的MIME类型(使用burp suit),常见的MIME类型: