
WebLogic vulnerability exploration from beginner to expert.
Resumo:Nos últimos anos, vulnerabilidades de desserialização no Weblogic foram descobertas, com foco no ponto de gatilho da desserialização. No entanto, há muitos pontos que envolvem desserialização, mas que não podem ser explorados em tempo real, sendo facilmente negligenciados durante a pesquisa regular de vulnerabilidades. Houve discussões adicionais na indústria sobre vulnerabilidades de "pós-desserialização", em que vulnerabilidades aparentemente inexploráveis podem, na verdade, ser exploradas por meio de técnicas subsequentes. Por exemplo, se a vulnerabilidade não for acionada após a realização de uma operação bind() ou rebind(), você pode tentar outros métodos, como lookup() ou lookupLink() para acionar a vulnerabilidade.
Usando essa abordagem, descobrimos duas vulnerabilidades de pós-desserialização no Weblogic (CVE-2023-21931, CVE-2023-21839), que foram oficialmente confirmadas pela Oracle. Neste artigo, usaremos essas duas vulnerabilidades do Weblogic como exemplos para compartilhar o processo de raciocínio por trás da exploração de vulnerabilidades de pós-desserialização. Acreditamos que há muitas vulnerabilidades semelhantes que serão gradualmente descobertas no futuro, e esperamos que este artigo possa fornecer alguma inspiração para pesquisadores.
Resumo:A vulnerabilidade de serialização do Weblogic depende principalmente dos protocolos T3 e IIOP, que apresentam muitos problemas na interação de comunicação, como a comunicação entre linguagens e a transmissão de rede, o que pode trazer muitos inconvenientes para a detecção e a exploração de vulnerabilidades. Na filosofia do WhiteHat Labs, a detecção e a exploração de vulnerabilidades são um trabalho criativo que deve ser implementado da maneira mais concisa e eficiente possível para garantir a portabilidade entre plataformas e a praticidade da vulnerabilidade. Portanto, implementamos uma solução de comunicação de protocolo IIOP entre linguagens para resolver o problema da vulnerabilidade de serialização.
Resumo:Este artigo aborda as seguintes vulnerabilidades: CVE-2021-2135, CVE-2021-2394, CVE-2020-2555, CVE-2020-2883, CVE-2020-14645, CVE-2020-14825, CVE-2020-14841, CVE-2020-14756. Nos últimos anos, vulnerabilidades de desserialização no componente Coherence do WebLogic têm sido relatadas com frequência. No entanto, não há um resumo público das vulnerabilidades históricas de desserialização no componente Coherence do WebLogic, o que dificulta o aprendizado ou a compreensão dessas vulnerabilidades por parte daqueles que desejam estudá-las. Portanto, este artigo fornece um resumo e uma análise das vulnerabilidades históricas de desserialização no componente Coherence do WebLogic.
Resumo:Em 21 de julho de 2021, a Oracle lançou uma série de atualizações de segurança, envolvendo 342 vulnerabilidades em seus produtos, incluindo Weblogic Server, Database Server, Java SE, MySQL, etc. Entre elas, há uma vulnerabilidade de alto risco no produto Oracle WebLogic Server, com o número de vulnerabilidade CVE-2021-2394 e uma pontuação CVSS de 9.8. Ela afeta múltiplas versões do WebLogic e pode ser explorada remotamente com baixa dificuldade usando os protocolos T3 e IIOP.
Resumo:A vulnerabilidade RCE de desserialização CVE-2020-14645 no Weblogic, divulgada recentemente, é um bypass do patch da CVE-2020-2883. A CVE-2020-2883 essencialmente chamava métodos arbitrários por meio do ReflectionExtractor, que então executava comandos arbitrários usando o método exec do objeto Runtime. O patch colocou o ReflectionExtractor na lista negra, então uma nova cadeia de exploração pôde ser construída usando o UniversalExtractor. O UniversalExtractor pode chamar arbitrariamente os métodos get e is, o que leva à exploração do carregamento dinâmico remoto de classes via JDNI. O UniversalExtractor é exclusivo da versão 12.2.1.4.0 do Weblogic, e este artigo o analisa com base nessa versão.
Resumo:Em 15 de julho de 2020, a Oracle lançou um grande número de patches de segurança, entre os quais a vulnerabilidade CVE-2020-14644 foi classificada com gravidade 9.8, afetando as versões 12.2.1.3.0, 12.2.1.4.0 e 14.1.1.0.0. Este artigo é baseado em código de prova de conceito (POC) publicamente disponível na internet para reprodução e análise. Por fim, alcançamos defineClass irrestrito + instanciação, o que resultou em execução remota de código (RCE).
Se você tiver algum problema funcional, você pode abrir uma issue no GitHub ou no grupo de discussão abaixo: