热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redis未授权访问漏洞

文章目录Redis未授权访问漏洞利用写文件上传文件写计划任务(没有成功)额外遇到的问题Bind多个IP失败Redis未授权访问漏洞简介利用redis配置不当,或弱密码(反正就是能拿




文章目录


  • Redis未授权访问漏洞
  • 利用
    • 写文件
    • 上传文件
    • 写计划任务(没有成功)

  • 额外遇到的问题
    • Bind多个IP失败


Redis未授权访问漏洞

简介
利用redis配置不当,或弱密码(反正就是能拿到redis的权限),然后利用redis做一系列操作。


利用

写文件

知识点
命令:CONFIG GET dir
获取数据库的存储路径(文件将会保存的地方,当然可以使用SET进行设置,如果有权限的话)

命令:CONFIG GET dbfilename
获取数据库文件名,默认是dump.rdb(通过SET设置为webshell.php等任意文件格式,然后利用)

命令:SAVE
保存当前数据库(将数据库内的内容写到文件中,上面给出了文件的路径和名称)

示例


  1. 配置文件保存路径
    查看命令:CONFIG GET dir
    设置命令:CONFIG SET dir <新的文件路径>
    (配置新的文件路径时,确保redis对其有相关的访问权限,这里使用的便是redis默认的文件保存路径)
    请添加图片描述

  2. 配置文件名
    查看命令:CONFIG GET dbfilename
    设置命令:CONFIG SET dbfilename <新的文件名称>
    请添加图片描述

  3. 设置数据
    命令:SET <需要保存的数据>
    请添加图片描述

  4. 保存
    命令:SAVE
    (这里保存失败,有可能是redis对设置的文件路径没有访问权限,具体可以查看redis的日志文件观察错误信息)

    开始时配置了自定义路径,redis没有访问权限,导致保存失败,查看日志发现了问题,改回默认路径后解决了。
    自定义访问路径
    请添加图片描述

    失败日志(日志默认路径/var/log/redis/redis-server.log
    请添加图片描述

    修改回默认路径后保存成功
    请添加图片描述

    目录下出现了对应文件
    请添加图片描述


上传文件

知识点
采用的是Metasploit中redis的upload模块
其原理是和文件上传一样的

示例


  1. 搜索并采用upload模块
    请添加图片描述

  2. 配置相关的属性
    RHOSTS:目标IP
    RPORT:目标服务端口
    RemoteFile:目标机器保存文件的绝对路径
    LocalFile:需要上传的文件
    FLUSHALL:是否清空数据库(一般不要,这里只是为了测试)
    请添加图片描述

  3. 执行
    成功
    请添加图片描述
    请添加图片描述
    失败,很大可能是路径访问权限问题
    请添加图片描述


写计划任务(没有成功)

知识点
命令:flushall
清空所有key,一般不使用,清空key是为了写计划任务时防止破坏文件格式

命令:CONFIG SET dir [path]
设置文件保存路径,一般计划任务文件存储路径为/var/spool/cron

命令:SET key "..."
设置键值,也是将写入文件的内容

命令:CONFIG SET dbfilename ...
设置文件名(需要什么写什么,木马、计划任务、网页等等)

命令:SAVE
保存数据库内容(自己写的内容)

Linux定时计划任务
命令:sudo crontab [-u user] [-i] {-e|-l|-r}
计划任务文件格式:

# 执行命令使用额shell,默认是sh
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

启动Syslog日志服务,记录定时任务计划执行状态
命令:sudo /etc/init.d/rsyslog start

示例
文件成功写入,但是运行时出现了报错,提示文件格式不对
请添加图片描述
于是简单了解下Linux中Crontab计划任务 Link

遇到的问题


  1. 没有目录权限
  2. 格式不对
  3. shell不对
    默认是sh,但需要的是bash

额外遇到的问题

Bind多个IP失败

简述
默认只允许127.0.0.1的本地连接,想要让外部机器访问,需要设置配置文件redis.conf中的bind
它允许设置多个IP,如bind ip1 ip2 [ip...]
但我其中一个环境ok,另一个环境不行,在出问题的环境下采用了端口映射的方法绕过。

环境
Windows 10(服务端)
WSL Ubuntu-18.04(redis服务需要环境)
Redis-4.0.9

kali(访问端)

过程


  1. 配置Windows端口映射
    由于只允许回环地址127.0.0.1:6379进行访问,我们将本地IP端口映射到回环地址上
    命令:netsh interface protproxy add v4tov4 listenaddress=<本地IP> listenport=<监听的端口> cOnnectaddress=127.0.0.1 cOnnectport=6379

  2. 校验是否成功
    第一次校验,校验端口是否成功映射
    命令:netsh interface protproxy show all

    第二次校验,校验是否能连接上
    命令:redis-cli -h <本地IP> -p <监听的端口>

  3. 防护墙设置
    第二步完成后表示映射已经可以使用了,但使用另一台机器访问redis时可能还是不行,这是由于防火墙拦截了,这里列出两种解决方法。


    1. 关闭防火墙
      一劳永逸,但大大降低了安全性。
    2. 配置入站设置
      只针对特定IP或IP组开放特定端口,安全性有一定保障。(出入站规则配置请自行百度)


推荐阅读
  • 在应用系统开发当中,文件的上传和下载是非常普遍的需求。在基于.NET的CS架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest、webclient等),而且多采用异步 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • UEditor可以如何直接复制word的图文内容到编辑器中
    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)j ... [详细]
  • PHP WEB项目文件夹上传下载解决方案
    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploadsonoff是否允许通过http方式上传文件2.max_execution_time3 ... [详细]
  • Linux目录结构说明(2)一些重要文件目录1.一些重要文件目录参考1.一些重要文件目录1.网卡配置文件etcsysconfignetwork-scr ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • Java大文件HTTP断点续传到服务器该怎么做?
    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆 ... [详细]
  • 开发笔记:UEditor调用上传图片上传文件等模块
    1、引入ue相关文件,写好初始代码为了更好的封装整一个单独的插件,这里我们要做到示例化ue后隐藏网页中的编辑窗口,并移除焦点。 ... [详细]
author-avatar
丁丁2244
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有