【代码审计】某系统存在文件上传漏洞

【代码审计】某系统存在文件上传漏洞

原创 有恒 有恒安全 2024-08-17 12:04

该漏洞与上一篇文章是同一个系统,因为时间不充裕一直没写,该漏洞主要是黑名单文件上传绕过,审计难度较为简单。

一、漏洞挖掘

挖掘流程:先黑盒找到文件上传功能,直接上传jsp文件。

保存后显示文件上传成功,但并没有回显文件上传返回的路径,为空,判断八成是后端有过滤。

根据文件上传的接口去代码寻找对应的逻辑。

二、漏洞审计

根据接口找到对应代码

跟进去getFile方法

不断跟进,最后跟到了wrapMultipartRequest方法。

该方法就是执行了文件上传操作:multipartRequest = new  com.oreilly.servlet.MultipartRequest(request, uploadPath, maxPostSize, encoding, fileRenamePolicy);

其中isSafeFile就是检验了文件后缀

isSafeFile是黑名单检验

这段代码是先上传,再检验的,而且文件名没有重写,存在目录穿越漏洞,还可能存在文件上传条件竞争漏洞,而且是黑名单检验,在windows中可以通过::$DATA继续黑名单绕过。

三、漏洞复现

在上传的文件名后缀添加::$DATA进行绕过

根据断点调试获取文件上传的路径。

查看文件上传路径,文件是成功上传的

访问url:http://xxxx/xxxx/upload/xxx/bbs/tmp/22.jsp;jsp文件成功解析执行(jsp后加;是绕过访问URL黑名单后缀检测,具体原因可以看上一篇文章有讲解)