[Resumo da introdução à segurança de rede]—Resumo das vulnerabilidades de penetração comumente usadas na linguagem Java

Um resumo das vulnerabilidades comumente usadas na linguagem Java é recomendado para coleta.

Prepare-se, vamos para a aula~~~

contente

Servlet

Introdução

O ciclo de vida é

 interface

Suportes 2

. Introdução

processo de solicitação

CVEs relacionados

Mola

 Introdução

 Primavera MVC

Spring Boot

 processo de solicitação

Visão geral dos CVEs

Shiro

Introdução

Visão geral dos CVEs

 CVE-2020-13933

CVE-2020-11989

 CVE-2020-1957

CVE-2019-12422

 CVE-2016-4437


A aula está em ~ A aula está em ~

Servlet

Introdução

Servlet (Server Applet) é a abreviação de Java Servlet, chamado servlet ou service connector, é um programa do lado do servidor escrito em Java, cuja principal função é navegar e modificar dados de forma interativa e gerar conteúdo dinâmico da Web.

Servlet em sentido estrito refere-se a uma interface implementada pela linguagem Java, e Servlet em sentido amplo refere-se a qualquer classe que implemente a interface Servlet.Em geral, as pessoas entendem Servlet como a última. Os servlets são executados em servidores de aplicativos que suportam Java. Em princípio, os servlets podem responder a qualquer tipo de solicitação, mas na maioria dos casos, os servlets são usados ​​apenas para estender servidores web baseados no protocolo HTTP.

