首页 > 观点 > 正文
欧意交易所

欧意交易所

全球前三大交易所之一,新用户注册最高可得230USDT奖励,同时可拆数字盲盒,100%可以获得数字货币,最高价值60000元

点击注册 进入官网

前言

ZK是构建企业Web应用程序的领先开源JavaWeb框架。ZK下载量超过2000000次,为众多公司和机构提供了支持,从小型公司到多个行业的《财富》世界500强。

R1Soft Server Backup Manager(SBM)为服务提供商提供了一个灵活、服务器友好的解决方案,消除了运行传统备份的麻烦。用户可以每15分钟运行一次备份,而不会影响服务器性能。近1800家服务提供商使用它来保护250000台服务器。

受影响版本

ZK框架v9.6.1、9.6.0.1、9.5.1.3、9.0.1.2和8.6.4.1。

ConnectWise Recover v2.9.7及更早版本受到影响。

R1Soft Server Backup Manager v6.16.3及更早版本受到影响。

ZK框架身份验证绕过

640?wx_fmt=png

[ZK-5150] Vulnerability in zk upload – ZK-Tracker

640?wx_fmt=png

从漏洞描述来看,如果路由/zkau/upload包含nextURI参数,ZK AuUploader servlet会进行forward请求转发,该转发可以绕过身份认证,返回web上下文中的文件,如获取web.xml、zk页面、applicationContext-security.xml配置信息等。

分析

直接看webapps/web-temp/ui/WEB-INF/lib/zk-7.0.6.1.jar!/org/zkoss/zk/au/http/AuUploader.class#service()方法,接收了nextURI参数并进行请求转发。

640?wx_fmt=png

该请求必须为multipart类型

640?wx_fmt=png

请求构造

尝试转发到web.xml,响应ZK-Error头为410,说明失败了,dtid为随便输入的字符。

640?wx_fmt=png

观察http请求,发现dtid是随机生成的,并且附带了JSESSIONID。

640?wx_fmt=png

分析前端调用的js,发现从zk.Desktop对象获取了dtid。

640?wx_fmt=png

发起ajax请求

640?wx_fmt=png

获取dtid

640?wx_fmt=png

填入dtid和对应JSESSIONID

0Z2x98qRGtAR8vBazod8Pf6dH3boMGdow8jaEvw8.png

640?wx_fmt=png

尝试访问页面

nextURI=/Configuration/server-info.zul

640?wx_fmt=png

发现绕过了身份验证,获取到了应用的敏感信息。

640?wx_fmt=png

自动获取

使用webdriver获取

id0qS3HsyQeCSVm6OjojSbvdGUyWZEsL7RefjSIe.png

640?wx_fmt=png

显然这种方式不是很方便,笔者随后发现在访问login.zul时dtid已经生成并且在响应包中。

640?wx_fmt=png

优化

fgUTboLezQrd5KEWcUEQV3gzmNb0cOR5zLs7Q8qK.png

t1zQmaSt42.png

ConnectWise R1Soft Server Backup Manager RCE

640?wx_fmt=png

R1Soft Server Backup Manager使用了zk框架,并且支持设置jdbc驱动,从而导致远程命令执行并接管该服务器。

640?wx_fmt=png

分析

jdbc上传处理zk-web/WEB-INF/classes/com/r1soft/backup/server/web/configuration/DatabaseDriversWindow.class#onUpload()方法 。

640?wx_fmt=png

跟入processUploadedMedia()方法,获取了文件流。

W07ZA8hl7u.png

传入webapps/lib/cdpserver.jar!/com/r1soft/backup/server/facade/DatabaseFacade.class#uploadMySQLDriver()方法。

Jd4I3s5py1.png

通过uploadDriverFile()方法写出文件。

640?wx_fmt=png

webapps/lib/cdpserver.jar!/com/r1soft/backup/server/worker/db/mysql/MySQLUtil.class#hasMySQLDriverClass()会判断上传的jar包是否有org/gjt/mm/mysql/Driver.class,否则不会添加到classpath中,返回The file does not contain the MySQL JDBC database driver。

640?wx_fmt=png

webapps/lib/cdpserver.jar!/com/r1soft/util/ClassPathUtil.class#addFile()方法调用URLClassLoader添加jar包到classpath中。

640?wx_fmt=png

最后webapps/lib/cdpserver.jar!/com/r1soft/backup/server/facade/DatabaseFacade.class#testMySQLDatabaseDriver()进行驱动测试。

640?wx_fmt=png

webapps/lib/cdpserver.jar!/com/r1soft/backup/server/db/mysql/MySQLDatabaseConnection.class#driverTest()最终在Class.forName时执行了Driver中的静态代码块。

