上传文件的漏洞复现与修复
Posted 可持续化发展
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传文件的漏洞复现与修复相关的知识,希望对你有一定的参考价值。
本文只说一些我遇到过的上传文件的漏洞。毕竟漏洞太多,我又不可能全部发现。
(安全方面的小菜鸟)
可能你们的系统比较完善,针对这些漏洞,已有相应的防御手段。我们针对的是那种比较简单的系统(就是各位上大学时自己开发的小系统,哈哈哈)。
利用漏洞的具体效果,就不演示了。本文只是提供一些思路和方向。
工具:我装了kali,使用 burpsuite;Linux环境下的VirtualBox
要配一下,burpsuite的 proxy-->options
自己去哔哩哔哩找一下资料了解一下burpsuite的使用。
漏洞一:直接上传jsp、php、jspx、exe等这种在黑名单的文件。上传成功后,可以使用冰蝎等webshell工具去getshell
如果系统没有对上传文件进行检测的话,直接上传这种带恶意代码的文件,再利用webshell的工具,就可以进入系统后台了。然后就可以做一些危险的事情:删除文件。
漏洞二:系统有个功能,编辑文件内容。写入新的内容后,点击提交,能修改文件内容。
我们可以写入恶意代码,然后用burpsuite 抓包,修改文件名。
点击放行。
漏洞三:系统中上传压缩包。上传成功后,系统会自动解压压缩包。这时,我们可以搞很多层深度的文件夹的压缩包(文件夹里有10000000层深度的文件夹);压缩包里有10000000000个文件;在压缩包中放非法文件(jsp/jspx/php等);上传的文件特别大(10G)
漏洞四:通过更改文件名后缀来绕过前端检测
.jspx改为 .html或者 .jpg
然后上传,用burpsuite抓包,再修改文件名后缀。
漏洞五:在图片中加入恶意代码,用文本编辑器打开,写东西
漏洞六:删除文件时,用burpsuite抓包,然后加一些特殊字符来删除任意文件
将"path":"/def.xml" 的文件修改为 "path":"../../../../../../XXXXX"
后面系统中会拼接出这样的路径(在生成File对象时用到的),
如果在/home/zcm目录下,恰好有 def.xml。
那么,就可以删除/home/zcm目录下的 def.xml。
"/home/zcm/workspace/git/DKEYAM/target/var/portal/realm/848e34b1-4829-4cdf-ac26-3afc7108cf81/login/mobile/../../../../../../../../../../def.xml"如果将realm 改为 portal/文件夹中 一个不存在的文件夹名字,比如 no,就找不到了。
即"/home/zcm/workspace/git/DKEYAM/target/var/portal/realm/848e34b1-4829-4cdf-ac26-3afc7108cf81/login/mobile/../../../../../../../../../../def.xml" 这个路径中的每一部分都要存在。
防御手段:
因为是公司的代码,就不方便贴出来。就提示一些jar包吧。你们去查一下对应jar包的对应的类,有哪些方法,基本应该能搞定的。
1、对于压缩包,要检测文件夹的深度、里面的文件数量、压缩包大小。
解压前先 遍历一波文件
解压后,
删除解压出来的临时文件。
以上是关于上传文件的漏洞复现与修复的主要内容,如果未能解决你的问题,请参考以下文章
VMware vCenter Server任意文件上传漏洞(CVE-2021-22005)复现