JavaThings: notas de charla sobre seguridad de Java relacionadas
"Java Security Talk" es un ensayo que estoy escribiendo relacionado con el aprendizaje de Java. No es muy riguroso ni de alta tecnología. Este repositorio sirve principalmente para registrar, organizar y adjuntar código.
Directorio de charlas de seguridad de Java
- Charla de seguridad de Java - 01. Características dinámicas de Java - reflexión
- Java Security Talk - 02. Uso simple de la reflexión
- Java Security Talk - 03. Varias técnicas avanzadas de reflexión
- Java Security Talk - 04.Análisis del proceso de comunicación RMI
- Java Security Talk - 05. Uso del código base para atacar el Registro RMI
- Java Security Talk - 06. Comprensión profunda del protocolo RMI y los objetos serializados
- Java Security Talk - 07. Vulnerabilidades de deserialización en diferentes lenguajes
- Java Security Talk- 08. Conozca el gadget más simple: URLDNS
- Charla sobre seguridad de Java - 09. Primera introducción a CommonsCollections
- Charla sobre seguridad de Java: 10. Utilice TransformedMap para escribir una prueba de concepto real
- Charla de seguridad de Java - 11. Explicación detallada de LazyMap
- Java Security Talk - 12. Versión simplificada CommonsCollections6
- Charla sobre seguridad de Java: Capítulo adicional 1. ¿Dónde está BCEL ClassLoader?
- Java Security Talk - 13. Métodos para cargar dinámicamente código de bytes en Java
- Charla sobre seguridad de Java: 14. Por qué se necesita CommonsCollections3
- Charla sobre seguridad de Java: 15. Utilización de TemplatesImpl en Shiro
- Charla sobre seguridad de Java: 16.commons-collections4 y correcciones de vulnerabilidades
- Java Security Talk - 17. Utilización de deserialización de CommonsBeanutils y Shiro sin colecciones de commons
- Java Security Talk - 18. Cadena de exploits de deserialización nativa JDK7u21
- Java Security Talk - 19. Construcción y análisis del protocolo de deserialización de Java
código de demostración
Código de bytes:
- Demostración de carga remota de código de bytes: HelloClassLoader
- El sistema por defecto define el código de bytes de carga de clase Demostración: HelloDefineClass
- Utilice TemplatesImpl para cargar el código de bytes Demostración: HelloTemplatesImpl
- Usando BCEL para cargar código de bytes Demostración: HelloBCEL
Deserialización:
- La demostración de Transformer más simple: CommonsCollectionsIntro.java
- Mis CommonsCollections6 simplificadas son más fáciles de entender para todos
- Demostración de Transformer construida con TemplatesImpl: CommonsCollectionsIntro2.java
- Demostración de Transformer sin InvokerTransformer: CommonsCollectionsIntro3.java
- Mis CommonsCollections3 simplificadas
- CommonsCollections6 ejecuta varios comandos a la vez: CommonsCollections6Multiple
- Cadena de exploits CommonsCollections6 que admite la versión commons-collections4.0: CommonsCollections6For4
- Mi cadena de exploits CommonsBeanutils1 simplificada: CommonsBeanutils1
- Versión simplificada de la cadena de utilización nativa de Java JDK7u21
Deserialización de Shiro:
- Una de las aplicaciones web de Shiro más sencillas: shirodemo
- Utilice CommonsCollections6 y la clave predeterminada de Shiro para construir la carga útil: Client0.java, CommonsCollections6.java, que es posible que no se deserialice correctamente en Tomcat.
- Utilice CommonsCollections, TemplatesImpl y Shiro default Key para construir Payload: Client.java, CommonsCollectionsShiro.java para resolver los problemas anteriores
- Cadena de utilización de deserialización construida usando commons-beanutils que viene con Shiro de forma predeterminada: CommonsBeanutils1Shiro.java
Herramienta de análisis de deserialización de desarrollo propio:
- zkar: https://github.com/phith0n/zkar
- Cómo utilizar zkar para solucionar el problema de discrepancia de SerialVersionUID: https://t.zsxq.com/Yz3B6yJ