Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2021-2471 — PoC para CVE-2021-2471 - XXE en MySQL Connector/J | Kitploit
Herramientas/GitHubGitHub/drunkenshells/cve-2021-2471
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHubdrunkenshells/cve-2021-2471

CVE-2021-2471

PoC para CVE-2021-2471 - XXE en MySQL Connector/J

Ver Repositorio
33hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Vulnerabilidad en el producto MySQL Connectors de Oracle MySQL (componente: Connector/J). Las versiones compatibles afectadas son 8.0.26 y anteriores.
Los ataques exitosos de esta vulnerabilidad pueden resultar en acceso no autorizado a datos críticos o acceso completo a todos los datos accesibles de MySQL Connectors, así como la capacidad no autorizada de causar un bloqueo o un fallo frecuentemente repetible (DOS completo) de MySQL Connectors.

Descargo de responsabilidad:

Esta vulnerabilidad fue encontrada por Xu Yuanzhen del equipo de seguridad de Alibaba Cloud y Hongkun Chen de Alibaba.
Este PoC se proporciona con fines de investigación. No lo uses para atacar objetivos que no tengas permiso explícito para explotar.

Divulgación del proveedor:

La divulgación y el parche del proveedor para esta vulnerabilidad se pueden encontrar aquí.

Prueba de concepto:

La vulnerabilidad XXE consiste en un XML que contiene entidades DTD maliciosas recibidas por un componente MysqlSQLXML y se activa cuando se llama a la función getSource().

Como se ve en el código siguiente de mysql-connector-java-8.0.26.jar, cuando la clase DOMSource se pasa como argumento a la función getSource(), expone un DocumentBuilder de forma insegura, de modo que si un atacante controla el contenido de inputSource pasado al constructor, podría aprovecharlo para obtener 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));

Hay 2 formas de pasar el XXE malicioso al MysqlSQLXML:

  • Usando la función sqlxml.setString() (si el atacante puede llamar o propagar entrada arbitraria a la función setString)
  • Colocando el XML en la base de datos y recuperándolo mediante un result set usando la función resultSet.getSQLXML() (si el atacante tiene acceso de escritura a la base de datos, o puede apuntar a la víctima a una base de datos controlada por el atacante)

Recursos adicionales:

PoC XXE usando sqlxml.setString()
PoC XXE usando resultSet.getSQLXML()
Descargar JAR vulnerable
Otros payloads XXE

Descargar herramienta