JavaThings - Notas de discussão sobre segurança Java relacionadas
"Java Security Talk" é um ensaio que estou escrevendo relacionado ao aprendizado de Java. Não é muito rigoroso e nem de alta tecnologia. Este Repositório serve principalmente para gravar e organizar e anexar algum código.
Diretório de discussão de segurança Java
- Conversa sobre segurança Java - 01. Características dinâmicas do Java - reflexão
- Java Security Talk - 02. Uso simples de reflexão
- Java Security Talk - 03. Diversas técnicas avançadas de reflexão
- Java Security Talk - 04.Análise do processo de comunicação RMI
- Java Security Talk - 05. Usando codebase para atacar o registro RMI
- Java Security Talk - 06. Compreensão aprofundada do protocolo RMI e objetos serializados
- Java Security Talk - 07. Vulnerabilidades de desserialização em diferentes linguagens
- Java Security Talk- 08. Conheça o gadget mais simples —— URLDNS
- Java Security Talk - 09. Primeira introdução ao CommonsCollections
- Java Security Talk - 10. Use TransformedMap para escrever um POC real
- Java Security Talk - 11. Explicação detalhada do LazyMap
- Java Security Talk - 12. Versão simplificada CommonsCollections6
- Java Security Talk - Capítulo Extra 1. Onde está o BCEL ClassLoader?
- Java Security Talk - 13. Métodos para carregar bytecode dinamicamente em Java
- Java Security Talk - 14. Por que o CommonsCollections3 é necessário
- Java Security Talk - 15. Utilização de TemplatesImpl em Shiro
- Java Security Talk - 16.commons-collections4 e correções de vulnerabilidades
- Java Security Talk - 17. Utilização de desserialização CommonsBeanutils e Shiro sem coleções comuns
- Java Security Talk - 18. Cadeia de exploração de desserialização nativa JDK7u21
- Java Security Talk - 19. Construção e análise do protocolo de desserialização Java
Código de demonstração
Bytecódigo:
- Demonstração de carregamento remoto de bytecode: HelloClassLoader
- O padrão do sistema é defineClass carregando bytecode Demo: HelloDefineClass
- Use TemplatesImpl para carregar bytecode Demonstração: HelloTemplatesImpl
- Usando BCEL para carregar bytecode Demo: HelloBCEL
Desserialização:
- A demonstração mais simples do Transformer: CommonsCollectionsIntro.java
- Meu CommonsCollections6 simplificado é mais fácil para todos entenderem
- Demonstração do Transformer construída usando TemplatesImpl: CommonsCollectionsIntro2.java
- Demonstração do Transformer sem InvokerTransformer: CommonsCollectionsIntro3.java
- Minhas CommonsCollections3 simplificadas
- CommonsCollections6 executa vários comandos ao mesmo tempo: CommonsCollections6Multiple
- Cadeia de exploração CommonsCollections6 que suporta a versão commons-collections4.0: CommonsCollections6For4
- Minha cadeia de exploração simplificada do CommonsBeanutils1: CommonsBeanutils1
- Versão simplificada da cadeia de utilização nativa Java JDK7u21
Desserialização de Shiro:
- Um dos aplicativos Web Shiro mais simples: shirodemo
- Use CommonsCollections6 e a chave padrão Shiro para construir a carga útil: Client0.java, CommonsCollections6.java, que pode não ser desserializada com êxito no Tomcat.
- Use CommonsCollections, TemplatesImpl e chave padrão Shiro para construir Payload: Client.java, CommonsCollectionsShiro.java para resolver os problemas acima
- Cadeia de utilização de desserialização construída usando commons-beanutils que vem com o Shiro por padrão: CommonsBeanutils1Shiro.java
Ferramenta de análise de desserialização autodesenvolvida:
- zkar: https://github.com/phith0n/zkar
- Como usar zkar para corrigir problema de incompatibilidade de SerialVersionUID: https://t.zsxq.com/Yz3B6yJ