actuator字符绕过漏洞在Nginx上的配置

news2024/11/16 8:51:41

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

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://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端点
在这里插入图片描述

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 / {
            if ($request_uri ~* 'actuator'){
                return 403 "not allowed actuator";
            }

            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拦截

在这里插入图片描述

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

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

相关文章

【笔记】第二节 熔炼、轧制、热处理和焊接工艺

文章目录 2.1 钢轨冶炼工艺2.1.1 冶炼工艺(1)铁水预处理(2)转炉合金化冶炼(3)钢包精炼工艺(LF(Ladle Furnace)炉) 2.1.2 技术要点(1) LF精炼(2) 夹杂物及有害元素控制非金属夹杂物P和S杂质气体 (3) 铸造组织控制钢轨材质的特点铸造…

雷尼绍圆光栅差分ABZ测量问题

雷尼绍圆光栅差分ABZ测量问题 文章目录 雷尼绍圆光栅差分ABZ测量问题引言一 设备1.1 雷尼绍圆光栅1.2 永磁同步电机1.3 M新动力驱动控制器 二 问题2.1 关于圆光栅2.1.1 电机静止时存在位置抖动问题2.1.2 脉冲数计算问题 引言 最近在调试FOC控制,位置反馈采用的是雷…

基于Ubuntu2404搭建mysql8配置远程访问

使用系统为Ubuntu2404,mysql8版本为8.0.36 安装mysql apt install -y mysql-server设置开机自启动 systemctl enable --now mysql修改密码,似乎是bug,修改密码第一次不成功,第二次可以 mysql use mysql; update user set Host…

局域网UDP通信实验

环境: 一个随身WIFI 一台笔记本电脑 一部手机 随身WIFI连接电脑 手机连接WIFI 此时手机和电脑在同一局域网中 手机IPV4地址:192.168.0.20 电脑IPV4地址:192.168.0.39 电脑端使用两台windows系统计算机简单TCP通信测试_两台计算机tcp通信-CSDN…

性能测试:Locust使用介绍(五)

事件钩子 Locust附带了许多事件钩子,可用于以不同的方式扩展Locust。 例如,以下是如何设置一个事件监听器,该监听器将在请求完成后触发: from locust import eventsevents.request.add_listener def my_request_handler(reques…

通信工程学习:什么是EDFA掺铒光纤放大器

EDFA:掺铒光纤放大器 EDFA,即掺铒光纤放大器(Erbium-Doped Fiber Amplifier),是一种在光纤通信中广泛使用的光放大器件。以下是对EDFA的详细解释: 一、定义与基本原理 EDFA是在石英光纤中掺入少量的稀土元…

fpga系列 HDL:全连接层实现单个神经元PE(组成:FADD+FM)+vivado单模块仿真

vivado单模块仿真 右键模块的tb.v文件-》“Set as Top” -》点击左侧的“Run Simulation” vivado单模块综合 也可将其他模块暂时Disable PE模块单独综合的结果: 单个神经元PE的结构 processingElement.v 该模块计算两个浮点数的乘积,并将乘积与当前结果相加。最…

Django笔记一:搭建Django环境与URL路径访问

博主之前学从Java后端开发,后面获取到读研资格,想着未来转算法岗,初学Python,发现Python还挺有趣的,由于之前所学后端缘故,有点后端情节,想学习一下Django框架(python的web框架&…

Unix时间戳与C语言的time.h库函数

目录 Unix时间戳介绍 UTC/GMT 时间与秒计数器转换代码 time.h库函数 Unix时间戳介绍 Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒 时间戳存储在一个秒计数器中,秒计数器…

Ajax 揭秘:异步 Web 交互的艺术

Ajax 揭秘:异步 Web 交互的艺术 一 . Ajax 的概述1.1 什么是 Ajax ?1.2 同步和异步的区别1.3 Ajax 的应用场景1.3.1 注册表单的用户名异步校验1.3.2 内容自动补全 二 . Ajax 的交互模型和传统交互模型的区别三 . Ajax 异步请求 axios3.1 axios 介绍3.1.1 使用步骤3…

车辆重识别(关于卷积神经网络一些资料)2024/9/11

关于卷积神经网络的介绍 一,全连接神经网络 1,全连接神经网络的整体结构 X代表左边输入的数据(向量或者矩阵等等),Y代表模型对数据处理之后的结果,中间的节点都可以算作为隐藏层。 2,全连接神经…

【C++二分查找 容斥原理】1201. 丑数 III

本文涉及的基础知识点 C二分查找 容斥原理:组合数学汇总 LeetCode1201. 丑数 III 丑数是可以被 a 或 b 或 c 整除的 正整数 。 给你四个整数:n 、a 、b 、c ,请你设计一个算法来找出第 n 个丑数。 示例 1: 输入:n …

读构建可扩展分布式系统:方法与实践03分布式系统要点

1. 通信基础 1.1. 每个分布式系统都包含通过网络进行通信的软件组件 1.2. 硬件 1.2.1. 全球互联网就是一台异构机器,由不同类型的网络通信通道和设备组成,它们每秒将数百万条消息通过网络传送到预定目的地 1.2.2. 对于单个光纤链路,可以提…

使用gzexe保护Kylin Linux Shell脚本安全

使用gzexe保护Kylin Linux Shell脚本安全 1、加密脚本2、解密脚本3、注意事项 💖The Begin💖点点关注,收藏不迷路💖 在Kylin Linux中,若需保护shell脚本内容不被直接查看,可以使用gzexe工具进行加密。 1、…

R语言机器学习算法实战系列(一):XGBoost算法(eXtreme Gradient Boosting)

介绍 XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升决策树(GBDT)的优化算法,它在处理大规模数据集和复杂模型时表现出色,同时在防止过拟合和提高泛化能力方面也有很好的表现。以下是XGBoost算法的原理和应用方向的详细介绍: 算法原理 目标函数:XGBoost的目标…

Android 测试机

要测手机应用,直接挂电脑上跑虚拟机的话,怀疑电脑都要起火了。 eBay 上买了个新的机器,也才 100 美元多点,机器都没有拆过,电池是完全无电的状态。 操作系统是 Android 12 的版本,升级到 Android 14 后&am…

从用户数据到区块链:Facebook如何利用去中心化技术

在数字化时代,用户数据的管理和保护已成为科技公司面临的重大挑战。作为全球最大的社交网络平台之一,Facebook不仅在用户数据的处理上积累了丰富的经验,也在探索如何利用去中心化技术,如区块链,来改进其数据管理和用户…

怎么使用ai 免费生成ppt?这4个工具可以帮忙

随之AI工具的流行,网络上也涌现了一批 AIPPT 工具,可以在办公上帮助我们节省很多制作PPT的时间。通常它们的操作也比较简单,所以适合很多人使用。为了可以帮助大家提高办公效率,我在这里跟大家分享4款可以免费使用的AIPPT制作工具…

STM32——看门狗通俗解析

笔者在学习看门狗的视频后,对看门狗仍然是一知半解,后面在实际应用中发现它是一个很好用的检测或者调试工具。所以总结一下笔者作为初学小白对看门狗的理解。 主函数初始化阶段、循环阶段和复位 众所周知,程序的运行一般是这样的&#xff1…

解决项目启动时报“找不到符号”问题

前言 在Java开发过程中,遇到“找不到符号”的错误是非常常见的现象。这种错误往往意味着编译器无法识别你所引用的某个类、方法或变量。本文旨在提供一套详细的排查和解决思路,帮助开发者快速定位并解决此类问题。 问题描述 “找不到符号”错误通常出…