Este projeto destina-se apenas à pesquisa de segurança. É proibido usá-lo para realizar ataques ilegais. As consequências serão de responsabilidade do usuário.
Este é um projeto pessoal para reproduzir e divulgar algumas vulnerabilidades interessantes ou de maior impacto. Não há muito conteúdo técnico, apenas notas técnicas pessoais.
fastjson
Este módulo registra principalmente alguns gadgets de exploração do fastjson, embora muitos gadgets não estejam documentados.
Relacionado a RCE
package:com.threedr3am.bug.fastjson.rce
- com.threedr3am.bug.fastjson.rce.FastjsonSerialize(TemplatesImpl) Condição de uso: fastjson <= 1.2.24 + Feature.SupportNonPublicField
- com.threedr3am.bug.fastjson.rce.NoNeedAutoTypePoc Condição de uso: fastjson < 1.2.48, sem necessidade de qualquer configuração, configuração padrão permite RCE em todos os casos
- com.threedr3am.bug.fastjson.rce.HikariConfigPoc(HikariConfig) Condição de uso: fastjson <= 1.2.59 RCE, requer AutoType habilitado
- com.threedr3am.bug.fastjson.rce.CommonsProxyPoc(SessionBeanProvider) Condição de uso: fastjson <= 1.2.61 RCE, requer AutoType habilitado
- com.threedr3am.bug.fastjson.rce.JndiConverterPoc(JndiConverter) Condição de uso: fastjson <= 1.2.62 RCE, requer AutoType habilitado
- com.threedr3am.bug.fastjson.rce.HadoopHikariPoc(HikariConfig) Condição de uso: fastjson <= 1.2.62 RCE, requer AutoType habilitado
- com.threedr3am.bug.fastjson.rce.IbatisSqlmapPoc(JtaTransactionConfig) Condição de uso: fastjson <= 1.2.62 RCE, requer AutoType habilitado
- com.threedr3am.bug.fastjson.rce.ShiroPoc(shiro-core) Condição de uso: fastjson <= 1.2.66 RCE, requer AutoType habilitado
...omitindo vários
Relacionado a SSRF
package:com.threedr3am.bug.fastjson.ssrf
- com.threedr3am.bug.fastjson.ssrf.ApacheCxfSSRFPoc(WadlGenerator) Condição de uso: fastjson <= 1.2.66 SSRF, requer AutoType habilitado
- com.threedr3am.bug.fastjson.ssrf.ApacheCxfSSRFPoc2(SchemaHandler) Condição de uso: fastjson <= 1.2.66 SSRF, requer AutoType habilitado
- com.threedr3am.bug.fastjson.ssrf.CommonsJellySSRFPoc(Embedded) Condição de uso: fastjson <= 1.2.66 SSRF, requer AutoType habilitado
- com.threedr3am.bug.fastjson.ssrf.JREJeditorPaneSSRFPoc(JEditorPane) Condição de uso: fastjson <= 1.2.66 SSRF, requer AutoType habilitado
...omitindo vários
Relacionado a resolução de domínio DNS
package:com.threedr3am.bug.fastjson.dns
Relacionado a DoS (negação de serviço)
package:com.threedr3am.bug.fastjson.dos
package:com.threedr3am.bug.fastjson.leak
jackson
Relacionado a RCE
package:com.threedr3am.bug.jackson.rce
- com.threedr3am.bug.jackson.rce.AnterosPoc
- com.threedr3am.bug.jackson.rce.EhcacheJndi
- com.threedr3am.bug.jackson.rce.H2Rce
- com.threedr3am.bug.jackson.rce.HadoopHikariConfigPoc
- com.threedr3am.bug.jackson.rce.HikariConfigPoc
- com.threedr3am.bug.jackson.rce.IbatisSqlmapPoc
- com.threedr3am.bug.jackson.rce.JndiConverterPoc
- com.threedr3am.bug.jackson.rce.LogbackJndi
...omitindo vários
SSRF
package:com.threedr3am.bug.jackson.ssrf
...omitindo vários
dubbo
Este módulo registra principalmente explorações de vulnerabilidades do dubbo, reforço de segurança, etc.
- com.threedr3am.bug.dubbo.RomePoc Condição de uso: existe dependência do rome
- com.threedr3am.bug.dubbo.ResinPoc Condição de uso: existe dependência do com.caucho:quercus
- com.threedr3am.bug.dubbo.XBeanPoc Condição de uso: existe dependência do org.apache.xbean:xbean-naming
- com.threedr3am.bug.dubbo.SpringAbstractBeanFactoryPointcutAdvisorPoc Condição de uso: existe dependência do org.springframework:spring-aop
dubbo-hessian2-safe-reinforcement
Demonstração de reforço de segurança do dubbo hessian2, usando lista negra para proibir alguns gadgets
padding-oracle-cbc
Código experimental registrado para implementar ataques padding-oracle-cbc em Java
- com.threedr3am.bug.paddingoraclecbc.PaddingOracle
implementação em java do padding oracle (implementação com múltiplos blocos de ciphertext)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBC
implementação em java do padding oracle cbc (implementação com bloco único <= 16 bytes de ciphertext)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBC2
implementação em java do padding oracle cbc (implementação com múltiplos blocos de ciphertext)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBCForShiro
implementação em java do shiro padding oracle cbc
xxe
Reprodução de XXE causado por vários componentes de análise XML, bem como registro do código de correção
commons-collections
Coisas escritas aleatoriamente há vários anos ao estudar desserialização
security-manager
Código experimental para algumas técnicas de bypass do java security manager
rmi
Serviços relacionados a rmi, bem como suas explorações, etc.
tomcat
Vulnerabilidades relacionadas ao tomcat
ajp-bug
Vulnerabilidades relacionadas ao protocolo ajp do tomcat
- com.threedr3am.bug.tomcat.ajp Leitura arbitrária de arquivos e RCE por renderização de jsp CVE-2020-1938
cas
Vulnerabilidades relacionadas ao cas
- cas-4.1.x~4.1.6 Vulnerabilidade de desserialização (usando chave padrão)
- cas-4.1.7~4.2.x Vulnerabilidade de desserialização (requer conhecimento da chave de criptografia e da chave de assinatura)
spring
Registro de código experimental para reprodução de algumas vulnerabilidades do Spring
- spring-actuator(jolokia、snake-yaml、h2-hikariCP、eureka)
- spring-cloud-config-server(CVE-2019-3799)
- spring-cloud-config-server(CVE-2020-5405)
- spring-cloud-config-server(CVE-2020-5410)
- spring-session-data-redis RCE
apache-poi
Registros relacionados a vulnerabilidades de análise de excel do apache-poi
feature
Algumas características de dados de ataques. A ideia original era ver se expressões regulares, etc., conseguiam detectar tudo
java-compile
Código de implementação para compilação dinâmica em java e manipulação de bytecode
nexus
Registros de reprodução de algumas vulnerabilidades de RCE e Auth Bypass do maven nexus
ShardingSphere-UI
Registros de algumas vulnerabilidades do ShardingSphere-UI
- CVE-2020-1947 (Vulnerabilidade de RCE por desserialização YAML)
shiro
Registra algumas vulnerabilidades de bypass de autenticação do shiro descobertas recentemente
- bypass shiro <= 1.4.1
- bypass shiro <= 1.5.2 (CVE-2020-1957)
- bypass shiro <= 1.5.3 (CVE-2020-11989)