百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

常见未授权访问漏洞详解

csdh11 2024-12-11 11:25 16 浏览

简介

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。

常见的未授权访问漏洞

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。

MongoDB 未授权访问漏洞

漏洞信息

开启MongoDB服务时不添加任何参数,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作【增、删、改、查高危动作】而且可以远程访问数据库。

造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth ,也很少会有人会给数据库添加上账号密码【默认空口令】,使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。

漏洞利用

漏洞复现

防御方法

为MongoDB添加认证:MongoDB启动时添加--auth参数、为MongoDB添加用户。

MongoDB 自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false。

限制绑定IP:启动时加入参数--bind_ip 127.0.0.1 或在/etc/mongodb.conf文件中添加内容bind_ip = 127.0.0.1。

Redis 未授权访问漏洞

漏洞信息

Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上;如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器、添加计划任务、写入Webshell等操作。

漏洞利用

漏洞复现

防御方法

设置 Redis 访问密码在 redis.conf 中找到 “requirepass” 字段在后面填上强口令,redis 客户端也需要此密码来访问 redis 服务。

添加IP访问限制:配置 bind 选项限定可以连接 Reids 服务器的 IP并修改默认端口 6379。

重启 Redis 服务。

清理系统中存在的后门木马。

禁止使用root权限启动redis服务。

Jenkins 未授权访问漏洞

漏洞原理

默认情况下, Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞【未设置密码】或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。

漏洞利用

漏洞复现

防御方法

升级版本。

添加身份认证,设置强密码复杂度及账号锁定。

禁止把Jenkins直接暴露在公网。

Memcached 未授权访问漏洞

漏洞原理

Memcached 是一套分布式高速缓存系统,它以 Key - Value 的形式将数据存储在内存中,这些数据通常是会被频繁地应用、读取的。正因为内存中数据的读取速度远远大于硬盘的读取速度所以可以用来加速应用的访问, Memcached 的安全设计缺陷客户端连接 Memcached 服务器后无需认证就可读取、修改服务器缓存内容,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached中的敏感信息。

漏洞利用

漏洞复现

防御方法

修改绑定的IP、端口和指定访问者IP;

设置防火墙策略,配置访问控制策略;

禁止暴露在公网,禁止外网访问Memcached 11211端口。;

配置memcached监听本地回环地址 127.0.0.1。只允许本地访问;

JBOSS 未授权访问漏洞

漏洞原理

JBoss也是一个管理EJB【企业java beans】的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。,默认情况下访问 http://ip:8080/jmx-console 就可以浏览 JBoss 的部署管理的信息,不需要输入用户名和密码可以直接部署上传木马有安全隐患。

漏洞利用

漏洞复现

防御方法

添加 JMX 控制页面身份认证,控制页面访问,添加访问验证。;

进行JMX Console 安全配置;

关闭jmx-console和web-console。

VNC 未授权访问漏洞

漏洞原理

VNC是基于 UNXI 和 Linux 的免费开源软件,由 VNC Server 和 VNC Viewer 两部分组成。VNC 默认端口号为 5900、5901。VNC 未授权访问漏洞如被利用可能造成恶意用户直接控制受控主机危害相当严重。

漏洞利用

漏洞复现

防御方法

配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码;

以最小权限的普通用户身份运行操作系统;

Docker 未授权访问漏洞

漏洞原理

Docker Remote API 是一个取代远程命令行界面的REST API。存在问题的版本分别为 1.3 和 1.6。因为权限控制等问题导致可以通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell。该未授权访问漏洞是因为Docker API可以执行Docker命令,该接口是目的是取代Docker命令界面,通过URL操作Docker。

漏洞利用

漏洞复现

先用 nmap 扫描查看端口开放情况,2375 为 docker 端口。如果存在漏洞会有以下情况:url 输入 ip:2375/version 就会列出基本信息也可以执行目标服务器容器命令如 container、image 等。

防御方法

简单粗暴的方法,对2375端口做网络访问控制,如ACL控制,或者访问规则。

修改docker swarm的认证方式,使用TLS认证:Overview Swarm with TLS 和 Configure Docker Swarm for TLS这两篇文档,说的是配置好TLS后,Docker CLI 在发送命令到docker daemon之前,会首先发送它的证书,如果证书是由daemon信任的CA所签名的,才可以继续执行。

ZooKeeper 未授权访问漏洞

漏洞原理

zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper的默认开放端口是2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,通过执行 envi 命令获得系统大量的敏感信息包括系统名称Java 环境或者在Zookeeper集群内进行破坏【比如:kill命令)】,攻击者能够执行所有只允许由管理员运行的命令。

漏洞利用

漏洞复现

防御方法

修改 ZooKeeper 默认端口,采用其他端口服务。

添加访问控制,配置服务来源地址限制策略。

增加 ZooKeeper 的认证配置。

Rsync 未授权访问漏洞

漏洞原理

Rsync是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录。Rsync 默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患,Rsync 的默认端口为 837。

漏洞利用

漏洞复现

防御方法

账户认证:正确配置认证用户名及密码,只允许指定的用户利用指定的密码使用 rsync 服务。

权限控制:使用合理的权限,不需要写入权限的 module 的设置为只读 Read only = true。

网络访问控制:控制接入源ip,使用安全组策略或白名单限制,只允许必要访问的主机访问:hosts allow = 123.123.123.123。

隐藏 module 信息:修改配置文件 list =false。

数据加密传输:Rsync 默认没有直接支持加密传输,如果需要 Rsync 同步重要性很高的数据,可以使用 ssh。

————————————————

版权声明:本文为CSDN博主「2013041407郭泳妍」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_55854679/article/details/124743577

相关推荐

探索Java项目中日志系统最佳实践:从入门到精通

探索Java项目中日志系统最佳实践:从入门到精通在现代软件开发中,日志系统如同一位默默无闻却至关重要的管家,它记录了程序运行中的各种事件,为我们排查问题、监控性能和优化系统提供了宝贵的依据。在Java...

用了这么多年的java日志框架,你真的弄懂了吗?

在项目开发过程中,有一个必不可少的环节就是记录日志,相信只要是个程序员都用过,可是咱们自问下,用了这么多年的日志框架,你确定自己真弄懂了日志框架的来龙去脉嘛?下面笔者就详细聊聊java中常用日志框架的...

物理老师教你学Java语言(中篇)(物理专业学编程)

第四章物质的基本结构——类与对象...

一文搞定!Spring Boot3 定时任务操作全攻略

各位互联网大厂的后端开发小伙伴们,在使用SpringBoot3开发项目时,你是否遇到过定时任务实现的难题呢?比如任务调度时间不准确,代码报错却找不到方向,是不是特别头疼?如今,随着互联网业务规模...

你还不懂java的日志系统吗 ?(java的日志类)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

谈谈枚举的新用法--java(java枚举的作用与好处)

问题的由来前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了!事情是这样的,做过游戏的都知道,buff,需要分类型,且...

你还不懂java的日志系统吗(javaw 日志)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

Java 8之后的那些新特性(三):Java System Logger

去年12月份log4j日志框架的一个漏洞,给Java整个行业造成了非常大的影响。这个事情也顺带把log4j这个日志框架推到了争议的最前线。在Java领域,log4j可能相对比较流行。而在log4j之外...

Java开发中的日志管理:让程序“开口说话”

Java开发中的日志管理:让程序“开口说话”日志是程序员的朋友,也是程序的“嘴巴”。它能让程序在运行过程中“开口说话”,告诉我们它的状态、行为以及遇到的问题。在Java开发中,良好的日志管理不仅能帮助...

吊打面试官(十二)--Java语言中ArrayList类一文全掌握

导读...

OS X 效率启动器 Alfred 详解与使用技巧

问:为什么要在Mac上使用效率启动器类应用?答:在非特殊专业用户的环境下,(每天)用户一般可以在系统中进行上百次操作,可以是点击,也可以是拖拽,但这些只是过程,而我们的真正目的是想获得结果,也就是...

Java中 高级的异常处理(java中异常处理的两种方式)

介绍异常处理是软件开发的一个关键方面,尤其是在Java中,这种语言以其稳健性和平台独立性而闻名。正确的异常处理不仅可以防止应用程序崩溃,还有助于调试并向用户提供有意义的反馈。...

【性能调优】全方位教你定位慢SQL,方法介绍下!

1.使用数据库自带工具...

全面了解mysql锁机制(InnoDB)与问题排查

MySQL/InnoDB的加锁,一直是一个常见的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?下面是不同锁等级的区别表级锁:开销小,加锁快;不会出现死锁;锁定粒度...

看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

一、什么是死锁加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获...