wuweiit / mushroom

MRCMS 是一款基于Java的动态内容管理系统
http://cms.yl-blog.com
MIT License
216 stars 183 forks source link

zip_slip #18

Open QiAnXinCodeSafe opened 5 years ago

QiAnXinCodeSafe commented 5 years ago

大家好, 我是360代码卫士的工作人员,在我们的开源代码检测项目中,发现MRCMS项目中存在zip_slip的漏洞。 FileTools.java文件中提供了对zip文件进行解压的的api default default 而项目的文件上传时仅用黑名单做了校验,禁止上传jsp文件 default

恶意攻击者1.可以通过上传上传恶意的zip文件(zip条目中带有../),解压时以覆盖任意敏感文件2.通过上传含有恶意jsp文件的zip,解压后以达到上传一句话木马等目的 由于解压zip文件的api在项目中并未用到,推测应该是方便用于二次开发。

wuweiit commented 5 years ago

做这个操作的前提是登录

QiAnXinCodeSafe commented 5 years ago

登陆的方式有很多,弱口令和爆破就是最为简单有效的方式之一。最为关键的是:需要登陆只是增加了攻击的难度和成本,并不意味着漏洞本身不存在。还是建议在程序中做安全校验 while(e.hasMoreElements()) { ZipEntry zipEntry = (ZipEntry)e.nextElement(); System.out.println(zipEntry.getName()); if(zipEntry.getName().indexOf("..") != -1 && !file.getCanonicalPath().startsWith(unZipAddress)){ System.out.println("失败!"); }else{ ... }

menglinxi commented 5 years ago

挺好的。这个提议,给出了解决方案。