O ciclo de vida é

  • O cliente solicita o servlet
  • Carregar a classe servlet na memória
  • Instancie e chame o método init() para inicializar o servlet
  • service() (Chamado de acordo com o método de solicitação doGet()/ doPost()/ ... /destroy()

 interface

init()

在 Servlet 的生命期中,仅执行一次 init() 方法,在服务器装入 Servlet 时执行。

service()

service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet对象,该对象的 service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。

Suportes 2

. Introdução

O Struts2 é um framework de aplicação Web baseado no padrão de projeto MVC, que é essencialmente equivalente a um servlet.No padrão de projeto MVC, o Struts2 atua como um controlador (Controller) para estabelecer a interação de dados entre o modelo e a visão.

请求流程

    客户端发送请求的tomcat服务器
    请求经过一系列过滤器
    FilterDispatcher调用ActionMapper来决定这个请求是否要调用某个Action
    ActionMppaer决定调用某个ActionFilterDispatcher把请求给ActionProxy
    ActionProxy通过Configuration Manager查看structs.xml,找到对应的Action类
    ActionProxy创建一个ActionInvocation对象
    ActionInvocation对象回调Action的execute方法
    Action执行完毕后,ActionInvocation根据返回的字符串,找到相应的result,通过HttpServletResponse返回给服务器

CVEs relacionados

  • CVE-2016-3081 (S2-032)
  • CVE-2016-3687 (S2-033)
  • CVE-2016-4438 (S2-037)
  • CVE-2017-5638
  • CVE-2017-7672
  • CVE-2017-9787
  • CVE-2017-9793
  • CVE-2017-9804
  • CVE-2017-9805
  • CVE-2017-12611
  • CVE-2017-15707
  • CVE-2018-1327
  • CVE-2018-11776

Em

Mola

 Introdução

Spring geralmente se refere ao Spring Framework, uma estrutura leve de software livre de aplicativo Java que fornece uma maneira fácil de desenvolver.

 Primavera MVC

Spring MVC é um framework MVC projetado de acordo com o padrão Spring, que é usado principalmente para desenvolver aplicativos da Web e simplificar o desenvolvimento.

Spring Boot

O Spring foi relativamente complicado no início de seu lançamento, então o Spring Boot foi fornecido como uma ferramenta de configuração automatizada para reduzir a complexidade da construção do projeto.

 请求流程

    用户发送请求给服务器
    服务器收到请求,使用DispatchServlet处理
    Dispatch使用HandleMapping检查url是否有对应的Controller,如果有,执行
    如果Controller返回字符串,ViewResolver将字符串转换成相应的视图对象
    DispatchServlet将视图对象中的数据,输出给服务器
    服务器将数据输出给客户端

Visão geral dos CVEs

  • CVE-2018-1270

    • Vulnerabilidade de execução remota de código do Spring Websocket
    • Spring Framework 5.0 - 5.0.5
    • Spring Framework 4.3 - 4.3.15
  • CVE-2018-1273

    • Vulnerabilidade de execução remota de código do Spring Data
    • Spring Data Commons 1.13 - 1.13.10
    • Spring Data Commons 2.0 - 2.0.5
    • Spring Data REST 2.6 - 2.6.10
    • Spring Data REST 3.0 - 3.0.5
  • CVE-2017-8046

    • Vulnerabilidade de execução remota de código Spring Data REST
  • CVE-2017-4971

    • Vulnerabilidade de execução remota de código do Spring Web Flow

Em

Shiro

Introdução

Apache Shiro é uma estrutura de segurança Java poderosa e fácil de usar com recursos que incluem autenticação, autorização, criptografia e gerenciamento de sessão.

Visão geral dos CVEs

  • CVE-2020-13933
    
        Apache Shiro < 1.6.0
        身份验证绕过漏洞
  • CVE-2020-11989
    
        SHIRO-782
        Apache Shiro < 1.5.3
        身份验证绕过漏洞
  • CVE-2020-1957
    
        SHIRO-682
        Apache Shiro < 1.5.2
        身份验证绕过漏洞
  • CVE-2019-12422
    
        SHIRO-721
        Apache Shiro < 1.4.2
        Padding Oracle Attack 远程代码执行漏洞
  • CVE-2016-4437
    
        SHIRO-550
        Apache Shiro <= 1.2.4
        反序列化远程代码执行漏洞
  • CVE-2014-0074
    
        SHIRO-460
        Apache Shiro < 1.2.3
        身份验证绕过漏洞

 CVE-2020-13933

Antes do Apache Shiro 1.6.0, como o processo de correspondência entre o interceptador Shiro e o requestURI é diferente do interceptor da estrutura da Web, um invasor cria uma solicitação http especial para ignorar a autenticação do Shiro e o acesso não autorizado é sensível.

CVE-2020-11989

Nas versões anteriores ao Apache Shiro 1.5.3, uma vez que o processo de correspondência entre interceptadores Shiro e requestURIs é diferente daquele dos interceptores de estrutura da Web, um invasor constrói uma solicitação http especial para ignorar a autenticação de Shiro, e o acesso não autorizado é sensível. Existem dois métodos de ataque para esta vulnerabilidade.

 CVE-2020-1957

Nas versões anteriores ao Apache Shiro 1.5.2, uma vez que o processo de correspondência entre interceptores Shiro e requestURIs é diferente daquele dos interceptores de estrutura da Web, um invasor constrói uma solicitação http especial para ignorar a autenticação de Shiro, e o acesso não autorizado é sensível.

CVE-2019-12422

As versões do Apache Shiro anteriores à 1.4.2 usam AES/CBC/PKCS5Paddingcriptografia de modo por padrão . O componente Shiro com a função RememberMe habilitada permitirá que invasores remotos construam dados serializados e explodam o Padding Oracle Attack, mesmo que a chave secreta seja desconhecida. Execute qualquer comando nele .

 CVE-2016-4437

Antes do Apache Shiro 1.2.5 org.apache.shiro.mgt.AbstractRememberMeManager, havia uma chave AES padrão kPH+bIxk5D2deZiIxcaaaA==no . O componente Shiro com a função RememberMe habilitada permitirá que atacantes remotos construam dados serializados e executem comandos arbitrários no servidor alvo.

ok~~~ até a próxima

 Em

Acho que você gosta

Origin blog.csdn.net/weixin_42350212/article/details/123440595
Recomendado
Clasificación