1、服务攻防-数据库类型安全
2、influxdb-未授权访问-jwt验证
3、H2database-未授权访问-配置不当
4、CouchDB-权限绕过配合RCE-漏洞
5、ElasticSearch-文件写入&RCE-漏洞
这些数据库在特定的环境上用到,特用的程序固定的。使用面不广,但是有一定的应用价值。会根据应用功能选择数据库。
#章节内容:
常见服务应用的安全测试: 1、配置不当-未授权访问 2、安全机制-特定安全漏洞 3、安全机制-弱口令爆破攻击
H2database-未授权访问-配置不当
与redis配置是一样的 web端口:8080 默认端口:20051 H2 database是一款Java内存数据库,多用于单元测试。H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权,配置如下: spring.h2.console.enabled=true` `spring.h2.console.settings.web-allow-others=true
利用到的工具是java内置的攻击:JNDI攻击。这个是由于java内置的语言不同特性决定的。java网站运行有两种情况:1.自写源代码来进行运行 2.运行jar包
利用流程是: 1.下载利用文件 2.利用这个文件去生成一个payload 3.让这个地址去加载远程文件。
问http://your-ip:8080/h2-console/
即可查看到H2 database的管理页面。
下载JNDI-Injection-Exploit
https://github.com/welk1n/JNDI-Injection-Exploit
生成执行RMI Payload-URL
填入URL提交执行,点击连接
通过JDBC URL地址远程加载exp,java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/success -A 49.232.65.159作用就是开启监听并执行命令,-C为执行的命令,-A为监听机的ip地址
ElasticSearch
ElasticSearch-文件写入&RCE-漏洞
复现步骤 该漏洞需要es中至少存在一条数据,所以我们需要先创建一条数据。
插入一条新数据
命令执行
四、xpocsutie3检测 verify
ElasticSearch-沙箱绕过&代码执行漏洞
一、漏洞简介 CVE-2014-3120后,ElasticSearch默认的动态脚本语言换成了Groovy,并增加了沙盒,但默认仍然支持直接执行动态语言。本漏洞:1.是一个沙盒绕过; 2.是一个Goovy代码执行漏洞。
二、影响版本 三、复现过程 漏洞分析 ElasticSearch支持使用“在沙盒中的”Groovy语言作为动态脚本,但显然官方的工作并没有做好。lupin和tang3分别提出了两种执行命令的方法:
既然对执行Java代码有沙盒,lupin的方法是想办法绕过沙盒,比如使用Java反射 Groovy原本也是一门语言,于是tang3另辟蹊径,使用Groovy语言支持的方法,来直接执行命令,无需使用Java语言 所以,根据这两种执行漏洞的思路,我们可以获得两个不同的POC。
Java沙盒绕过法:
Goovy直接执行命令法:
复现步骤 该漏洞需要es中至少存在一条数据,所以我们需要先创建一条数据。
添加一条数据
执行命令
四、xpocsutie3检测