漏洞挖掘 | 一次上传点解压缩的渗透测试

接到授权测试,给到的信息只有: 目标网站是一个共享3D模型网站,主要的功能只有一个上传模型功能
这个网站没有后台管理员入口,所以这里主要测试上传点

图片


发现注册时可以上传头像,上传限制了白名单,且各种绕过失败(没截到图)
先通过验证码爆破注册了用户test(没截到图,主要是随便加了个手机号,然后确定发送到Intruder对验证码进行爆破,就注册成功了test)

接着上传模型

图片


上传模型处是上传zip,先测试随便上传一个png文件,提示了解压失败,说明文件上传后应该会解压。

再随便上传一个带jsp后缀的文件加上一个合法的模型压缩包看看

图片


提示文件被解压,文件被上传后解压到了/mnt/data_disk01/pavilion/file/……处

访问这个路径,显示404,思考了一下,发现原来这是绝对路径而不是相对路径,所以无法从网站url直接访问,但是可以通过网站功能访问模型。且从这里的路径可知,网站为linux
然后在查看我上传的模型那里,再把模型下载下来,发现我的jsp后缀文件没有被删除。但是这里没什么意义,因为不能直接访问到jsp,说明木马也不会生效。

到这一步我发现,网站没有对我压缩包内的文件内容、文件后缀名进行检查,意味着我可以在压缩包内放任何文件上传并解压。这里我想到了压缩包目录穿越

此时制作压缩文件test.zip 里面内容为11111111111111111111111111.jpg
用010editor打开test.zip,把jpg的文件名改为../../../../../tmp/123.jpg

图片

上传成功,网站回显解压成功了,这时,按理论上来说linux会把解压缩后的压缩包内文件名拼接在要解压到的路径上,变成了
/mnt/data_disk01/pavilion/file/../../../../../tmp/123.jpg

这样的话,最后文件就会被解压到/tmp下。但是我们该如何验证呢?

因为获取不到网站目录,我也没办法写马传上去,找不到包含点,知识面有点欠缺。于是我想碰碰运气传个ssh公钥上去,看看能不能连,或许运气好的话。。。

本地做好公钥私钥,把公钥传上去

构造压缩包内容为../../../../../../../../root/.ssh/authorized_keys

上传成功后,服务器就把公钥文件解压到了/root/.ssh/authorized_keys

然后直接ssh上去居然登录成功了。。。站主直接给网站配的root权限。。。

查看下/tmp

图片

果然有个123.jpg(其实ssh能直接公钥登录就已经验证漏洞存在)
(别问我截图为什么这么少,因为我等漏洞修复了我才写的文档,之前做的时候忘记写了。。。)

漏洞修复: 网站权限改为低权限。对上传点压缩包内容检查(过滤../)

  声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

 免费领取安全学习资料包!

渗透工具

技术文档、书籍

 

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

 

应急响应笔记

学习路线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值