SEC-2022版-0043-服务攻防-02-数据库安全-Influxdb,H2database,CouchDB,ElasticSearch
概览
知识点:
1、服务攻防-数据库类型安全
2、influxdb-未授权访问-jwt验证
3、H2database-未授权访问-配置不当
4、CouchDB-权限绕过配合RCE-漏洞
5、ElasticSearch-文件写入&RCE-漏洞
前置知识:
应用服务安全测试流程:
1、判断服务开放情况-端口扫描&组合应用等
2、判断服务类型归属-数据库&文件传输&通讯等
3、判断服务利用方式-特定漏洞&未授权&弱口令等
实例
Influxdb-未授权访问-Jwt验证不当
默认端口:8086 8088
influxdb是一款著名的时序数据库,其使用jwt作为鉴权方式。在用户开启了认证,但未设置参数shared-secret的情况下,jwt的认证密钥为空字符串,此时攻击者可以伪造任意用户身份在influxdb中执行SQL语句。
根本:JWT空密匙加密导致的漏洞。
1、借助jwt官网 来生成jwt token:
{ |
2、发送数据包触发未授权
POST /query HTTP/1.1 |
H2database-未授权访问-配置不当
默认端口:20051
H2 database是一款Java内存数据库,多用于单元测试。H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权:默认端口:
spring.h2.console.enabled=true |
利用这个管理页面,我们可以进行JNDI注入攻击,进而在目标环境下执行任意命令。
JNDI,java内置数据库漏洞。 |
CouchDB-权限绕过配合RCE-漏洞
默认端口:5984
Apache CouchDB是一个开源数据库,专注于易用性和成为”完全拥抱web的数据库”。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。应用广泛,如BBC用在其动态内容展示平台,Credit Suisse用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web和应用程序)
文档数据库
CouchDB-权限绕过-CVE-2017-12635
- 1、先创建用户
Post:/_users/org.couchdb.user:vulhub
{
"type": "user",
"name": "vulhub",
"roles": ["_admin"],
"roles": [],
"password": "vulhub"
}- 2、登录用户授权
Get:/_utils/
vulhub vulhubCouchDB-权限绕过RCE-CVE-2017-12636
- 1、下载exp.py
- 2、修改目标和反弹地址
- 3、Python3调用执行即可
https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py
ElasticSearch-文件写入&RCE-漏洞
蓝队用来筛选日志分析日志(+kibana)
默认端口:9200 9300
- Elasticsearch RCE CVE-2014-3120
1、漏洞需要es中至少存在一条数据,所以我们需要先创建一条数据
POST /website/blog/ HTTP/1.1 |
2、直接发包触发执行命令
- Elasticsearch 文件写入 wooyun_2015_110216
9200一般为ElasticSearch的常用端口,此漏洞环境需要与中间件使用
1、发现9200端口存在elasticsearch页面,8080存在tomcat目录 |