640?wx_fmt=png

jdbc backdoor

早在2018年时就有人提出jdbc backdoor,一部分应用程序在ui界面允许管理员上传jdbc驱动,这样非常方便,无需登陆服务器添加相关jar包。但DriverManager中的静态代码块会默认执行,从而可以执行任意代码。具体原理可以看看SPI机制是如何实现JDBC的,这里不再阐述。

640?wx_fmt=png

编写恶意com.mysql.jdbc.Driver,其实就是实现java.sql.Driver接口相关方法,在静态代码块中添加恶意代码。

4s24DJjrN8QG7LcJKtdnsFzSE5kJ1Y9RNnz1ucB5.png

替换合法jdbc包中的com.mysql.jdbc.Driver。

9WIhUJhXYpTcu7Progxel1kYld8sCbm5gj16jyym.png

请求构造

回到ZK框架机制本身,页面每个元素都会随机生成唯一标识,需要模拟整个请求过程,拿登陆举例。

640?wx_fmt=png640?wx_fmt=png

自动上传

模拟上传驱动过程

AXHSGS9MRLmWepWvnizeRZjuN2Td6ylrD4XkBHxW.png

利用演示

请使用以下链接观看视频: https://mp.weixin.qq.com/s?__biz=Mzg4MDcxNTc2NA==&tempkey=MTE5NV9uUUpJNnFtWEZFOXhBd0JiNXZVcUY3OWR3bW00WjF6Q055bXBFNEM0dWFjS3hYTVQ0R0Y2ekV0UFFJLTJPMUE0Sm51R1dNRGdjVnhrMDZ5WGlYNnB0SXRLQVVKYlliajFKbW5raUZEeUF5OVlpdE9GZ1FSWThWVkRNdjdnQWgwb1c4T3FMUC1PM1loT0R1WW95MWRBN0NFbXRIUm5RMG5hNU1mYkpBfn4%3D&chksm=cf71b6bff8063fa947f89135db21b94f0fc0d03bd2feb83525abbd7f684e5795f712da3156ca&token=2067341768&lang=zh_CN#rd

完整的exp请访问:https://github.com/numencyber/VulnerabilityPoC/tree/main/CVE-2022-36537

总结

R1Soft Server Backup Manager使用ZK框架作为主框架,其安全性需要各Web3项目方提高重视,及时关注各种Web3基础架构的安全漏洞并及时打好补丁,以避免潜在的安全风险和数字资产损失。我们将及时挖掘,追踪各种web3上的安全风险,以及提供领先的安全解决方案,确保web3世界链上,链下安全无虞。

互联网影响

通过Shodan发现了4000多个暴露的Server Backup Manager,很有可能会被攻击者利用接管主服务器和agent主机权限并下发勒索软件。建议各Web3项目方提高重视,及时升级到安全版本,以避免潜在的安全风险和数字资产损失。如有任何疑问或技术交流,欢迎联系我们 contact@numencyber.com。

xEV3mn5EB5.png

补丁下载

[ZK-5150] Vulnerability in zk upload – ZK-Tracker

ConnectWise Recover and R1Soft Server Backup Manager Critical Security Release

 

关于更多详情,欢迎访问:  https://mp.weixin.qq.com/s?__biz=Mzg4MDcxNTc2NA==&tempkey=MTE5NV9uUUpJNnFtWEZFOXhBd0JiNXZVcUY3OWR3bW00WjF6Q055bXBFNEM0dWFjS3hYTVQ0R0Y2ekV0UFFJLTJPMUE0Sm51R1dNRGdjVnhrMDZ5WGlYNnB0SXRLQVVKYlliajFKbW5raUZEeUF5OVlpdE9GZ1FSWThWVkRNdjdnQWgwb1c4T3FMUC1PM1loT0R1WW95MWRBN0NFbXRIUm5RMG5hNU1mYkpBfn4%3D&chksm=cf71b6bff8063fa947f89135db21b94f0fc0d03bd2feb83525abbd7f684e5795f712da3156ca&token=2067341768&lang=zh_CN#rd

白话区块链|同步全球区块链资讯、区块链快讯、区块链新闻
本站所有文章数据来源:金色财经
本站不对内容真实性负责,如需转载请联系原作者
如需删除该文章,请发送本文链接至oem1012@qq.com

更多交易所入口

一站式注册各大交易所、点击进入加密世界、永不失联,币安Binance/欧易OKX/GATE.IO芝麻开门/Bitget/抹茶MEXC/火币Huobi

点击进入 永不失联
picture loss