一、FineCMS文件上传漏洞
以此网站为例
登陆后进入会员中心,可以看到存在“上传头像”的选项,这里就可以作为一个文件上传的点。
首先按照常规的思路来,上传一张图片使用BURP进行抓包。
可以看到BURP并没有成功抓取到数据包,原因可能是其上传操作是由JS代码执行的,没有经过PHP前端,在浏览器里就完成了。
可以看到此时图片已经显示在网站上了,但是其上传还是没有完成,此时点击“保存”,并再次抓取数据包。
可以看到BURP抓取到的数据包里有一个文件格式“png”。
将“png”改为“php”后放包,正常在上传完文件之后,会返回一个文件的地址,但是这里地址没有显示,并出现了报错。
将数据包发送出去之后,在网页内也可以看到提示的错误信息。
提示“上传失败”,但是其实并没有上传失败,上传的文件出现在了下图所示的位置。
但是网页内并没有对此路径进行返回,同时还报了一个错误,因此,按照正常思维,此时我们必然会认为此次上传失败了,因此在实际情况下我们也并不可以得到此路径。
因此我们换一个思路,可以看到网站的程序名叫“FineCMS”。
在搜索引擎内搜索其漏洞。
进一步搜索,指定漏洞为“文件上传漏洞”。
经过不断的搜索和尝试可以得到下图所示的一个文件上传漏洞。
这里的“uid”有很多方法可以获取到,下图展示了其中一种获取方法。
按照搜索到的方法,将“png”改为“php”后放包。
可以看到更改后缀为“php”的文件成功上传进去了。
在网址内添加此路径进行搜索,在回显的页面内可以看到上传的文件成功以php的形式进行了执行(因为这里上传的是图片,且没有进行修改,所以返回的全部是乱码)。
二、Weblogic任意文件上传漏洞(CVE-2018-2894)
这里使用的是Vulhub靶场
在靶场主页内找到“Weblogic任意文件上传漏洞”。
补充:Weblogic是一个中间件,可以简要的将其理解为一个第三方的应用,这个应用存在文件上传漏洞。
将靶场环境启动。
查看管理员密码(这个漏洞需要登陆到网站的控制端后才能实现)。
查看端口。
查看ip地址。
使用管理员账号密码登陆网站后台。
点击 base_domain 的配置,在“高级”中开启“启用 Web 服务测试页”选项
按照靶场给出的提示继续进行操作。
设置“Work Home Dir”。
然后点击“安全”后点击“增加”,然后上传webshell。
重新提交编辑后可以看到时间戳。
然后访问 http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名] ,即可执行webshell。
可以看到访问后可以实现上图所示的效果,因为我们这里上传的是普通图片,不是jsp代码,所以网页返回的是一堆乱码,如果我们上传的文件是jsp文件,网页就会返回jsp代码执行后的内容。