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

admin 2024年5月26日19:26:16评论4 views字数 1259阅读4分11秒阅读模式
本文由掌控安全学院 - sssaa 投稿
接到授权测试,给到的信息只有: 目标网站是一个共享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能直接公钥登录就已经验证漏洞存在)
(别问我截图为什么这么少,因为我等漏洞修复了我才写的文档,之前做的时候忘记写了。。。)
漏洞修复: 网站权限改为低权限。对上传点压缩包内容检查(过滤../)
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径, 所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

原文始发于微信公众号(掌控安全EDU):漏洞挖掘 | 一次上传点解压缩的渗透测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月26日19:26:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞挖掘 | 一次上传点解压缩的渗透测试https://cn-sec.com/archives/2779737.html

发表评论

匿名网友 填写信息