开始

image.png
代码里面有个小的后门。文件上传的时候,前端进行选择
前端只限制了这几种格式
image.png
点击头像选择,这几个格式是可以选择的
image.png
gif格式的选择不了。
image.png
以上是在前端控制的,如果在后端接口被黑客攻击的话,它是不会访问前端的,它会直接访问后端的接口
直接攻击这个接口
image.png

由于我们的后端没有校验file的文件格式
image.png

有可能服务器上被上传.sh或者是.php格式的文件。
image.png

后缀名的判断

image.png

  1. // 获得文件的后缀名
  2. String suffix = fileNameArr[fileNameArr.length - 1];
  3. if(!suffix.equalsIgnoreCase("png") &&
  4. !suffix.equalsIgnoreCase("jpg") &&
  5. !suffix.equalsIgnoreCase("jpeg")
  6. ) {
  7. return IMOOCJSONResult.errorMsg("图片格式不正确!");
  8. }

重启服务器做测试

在前端故意加上可以选择gif格式的文件。但是目前后端接口是不支持的
image.png
故意选择一个gif格式的文件
image.png

结束