代码审计--web安全之文件上传

过完年回来第一博,之前看到公众号“信安之路”(非常棒的讲安全的公众号)发了一篇文章
审计某开源商城中的漏洞大礼包
说的是文件上传的安全漏洞,想到自己之前也做过文件上传模块 自己审计下自己的垃圾代码。

代码审计--web安全之文件上传_第1张图片
文章中的php代码直接删除imgsrc对应的文件,没有做校验,那么可以指定任意路径删除
我的删除模块

    String eid = req.getParameter("eid");
    this.enclosureService.deleteResources(eid, LoginCtrlSession.getLoginVO(new ServletRequest[0]));
    res.addMessage("删除成功");

其中Id使用的时间戳,偷懒没有使用uuid,碰到暴力的话往前推几百个id可以把文件全部删除,不过外网看不到id,而且是逻辑删除,不是物理删除。或者爬虫可以全部爬下来。不过应该没什么关系,全是开放给外网下载的。

代码审计--web安全之文件上传_第2张图片
此处这种验证询问了相关的可以通过burp 改包修改content-type 最有效我觉得还是后缀白名单验证
我的上传模块

  byte[] datas = IOUtils.toByteArray(in);
        if (size > 8388608L) {

          FileOutputStream fos= new FileOutputStream(uploadPath+filename);
          fos.write(datas);
          File file= new File(uploadPath+filename);
          fos.close();
        }

上传模块中没有做文件类型白名单处理和验证,如果能够渗透到内网,则可以直接通过应用上传脚本,导致获取到数据库等信息。

web安全可以参考web安全-文件上传漏洞解决

你可能感兴趣的:(WEB安全,WEB安全,代码审计,文件上传)