一个未解决的漏洞:actuator字符绕过漏洞

news2024/12/22 17:34:51

最近遇到了安全部门派发的actuator泄漏漏洞,领导希望不暴露到外网上,对于内网需要认证才可以访问。
要想不暴露到外网上,就需要在网络层面做拦截,比如nginx和apisix上做代理配置。

一般的情况都可以应对,就是对于http://xxx/actuator;%2f…/字符绕过这种情况,一直没有解决方案。

放开actuator端点的访问

使用springBoot的1.5.8RELEASE版本编写了一个简单的web项目,支持actuator的端点访问

server:
  port: 9090
management:
  endpoints:
    web:
      exposure:
        include: health,info,beans
  context-path: /actuator

然后部署到了测试服务器上,带着9090端口可以正常访问/actuator端点
在这里插入图片描述

期望actuator的访问被nginx拦截

nginx上的配置:

    server {
        listen      80;
        server_name 192.168.1.1;

        location ~*actuator.*{
          # 你可以根据需要修改这里的返回码和响应体
          return 403 "Actuator endpoints are not accessible directly through this server.";
        }

        location / {
            proxy_pass http://192.168.1.1:9090; # 代理到本地9090端口的服务
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

    }

用80端口访问(即走Nginx代理),被nginx拦截:
在这里插入图片描述

字符绕过不能被nginx拦截

在这里插入图片描述
URI字符绕过的风险背景知识:
URI字符绕过是一种安全漏洞,它发生在应用程序没有正确地处理或编码通用资源标识符(URI)中的某些特殊字符时。这些特殊字符可能被用于执行非预期的操作或利用安全漏洞。

跨目录拼接绕过是一种常见的URI字符绕过技术,主要用于绕过某些安全策略。比如https://xxx.com/actuator;/…/ 实际上要访问的是https://xxx.com/

Tomcat 服务器处理请求时,如果请求的 URI 包含分号(;),Tomcat 会忽略分号及其后的内容。这是因为分号在 URI 中用于分隔同一资源的不同片段,而在大多数情况下,服务器不会处理这部分内容。
例如,如果有一个请求的 URI 是这样的:http://www.example.com/index.html;parameters
在这个例子中,分号后的 “parameters” 部分不会被 Tomcat 处理。它可能会被客户端浏览器解析,或者是某些特定于服务器的扩展,但是作为一个通用的 Web 服务器,Tomcat 会忽略它, 而只对http://www.example.com/index.html 做处理

‌%2F是URL编码,用于将某些特殊字符转换为可以在URL中传输的格式。在URL中,某些特殊字符,如空格、斜杠(/)等,不能直接传输,需要通过编码转换为"%加字符的ASCII码"格式。具体到"%2F",这是斜杠"/"的URL编码形式

‌ 举例说明URI字符串绕过代理服务器配置的actuator拦截的原理:
https://xxx.com/actuator;%2f…/ 被APISIX代理服务器认为是要访问https://xxx.com/, 因而没有走/actuator*的路由,直接分发给了应用服务器。
应用服务器(Tomcat)拿到https://xxx.com/actuator;%2f…/ 的路径,去掉分号后边的内容, 从而按照https://xxx.com/actuator 进行了处理。
由于应用服务器没有对actuator的请求做防护,从而暴露了端点信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2130966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS镜像源更新

如果 CentOS 7.9 的官方镜像源已不维护,你可以使用以下方法更新: 切换到其他镜像源:使用 CentOS 镜像站点或第三方镜像源,如 EPEL(Extra Packages for Enterprise Linux)。修改 /etc/yum.repos.d/CentOS-Ba…

Web大学生网页作业成品——动漫火影忍者网页设计与实现(HTML+CSS+JS)(5个页面)

🎉🎉🎉 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

终于有一本书把大模型背后的Transformer模型究竟是什么一次性说清楚了!

前言 ChatGPT红得发紫,强得让人类心悸。但在它的背后,还隐藏着一位真正的大佬。它的名字叫做——Transformer! 这本书全面介绍了最新的Transformer模型在自然语言处理中的应用方法和技巧,包括原理、实现方法和各种任务的应用,提供…

WebSocket和HTTP协议有什么区别

WebSocket 支持端对端通信可由client发起,也可由sever发起用于消息通知、直播间讨论区、聊天室、协同编辑 WebSocket连接过程 先发起一个HTTP请求成功之后在升级到WebSocket协议,再通讯 WebSocket和HTTP区别 WebSocket协议名是ws://,可双…

C语言存储类型 auto,register,static,extern

目录 1. auto 存储类型 1.1 自动变量特性 1.2 举例 2. register 存储类型 2.1 寄存器变量特性 2.2 举例 3. extern 存储类型 3.1 extern 存储类型特性 3.2 举例 3.2.1 extern全局变量 ​编辑 3.2.2 extern函数 4. static 存储类型 4.1 static 存储类型特性 4.2 举…

克雷格·费德里吉谈Apple Intelligence保密技术背后的挑战

苹果必须实现克雷格-费德里吉所说的突破,这样 Apple Intelligence公司才能在云中使用大型语言模型,同时还能保护用户隐私,苹果是这样做的。在"It’s Glowtime"活动中,苹果公司谈到了私有云计算作为保护用户隐私的方式。…

Java发邮件:如何配置SMTP服务器实现发信?

Java发邮件功能实现的教程?Java发邮件的方式有哪些? 无论是用于用户注册确认、密码重置,还是系统通知,Java发邮件都是不可或缺的一部分。AokSend将详细介绍如何配置SMTP服务器,以便在Java发邮件时能够顺利发送邮件。 …

【Kubernetes】linux centos安装部署Kubernetes集群

【Kubernetes】centos安装Kubernetes集群 1、环境准备 系统centos7 配置yum源参考文章 Centos系统换yum源 步骤1-3是所有主机都要配置,主机名和hosts配置完后可以使用工具命令同步 1.1 主机 一主二从 主机名ipk8smaster192.168.59.148k8snode1192.168.59.149…

App结合3D形象的技术实现选择

在为App添加3D人物交互效果时,可以采用多种技术,具体选择取决于你的目标平台(iOS、Android、跨平台)以及项目的复杂性和需求。 以下是几种常用技术及其特点: 游戏引擎技术 游戏引擎提供了强大的3D图形渲染和交互功能&…

05 输出三角形面积和周长

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std;#include<stdio.h> #include<stdlib.h>#include<math.h>int main() {int a,b,c;cin>>a>>b>>c;if(ab>c&&ac>b&&bc>a){;}else{…

打包yolov8目标检测模型为exe的教程(pyinstaller 打包pyQt5 界面为exe)

要将YOLOv8模型的应用程序打包成EXE可执行文件&#xff0c;您可以遵循以下步骤&#xff0c;这里使用的是PyInstaller作为打包工具。请注意&#xff0c;这个过程可能会因为您的环境和依赖关系的不同而有所变化。以下是一个基本的指南&#xff1a; 步骤 1: 安装必要的库 确保您…

RabbitMQ 07 另两种集群方式 warren(主备模式),shovel(远程模式)

01.之前的集群有一个缺点&#xff0c;就是故障恢复的时候&#xff0c;停留在队列中的消息怎么办&#xff1f; 02.镜像集群模式&#xff0c;同步所有消息&#xff0c;当当前主节点不可用的时候&#xff0c;可以选举一个从节点来作为主节点。这样可以避免因为主节点不可用的情况…

JVM面试真题总结(八)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ G1收集器如何划分堆内存? G1收集器将整个堆划分成约 2048 个大小…

查看TCP/UDP网络连接通信情况

绪论​ “宿命论是那些缺乏意志力的弱者的借口。 ——罗曼&#xff0e;罗兰” 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 主要使用&#xff1a; nestat -nltp n 拒绝显示别名&#xff0c;能显示数字的全部转化成数字l 仅列出有在 Listen (…

开放式蓝牙耳机推荐性价比高的有哪些?权威推荐全网热销前五名

​到了2024年&#xff0c;开放式耳机无疑成为了耳机市场的宠儿。它们的优势在于&#xff0c;不仅佩戴舒适&#xff0c;还能在保护听力的同时&#xff0c;让你保持对周围环境的警觉&#xff0c;这对于爱好户外探险的朋友来说&#xff0c;无疑是一个巨大的安全加分项。作为一名资…

无人机PX4飞控ROS应用层开发:MAVROS 功能包介绍与飞控消息汇总(一)

概述 这个软件包提供了针对各种自动驾驶仪(如PX4,Ardupilot)使用 MAVLink 通信协议的通信驱动程序。 此外&#xff0c;它还提供了用于地面控制站&#xff08;例如 QGroundControl&#xff09;的 UDP MAVLink 桥接功能。 通常与PX4的offboard模式联合使用 Offboard控制背后的想…

代码随想录训练营 Day59打卡 图论part09 Bellman_ford算法

代码随想录训练营 Day59打卡 图论part09 Bellman_ford 算法 例题&#xff1a;卡码94. 城市间货物运输 I 题目描述 某国为促进城市间经济交流&#xff0c;决定对货物运输提供补贴。共有 n 个编号为 1 到 n 的城市&#xff0c;通过道路网络连接&#xff0c;网络中的道路仅允许从…

FP7195:大功率钓鱼灯应用方案,覆盖低压大功率40W,60W,80W的应用市场

前言; 目前夜钓正在逐渐变得时尚起来&#xff0c;随着夜钓群体的年轻化&#xff0c;人们对于夜钓灯的审美要求也越来越高。夜钓灯作为夜间钓鱼的重点装备&#xff0c;不仅仅需要高质量的光源照亮水面浮漂&#xff0c;同时还需要融合一些其他功能&#xff0c;尽可能让夜钓者轻装…

深入理解CASAtomic原子操作类详解

1.CAS介绍 什么是 CAS CAS&#xff08;Compare And Swap&#xff0c;比较与交换&#xff09;&#xff0c;是非阻塞同步的实现原理&#xff0c;它是CPU硬件层面的一种指令&#xff0c;从CPU层面能保证"比较与交换"两个操作的原子性。CAS指令操作包括三个参数&#x…

【LLM text2sql】浅看大模型用于text2sql的综述

前言 之前笔者分享了text2sql & LLM & KG的有机结合实现KBQA的问答&#xff0c; 《【LLM & RAG & text2sql】大模型在知识图谱问答上的核心算法详细思路及实践》、 《【开源分享】KBQA核心技术及结合大模型SPARQL查询生成问答实践》。 我们再来看看大模型在te…