Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 10163|Resposta: 4

[Fonte] O programa .NET testa o projeto Java log4j2 para uma vulnerabilidade de execução remota de código

[Copiar link]
Postado em 2021-12-11 21:06:29 | | | |
Nos últimos dois dias, foi ignorado pela "vulnerabilidade de execução remota de código Apache Log4j2" no círculo de amigos, principalmente por causa da vulnerabilidade de injeção Java JNDI no componente: quando o programa escreve os dados inseridos pelo usuário no log, o atacante constrói uma requisição especial para acionar a vulnerabilidade de execução remota de código no Apache Log4j2, explorando essa vulnerabilidade para executar código arbitrário no servidor alvo.

Escopo de influência

Apache Log4j 2.x <= 2.14.1

JNDI (Java Naming and Directory Interface) é uma interface de nomeação e diretório em Java fornecida pelo Java. Ao chamar a API do JNDI, as aplicações podem localizar recursos e outros objetos do programa. O JNDI é uma parte importante do Java EE, vale notar que não inclui apenas o DataSource (fonte de dados JDBC), o JNDI pode acessar diretórios e serviços existentes como: JDBC, LDAP, RMI, DNS, NIS, CORBA, extraído da Enciclopédia Baidu.

Existem muitos artigos na Internet sobre como corrigir vulnerabilidades e capturas de tela de vulnerabilidades, mas pouco sobre como testar o projeto para identificar a vulnerabilidade.Java usa Log4j2 principalmente para testar o códigoComo segue:


Em termos simples, o Log4j2 acessará o seguinte endereço através do protocolo RMI ou LDAP e, de acordo com o conteúdo do protocolo, pode executar código construído maliciosamente.

A existência da vulnerabilidade quase sempre é comprovada na Internet ao abrir uma calculadora do Windows, e o código é o seguinte:

Como o Log4J2 usa protocolos RMI ou LDAP para acessar o servidor do atacante, e tanto os protocolos RMI quanto LDAP são baseados em TCP, podemos fazer isso diretamenteUsando .NET para ouvir em uma porta TCP, se uma chamada para log4j2 para imprimir logs acessa a porta de escuta .NET, isso prova que pode haver uma vulnerabilidade e, se não estiver, é seguro

O .NET gera programas de teste muito pequenos6kb, o código é o seguinte:

Tente usar o componente log4j2.14.0A versão é impressa, e a renderização é a seguinte:



Tente atualizar o componente log4j para2.15.0Executada novamente, o efeito é o seguinte:



Após atualizar a versão, descobre-se que, ao chamar o log de impressão,O programa Java não acessa mais a porta externa

Amigos interessados, podem consultar o link a seguir para reproduzir a vulnerabilidade e acessar a calculadora.

O login do hiperlink está visível.
O login do hiperlink está visível.

Por fim, anexe o procedimento de teste:

测试程序.rar (2.66 KB, Número de downloads: 1)





Anterior:[Combate real]. NET/C# Crie um banco de dados SQLite e simplesmente adicione, exclua e modifique
Próximo:Tutorial de implantação de sistemas CentOS para nacos
 Senhorio| Postado em 13-12-2021 13:37:35 |
Após o Java 8 121, as seguintes configurações são necessárias para reproduzir a vulnerabilidade:

 Senhorio| Postado em 19-12-2021 12:10:22 |
Postado em 20-12-2021 23:09:51 |
Vamos observar a operação do chefe
Postado em 26-12-2021 16:54:47 |
Venha aprender de novo。。。。。。。
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com