常见未授权访问漏洞详解

参考文章1:二十八种未授权访问漏洞合集(CSDN)

参考文章2:28种未授权访问漏洞(知乎)

参考文章3:未授权访问漏洞总结(freebuf)

参考文章4:常见未授权访问漏洞总结(先知社区)

文章目录

  • 简介
  • 常见的未授权访问漏洞
    • MongoDB 未授权访问漏洞
      • 漏洞信息
      • 漏洞利用
      • 防御方法
    • Redis 未授权访问漏洞
      • 漏洞信息
      • 漏洞利用
      • 防御方法
    • Jenkins 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法
    • Memcached 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法
    • JBOSS 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法
    • VNC 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法
    • Docker 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法
    • ZooKeeper 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法
    • Rsync 未授权访问漏洞
      • 漏洞原理
      • 漏洞利用
      • 防御方法

简介

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

常见的未授权访问漏洞

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

MongoDB 未授权访问漏洞

漏洞信息

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

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

漏洞利用

漏洞复现

防御方法

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

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

  3. 限制绑定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等操作。

漏洞利用

漏洞复现

防御方法

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

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

  3. 重启 Redis 服务。

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

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

Jenkins 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

防御方法

  • 升级版本。

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

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

Memcached 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

防御方法

  1. 修改绑定的IP、端口和指定访问者IP
  2. 设置防火墙策略,配置访问控制策略;
  3. 禁止暴露在公网,禁止外网访问Memcached 11211端口。;
  4. 配置memcached监听本地回环地址 127.0.0.1。只允许本地访问;

JBOSS 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

防御方法

  1. 添加 JMX 控制页面身份认证,控制页面访问,添加访问验证。;
  2. 进行JMX Console 安全配置;
  3. 关闭jmx-consoleweb-console

VNC 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

防御方法

  1. 配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码;
  2. 以最小权限的普通用户身份运行操作系统;

Docker 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

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

防御方法

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

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

ZooKeeper 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

防御方法

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

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

  3. 增加 ZooKeeper 的认证配置。

Rsync 未授权访问漏洞

漏洞原理

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

漏洞利用

漏洞复现

防御方法

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

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

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

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

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

你可能感兴趣的:(常见web漏洞,安全,未授权访问漏洞,数据库)