安全矩阵

 找回密码
 立即注册
搜索
查看: 2772|回复: 0

框架安全之Spring渗透 (上)

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-6-19 09:22:09 | 显示全部楼层 |阅读模式
原文链接:框架安全之Spring渗透(上)
​  
一、Spring简介1、Spring及其全家桶简介Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。
Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC
Spring全家桶包括5个关键部分,Spring framework、 Spring MVC、Spring Boot、 Spring Cloud、Spring Security。其中Spring就是Spring Framework的缩写,Spring MVC是Spring中的一个MVC框架,用于开发Web应用和网络接口。Spring Boot内置Tomcat并且内置默认的XML配置信息,更加便捷。Spring Cloud基于Spring Boot,简化了分布式系统的开发。Spring Security用于做鉴权,保证安全性。

2、Spring组件简介Spring Web Flow是Spring MVC的扩展,它支持开发基于流程的应用程序,可以将流程的定义和实现流程行为的类和视图分离开来。
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,其主要目标是使数据库的访问变得方便快捷。Spring Data Commons是Spring Data下所有子项目共享的基础框架,Spring Data家族中的所有实现都是基于Spring Data Commons。简单点说,Spring Data REST把我们需要编写的大量REST模版接口做了自动化实现,并符合HAL的规范。
Spring Websocket,Spring内置简单消息代理。这个代理处理来自客户端的订阅请求,将它们存储在内存中,并将消息广播到具有匹配目标的连接客户端。

3、SpEL介绍
简单理解:表达式语言,执行命令、运算
SpEL(Spring Expression Language)是一个基于Spring的表达式语言,用于在运行时动态执行一些运算或指令。一共分为三类,分别是直接在注解中使用,在XML文件中使用和直接在代码块中使用。
SpEL原理
表达式:指传入的字符串内容 解析器:用于将字符串内容解析为表达式内容 上下文:表达式对象执行的环境 根对象和活动上下文对象:根对象是默认的活动上下文对象,活动上下文对象表示了当前表达式操作的对象
具体的流程如下:

1.首先给定表达式1+2
2.然后给定SpelExpressionParser解析器,该解析器就实现了上图中的分析
3.定义上下文对象,这个是可选的,默认是StandardEvaluationContext
4.使用表达式对象求值,例如getValue
参考:http://rui0.cn/archives/1043
4、Spring漏洞简介2009年9月Spring 3.0 RC1发布后,Spring就引入了SpEL(Spring Expression Language)。对于开发者而言,引入新的工具显然是令人兴奋的,但是对于运维人员,也许是噩耗的开始。类比Struts2框架,会发现绝大部分的安全漏洞都和OGNL脱不了干系。
5、Spring框架特征1.看Web应用程序的图标
2.看Web的报错页面
3.使用插件wappalyzer
4.看响应头参数X-Application-Context
二、本地环境安装1、IDEA下载下载地址:https://www.jetbrains.com/idea/download/#section=windows
选择Community社区版即可(白嫖三十天,再重新下)

2、IDEA安装1)双击安装程序
默认下一步
2)一些选项
如图勾上,默认一直下一步

3)打开x64版本的IDEA,选择免费30天

选择continue

3、IDEA使用及Spring部署1)创建工程

2)选择下载JDK

选择1.8版本

3)Spring Initializr配置
见图,然后next

4)部署Web模式

5)等待安装 这部分有点小久

6)点击启动 点击右上角启动

7)部署成功
访问地址:localhost:8080

4、漏洞环境搭建这里使用vulhub靶场进行Spring渗透学习
0x01 Docker环境安装
参考:vulhub漏洞环境搭建
1、安装Docker

sudo apt install curlcurl -s https://get.docker.com/ | sh


2、安装python和pip

sudo apt install pythoncurl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.pysudo python get-pip.py


3、安装docker-compose

pip install docker-composesudo apt install docker-composedocker-compose -v


0x02 vulhub靶场安装

git clone https://github.com/vulhub/vulhub.gitcd vulhub/httpd/CVE-2017-15715/sudo docker-compose build       # 构建sudo docker-compose up -d       # 命令启动容器docker ps                       # 查看正在运行的容器sudo docker exec -it b5975a1a5bfe /bin/bash  # 进入docker容器内


本机IP为192.168.112.141
参考:Docker容器进入的4种方式


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 07:59 , Processed in 0.013045 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表