JavaThings - Notes de discussion sur la sécurité Java liées
"Java Security Talk" est un essai que j'écris sur l'apprentissage Java. Il n'est pas très rigoureux et n'est pas de haute technologie. Ce référentiel sert principalement à enregistrer et à organiser, ainsi qu'à joindre du code.
Répertoire de discussions sur la sécurité Java
- Discussion sur la sécurité Java - 01. Caractéristiques dynamiques de Java - réflexion
- Java Security Talk - 02. Utilisation simple de la réflexion
- Java Security Talk - 03. Plusieurs techniques avancées de réflexion
- Java Security Talk - 04.Analyse du processus de communication RMI
- Java Security Talk - 05. Utiliser la base de code pour attaquer le registre RMI
- Java Security Talk - 06. Compréhension approfondie du protocole RMI et des objets sérialisés
- Java Security Talk - 07. Vulnérabilités de désérialisation dans différents langages
- Java Security Talk - 08. Découvrez le gadget le plus simple——URLDNS
- Java Security Talk - 09. Première introduction à CommonsCollections
- Java Security Talk - 10. Utilisez TransformedMap pour écrire un vrai POC
- Java Security Talk - 11. Explication détaillée de LazyMap
- Java Security Talk - 12. Version simplifiée CommonsCollections6
- Java Security Talk - Chapitre supplémentaire 1. Où se trouve BCEL ClassLoader ?
- Java Security Talk - 13. Méthodes de chargement dynamique du bytecode en Java
- Java Security Talk - 14. Pourquoi CommonsCollections3 est nécessaire
- Java Security Talk - 15. Utilisation de TemplatesImpl dans Shiro
- Java Security Talk - 16.commons-collections4 et correctifs de vulnérabilités
- Java Security Talk - 17. Utilisation de la désérialisation CommonsBeanutils et Shiro sans collections communes
- Java Security Talk - 18. Chaîne d'exploitation de désérialisation native JDK7u21
- Java Security Talk - 19. Construction et analyse du protocole de désérialisation Java
Code démo
Bytecode :
- Démo de chargement de bytecode à distance : HelloClassLoader
- Le système par défaut définitClass chargeant la démo du bytecode : HelloDefineClass
- Utilisez TemplatesImpl pour charger la démo de bytecode : HelloTemplatesImpl
- Utilisation de BCEL pour charger la démo de bytecode : HelloBCEL
Désérialisation :
- La démo de Transformer la plus simple : CommonsCollectionsIntro.java
- Mon CommonsCollections6 simplifié est plus facile à comprendre pour tout le monde
- Démo de Transformer construite à l'aide de TemplatesImpl : CommonsCollectionsIntro2.java
- Démo de Transformer sans InvokerTransformer : CommonsCollectionsIntro3.java
- Mes CommonsCollections3 simplifiées
- CommonsCollections6 exécute plusieurs commandes à la fois : CommonsCollections6Multiple
- Chaîne d'exploitation CommonsCollections6 qui prend en charge la version commons-collections4.0 : CommonsCollections6For4
- Ma chaîne d'exploit CommonsBeanutils1 simplifiée : CommonsBeanutils1
- Version simplifiée de la chaîne d'utilisation native Java JDK7u21
Désérialisation Shiro :
- Une des applications Web Shiro les plus simples : shirodemo
- Utilisez CommonsCollections6 et la clé par défaut de Shiro pour créer la charge utile : Client0.java, CommonsCollections6.java, qui peut ne pas être désérialisée avec succès dans Tomcat.
- Utilisez CommonsCollections, TemplatesImpl et Shiro par défaut pour construire la charge utile : Client.java, CommonsCollectionsShiro.java pour résoudre les problèmes ci-dessus.
- Chaîne d'utilisation de désérialisation construite à l'aide de commons-beanutils fourni avec Shiro par défaut : CommonsBeanutils1Shiro.java
Outil d'analyse de désérialisation auto-développé :
- zkar : https://github.com/phith0n/zkar
- Comment utiliser zkar pour résoudre le problème de non-concordance SerialVersionUID : https://t.zsxq.com/Yz3B6yJ