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-2023-45503 — Referencia CVE-2023-45503 | Kitploit
Herramientas/GitHubGitHub/ally-petitt/cve-2023-45503
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónSeguridad de Bases de Datos
GitHubally-petitt/cve-2023-45503

CVE-2023-45503

Referencia CVE-2023-45503

Ver Repositorio
hace 2 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-2023-45503 Detalles de la Vulnerabilidad

Resumen

En Macrob7 Macs Framework Content Management System (CMS) versiones 1.1.4f y anteriores, el manejo inseguro de la entrada del usuario conduce a 16 vulnerabilidades de inyección SQL. La capacidad de ejecutar consultas SQL arbitrarias puede provocar la filtración de datos privados, incluidos los hash de contraseñas de los usuarios, y la capacidad de modificar las credenciales y el nivel de privilegios de otros usuarios. El impacto puede incluir escalada de privilegios y una posible ejecución remota de código (RCE).

Se puede encontrar una hoja de cálculo que describe cada endpoint afectado, parámetro vulnerable y las funciones vulnerables en este enlace.

Clasificación CWE: CWE-89: Neutralización incorrecta de elementos especiales utilizados en un comando SQL ('Inyección SQL')

Reportado por: Ally Petitt

Producto afectado: Macrob7 Macs CMS

Versiones afectadas: 1.1.4f y anteriores

Detalles técnicos

En 16 casos que detecté, la entrada del usuario se recibía sin una sanitización o parametrización adecuada. Por ejemplo, en la funcionalidad "Forgot Password" de este CMS, se solicita una dirección de correo electrónico.

Application/plugins/CMS/controllers/CMS.php:224

root@kitploit:~
    public function forgotPasswordProcess()
    {
      $this->loadModels();
      $emailAddress = Post::getByKey('emailAddress');

      $user = $this->usersModel->getUserByEmailAddress($emailAddress);

La dirección de correo electrónico se pasa al método getUserByEmailAddress(), que pasa el correo electrónico a selectSingle(), un método que no protege adecuadamente contra consultas SQL inyectadas.

Application/plugins/CMS/models/Users_Model.php:41

root@kitploit:~
    public function getUserByEmailAddress($emailAddress)
    {
       return $this->selectSingle( $this->getCMSTableNameUsers(), array('EmailAddress'=>$emailAddress));
    }

Luego, selectSingle() llama a select() con la entrada de usuario pasada.

Application/core/DB.php:200

root@kitploit:~
    public function selectSingle($tableName, array $where = array(), array $fields = array('*'))
    {
      $return = $this->select($tableName, $where, $fields);

      $single = NULL;

      if( count($return) > 0 )
        $single = $return[0];

      return $single;
    }

La vulnerable función select() procede a concatenar los parámetros que se le pasan en una consulta SQL que posteriormente se ejecuta.

Application/core/DB.php:186

root@kitploit:~
    public function select($tableName, array $where = array(), array $fields = array('*'))
    {      
      $fieldsString = $this->generatePair($fields, ',');
      $whereString = $this->generateKeyValuePair($where, '=', 'AND');

      $sql = 'SELECT '.$fieldsString.' FROM '.$tableName;

      if($whereString !='')
        $whereString = ' WHERE '.$whereString;

      $sql = $sql.' '.$whereString.';';     
      return $this->execute($sql)->fetchAll($this->returnType, $this->className);
    }

Debido a la falta de sanitización, validación y parametrización de la entrada, esta función sigue siendo vulnerable a ataques de inyección SQL.

Mitigación

Desafortunadamente, la falta de mantenimiento de este CMS significa que no hay una actualización parcheada disponible. Los usuarios individuales pueden modificar el código para que contenga consultas SQL parametrizadas, en lugar de depender de la concatenación para pasar la entrada del usuario a la base de datos. Las sentencias preparadas son un ejemplo de mitigación que puede lograr esto.

Descargar herramienta