某系统存在文件覆盖导致getshell

admin 2024年7月21日23:31:12评论18 views字数 1026阅读3分25秒阅读模式

一、漏洞审计

问题出现在admin/filemanager接口的index方法

漏洞条件1

获取了请求参数的path

某系统存在文件覆盖导致getshell

漏洞条件2

在该方法里,可以看到当请求方法为post,而且mode=savefile,needpath与content参数不为空时,就会进入fm.savefile方法里。

某系统存在文件覆盖导致getshell

漏洞执行、

FileManagerUtils.writeString像是将content里的内容写入到getRealFilePath()里面。

先查看backupfile方法是干什么的。

某系统存在文件覆盖导致getshell

targetPath路径是由默认系统配置路径和src参数路径组成的

某系统存在文件覆盖导致getshell

跟进copyfile方法,该方法是将src路径的文件内容复制到target路径的文件内容,如果复制失败,即源文件(src)不存在,会导致FileNotFoundException或者在transferFrom操作时抛出IOException,使方法执行停止。

某系统存在文件覆盖导致getshell

回到savefile,只要backupfile不报错,就可以执行FileManagerUtils.writeString。

某系统存在文件覆盖导致getshell

其中getRealFilePath方法获取的路径是系统配置路径+请求参数的path路径。

某系统存在文件覆盖导致getshell

某系统存在文件覆盖导致getshell

通过断点可知系统配置路径如图所示。

某系统存在文件覆盖导致getshell

继续跟进writeString

某系统存在文件覆盖导致getshell

跟进write,执行了文件写入的操作,即将conten的参数内容写入到路径文件(系统配置路径+path路径)。

某系统存在文件覆盖导致getshell

漏洞思路整理:

post请求接口的index方法,带上参数mode=savefile,path=系统存在的文件,content=要写入的文件内容,就可以执行文件覆盖漏洞。

二、漏洞复现

查看系统路径有什么默认存在的文件,刚好根目录存在login.jsp文件

某系统存在文件覆盖导致getshell

构造请求数据包,其中content是url编码后的webshell代码

某系统存在文件覆盖导致getshell

查看login.jsp,覆盖成功。

某系统存在文件覆盖导致getshell

先访问试试能否解析,访问文件网站显示404,文件是肯定存在的,但是网站显示404,去代码中查看原因。

某系统存在文件覆盖导致getshell

找到了filter过滤器文件,这段代码看起来是判断请求url路径是否为jsp,为jsp就报错。

某系统存在文件覆盖导致getshell

查看isJsp方法,该方法是先判断请求url最后一位是否为x,然后再判断前一位是否为p,再判断前一位是否为s,然后是j,如果满足就return false,网站返回404。

某系统存在文件覆盖导致getshell

通过;号的方法绕过黑名单限制。看起来是成功解析了某系统存在文件覆盖导致getshell

webshell连接成功

某系统存在文件覆盖导致getshell

原文始发于微信公众号(哈拉少安全小队):【代码审计】某系统存在文件覆盖导致getshell

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月21日23:31:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某系统存在文件覆盖导致getshellhttps://cn-sec.com/archives/2981163.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息