Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-2471 — PoC pour CVE-2021-2471 - XXE dans MySQL Connector/J | Kitploit
Outils/GitHubGitHub/drunkenshells/cve-2021-2471
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionSécurité des Bases de Données
GitHubdrunkenshells/cve-2021-2471

CVE-2021-2471

PoC pour CVE-2021-2471 - XXE dans MySQL Connector/J

Voir le dépôt
33il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2021-2471 - XXE dans MySQL Connector/J

Vulnérabilité dans le produit MySQL Connectors d'Oracle MySQL (composant : Connector/J). Les versions prises en charge qui sont affectées sont 8.0.26 et antérieures.
Des attaques réussies de cette vulnérabilité peuvent entraîner un accès non autorisé à des données critiques ou un accès complet à toutes les données accessibles de MySQL Connectors, ainsi que la capacité non autorisée de provoquer un blocage ou un plantage fréquemment répétable (DOS complet) de MySQL Connectors.

Avertissement :

Cette vulnérabilité a été découverte par Xu Yuanzhen de l'équipe de sécurité cloud d'Alibaba et Hongkun Chen d'Alibaba.
Ce PoC est fourni à des fins de recherche. Ne l'utilisez pas pour attaquer des cibles pour lesquelles vous n'avez pas l'autorisation explicite d'exploiter.

Divulgation du fournisseur :

La divulgation et le correctif du fournisseur pour cette vulnérabilité peuvent être trouvés ici.

Preuve de concept :

La vulnérabilité XXE consiste en un XML contenant des entités DTD malveillantes reçu par un composant MysqlSQLXML et est déclenchée lorsque la fonction getSource() est appelée.

Comme vu dans le code ci-dessous provenant de mysql-connector-java-8.0.26.jar, lorsque la classe DOMSource est donnée comme argument à la fonction getSource(), elle expose un DocumentBuilder de manière non sécurisée de sorte que, si un attaquant contrôle le contenu de l'InputSource passé au builder, il/elle pourrait l'exploiter pour obtenir une XXE :

root@kitploit:~
public <T extends Source> T getSource(Class<T> clazz) throws SQLException {
        try {
            this.checkClosed();
            this.checkWorkingWithResult();
            InputSource reader;
            if (clazz != null && !clazz.equals(SAXSource.class)) {
                SQLException sqlEx;
                if (clazz.equals(DOMSource.class)) {
                    try {
                        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
                        builderFactory.setNamespaceAware(true);
                        DocumentBuilder builder = builderFactory.newDocumentBuilder();
                        if (this.fromResultSet) {
                            inputSource = new InputSource(this.owningResultSet.getCharacterStream(this.columnIndexOfXml));
                        } else {
                            inputSource = new InputSource(new StringReader(this.stringRep));
                        }

                        return new DOMSource(builder.parse(inputSource));

Il existe 2 façons de passer la XXE malveillante au MysqlSQLXML :

  • En utilisant la fonction sqlxml.setString() (si l'attaquant peut appeler ou propager une entrée arbitraire vers la fonction setString)
  • En plaçant le XML dans la base de données et en le récupérant via un ensemble de résultats en utilisant la fonction resultSet.getSQLXML() (si l'attaquant a un accès en écriture à la base de données, ou peut diriger la victime vers une base de données contrôlée par l'attaquant)

Ressources supplémentaires :

PoC XXE utilisant sqlxml.setString()
PoC XXE utilisant resultSet.getSQLXML()
Télécharger le JAR vulnérable
Autres charges utiles XXE

Télécharger l’outil