elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 02:15  



  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 18
1  Seguridad Informática / Bugs y Exploits / Re: Scanner RFI simple en PHP en: 09 Octubre 2008, 00:17
Ya te lo dije, que es un programa casero que hago para mi y que esta a medias .... lo de hacerlo para mi no quiere decir que no quiera compartirlo sino que mas bien empece a hacerlo para aprender perl
2  Seguridad Informática / Bugs y Exploits / Re: Scanner RFI simple en PHP en: 07 Octubre 2008, 19:31
Bueno, yo sigo mejorandolo y posteando en milw0rm los programas donde lo pruebo (http://www.milw0rm.com/author/1607) ... si creeis que puede ser interesante y lo vais a usar, yo no tengo ningun problema en subirlo a google code
3  Seguridad Informática / Bugs y Exploits / Re: Scanner RFI simple en PHP en: 07 Octubre 2008, 16:38
pepelux: haz considerado manejar tu codigo en un control de versiones?
SVN?

http://code.google.com/hosting/createProject

;)

Saludos!!

Conozco google code pero vamos, que mi miniprograma es algo muy casero y pequeño como para crear un control de versiones :P
4  Seguridad Informática / Hacking Básico / Re: Envenenamiento ARP para WAN, es posible ?? en: 06 Octubre 2008, 22:49
No te emparanolles mucho con el snort ... yo a diario tengo decenas de ataques de programas que buscan vulnerabilidades ... simplemente buscan a destajo posibles fallos que si tienes bien configurados solo se quedaran en eso, alertas
5  Seguridad Informática / Bugs y Exploits / Re: Scanner RFI simple en PHP en: 06 Octubre 2008, 22:22
Pues no lo puse porque esta a medias ... pero bueno, a falta de muchas revisiones y demas, pongo lo que llego hecho por si a alguien le es de utilidad ... y antes de que critiqueis .... ESTA A MEDIAS y NO CONTROLO MUCHO DE PERL

Tiene 3 opciones de busqueda:

>> RFI (Remote File Inclusion) <<
Busca requires, includes, require_once, include_once que llamen a variables (no tiene en cuenta las funciones) y es lo que mas depurado tengo

>> ICH (Insecure Cookie Handling) <<
Basicamente lo que hace es buscar apariciones de $_COOKIE ... no sirve de mucho pero te orienta acerca del uso de cookies y donde los usa

>> SQL (SQL Injection) <<
Busca posibles fallos de SQL en los que no estan definidas las variables que usa (por terminar)

No da resultados exactos ya que hay que hacer demasiadas comprobaciones y esta a medio programar, pero sirve para coger una orientacion de donde buscar los fallos.

Aqui van los codes ...

---- phpfuzzer.pl ---

Código:
#! /usr/bin/perl



require 'scan.pm';

require 'rfi.pm';

require 'ich.pm';

require 'sql.pm';



@ficheros = (); # nombre del fichero afectado

@comandos = (); # comando que tiene el fallo

@lineas = ();   # linea del fichero donde esta el fallo

@vbles = ();    # vable afectada

@tipos = ();    # tipo de fallo (RFI / SQL)



$log = "log.txt";

$lista_ficheros = "fichero.txt";

$fichero_tmp = "tmp.ph_";

open(LOG, ">$log");



print "\e[2J";

system(($^O eq 'MSWin32') ? 'cls' : 'clear');

#system(($^O eq 'MSWin32') ? ($so = "WINDOWS") : ($so = "LINUX"));



uso();

$ruta = $ARGV[0];
$ruta !~ /\/$/;


imprime("=- Directory to scan: $ruta*.php\"\n");



# creamos un listado de todos los ficheros PHP del directorio y subdirectorios

open(FICHERO, ">$lista_ficheros");

buscar_ficheros_php($ruta);

close(FICHERO);



#### comprobamos vulnerabilidades ####



# comprobamos las vulnerabilidades RFI
if ($modo =~ /RFI/)
{

rfi();



for ($i = 0; $i <= $#ficheros; $i++)

{

if ($tipos[$i] eq 'RFI')

{

print "   Possible Remote File Inclusion vulnerability found:\n";

print "   > File affected: $ficheros[$i]";

print "   > Sentence: $lineas[$i] -> $comandos[$i]\n";

print "   > Variable: = \$$vbles[$i]\n\n";


print LOG "   Possible Remote File Inclusion vulnerability found:\n";

print LOG "   > File affected: $ficheros[$i]";

print LOG "   > Sentence: $lineas[$i] -> $comandos[$i]\n";

print LOG "   > Variable: = \$$vbles[$i]\n\n";

}

}



print "\n";
}



#### comprobamos vulnerabilidades ####



# comprobamos las vulnerabilidades ICH
if ($modo =~ /ICH/)
{

ich();



for ($i = 0; $i <= $#ficheros; $i++)

{

if ($tipos[$i] eq 'ICH')

{

print "   Possible Insecure Cookie Handling vulnerability found:\n";

print "   > File affected: $ficheros[$i]";

print "   > Sentence: $lineas[$i] -> $comandos[$i]\n\n";


print LOG "   Possible Insecure Cookie Handling vulnerability found:\n";

print LOG "   > File affected: $ficheros[$i]";

print LOG "   > Sentence: $lineas[$i] -> $comandos[$i]\n\n";

}

}



print "\n";
}



# comprobamos las vulnerabilidades SQL

if ($modo =~ /SQL/)
{

sql();



for ($i = 0; $i <= $#ficheros; $i++)

{

if ($tipos[$i] eq 'SQL')

{

print "   Possible Remote SQL Injection vulnerability found:\n";

print "   > File affected: $ficheros[$i]";

print "   > Sentence: $comandos[$i]\n";

print "   > Variable: = \$$vbles[$i]\n\n";

}

}



print "\n";

}




imprime(":: End\n");

imprime("  |===|");

close(LOG);

print "\t << Log file was saved as $log >>\n\n";





sub uso()

{

imprime("=-|========================================-{ http://www.enye-sec.org }-=====|\n");

imprime("=-[ PHP Fuzzer v1.0 ]-=====================================================-=|\n");

imprime("=-|==========================================================================|\n");

imprime("=-[ by Pepelux <pepelux[at]enye-sec[dot]org> ]-==============================|\n\n");



$modo = "SQL RFI ICH";



ayuda() if ($#ARGV < 0 || $#ARGV > 1);

if ($#ARGV == 1)

{

if ($ARGV[1] eq 'SQL' || $ARGV[1] eq 'RFI' || $ARGV[1] eq 'ICH')

{
$modo = $ARGV[1];

}

else

{

ayuda();

}

}

}



sub ayuda()

{

print "Usage: perl $0 <directory_path> [RFI | SQL | ICH]\n\n";

print "\texamples:\n";
print "\t    Scan for RFI & SQL: perl $0 myPHPSite/src\n";

print "\t    Scan for SQL only : perl $0 myPHPSite/src SQL\n";

print "\t    Scan for RFI only : perl $0 myPHPSite/src\ RFI\n\n";

print "\t    Scan for ICH only : perl $0 myPHPSite/src\ ICH\n\n";

close(LOG);

exit();

}



sub imprime()

{

my $texto = shift;

print "$texto";

print LOG "$texto";

}

---- scan.pm ---

Código:
##############################################

# Search all PHP files in the (sub)directory #

##############################################

sub buscar_ficheros_php()

{

my $dir = shift;

   

if (opendir(DIRECTORIO, "$dir"))

{

foreach (readdir(DIRECTORIO))

{

# ignoramos . y ..

            next if ($_ eq "." || $_ eq "..");

           

# buscamos los ficheros terminados en .php

if ($_ =~ /.php$/)

{

print FICHERO "$dir/$_\n";

            }



buscar_ficheros_php("$dir/$_") if (-d "$dir/$_" && ! -l "$dir/$_");

}

               

closedir DIRECTORIO;

}

else

{

print "ERROR: can not read directory $dir\n";

    }

}



1;

---- rfi.pm ---

Código:
sub rfi()

{

print "\n:: Searching for possible Remote File Inclusion vulnerabilities\n";

print "  |============================================================|\n";

print LOG "\n:: Searching for possible Remote File Inclusion vulnerabilities\n";

print LOG "  |============================================================|\n";



$encontrado = 0;



open(FICHERO, "$lista_ficheros");



while(<FICHERO>)

{

$fichero_original = $_;

    organizar_fichero($_);

buscar_rfi($fichero_original, $fichero_tmp);

}



if ($encontrado == 0)

{

print "   Not RFI vulnerabilities found\n";

print LOG "   Not RFI vulnerabilities found\n";

}



close(FICHERO);

}



##############################

# Read a PHP for search RFIs #

##############################

sub buscar_rfi()

{

my $file = shift;

my $fileTmp = shift;

$clinea = 0;



open FICHERO_PHP, $file;


while(<FICHERO_PHP>)

{

$clinea++;



# buscamos includes o requires seguidos de ($

$cadena = $_;

if (($cadena  =~ /^\s*require\s*\(/ || $cadena  =~ /^\s*require\s*\"/ ||
      $cadena  =~ /^\s*require_once\s*\(/ || $cadena  =~ /^\s*require_once\s*\"/ ||
$cadena  =~ /^\s*include\s*\(/ || $cadena  =~ /^\s*include\s*\"/ ||
$cadena  =~ /^\s*include_once\s*\(/ || $cadena  =~ /^\s*include_once\s*\"/ )
&& $cadena !~ "^//" && $cadena =~ "\$")
{
$linea_original = $_;


@matriz = ();

extraer_datos_rfi($cadena);

for ($i = 0; $i <= $#matriz; $i++) {
$cadena = $matriz[$i];

if (uc($cadena)  !~ /_GET/ && uc($cadena)  !~ /_POST/ && uc($cadena)  !~ /_COOKIE/) {

if (uc($cadena)  =~ /\[/ || uc($cadena)  =~ /\]/) {

$cadena = "";
}

}



if (length($cadena) > 0)

{

if (!comprobar_rfi($fileTmp, $cadena) == 0)

{

$encontrado = 1;
$linea_original =~ s/\s*//g;

push(@ficheros, $fichero_original);

push(@comandos, $linea_original);

push(@lineas, $clinea);

push(@vbles, $cadena);

push(@tipos, "RFI");

}

}

}
}

}



close FICHERO_PHP;

}



sub comprobar_rfi()

{

my $file = shift;

my $var = shift;


chop($var);

open FICHERO_PHP2, $file;



while(<FICHERO_PHP2>)

{
$tmp = $_;
$tmp =~ s/\s*//g;
chop($tmp);

if ($tmp =~ /$var[A-Z|a-z]*\s*=/)

{
$x = index($tmp, $var);

if ($x < 2)
{
close(FICHERO_PHP2);

return 0;
}

}

}



close(FICHERO_PHP2);

return 1;

}



sub extraer_datos_rfi()
{
$cadena = shift;
$cadena =~ s/\s*require_once\s*//g;
$cadena =~ s/\s*require\s*//g;
$cadena =~ s/\s*include_once\s*//g;
$cadena =~ s/\s*include\s*//g;
$cadena =~ s/\(//g;

$cadena =~ s/\)\s*\;//g;

$cadena =~ s/\s*\n$//g;

$cadena =~ s/\s*;$//g;

$cadena =~ s/\s*\)$//g;

$cadena =~ s/\s*\"$//g;


do
{
$x = index($cadena, "\$");

if ($x > -1)
{
$y = 999;
$y1 = index($cadena, "\.", $x)-1;
$y2 = index($cadena, "/", $x)-1;
$y3 = index($cadena, ")", $x)-1;

if ($y1 < 0) { $y1 = 999; }
if ($y2 < 0) { $y2 = 999; }
if ($y3 < 0) { $y3 = 999; }

if ($y1 < $y) { $y = $ y1; }
if ($y2 < $y) { $y = $ y2; }
if ($y3 < $y) { $y = $ y3; }

if ($y > 0 && $y < 999)
{
$valor = substr($cadena, $x+1, $y-$x);
push(@matriz, $valor);
$cadena = substr($cadena, $y+1, length($cadena)-$y);
}
else
{
$valor = substr($cadena, $x+1, length($cadena)-$x-1);
push(@matriz, $valor);
$x = -1;
}
}
} while($x > 0);
}

1;


---- ich.pm ---

Código:
sub ich()

{

print "\n:: Searching for possible Insecure Cookie Handling vulnerabilities\n";

print "  |===============================================================|\n";

print LOG "\n:: Searching for possible Insecure Cookie Handling vulnerabilities\n";

print LOG "  |===============================================================|\n";



$encontrado = 0;



open(FICHERO, "$lista_ficheros");



while(<FICHERO>)

{

$fichero_original = $_;

    organizar_fichero($_);

buscar_ich($fichero_original, $fichero_tmp);

}



if ($encontrado == 0)

{

print "   Not ICH vulnerabilities found\n";

print LOG "   Not ICH vulnerabilities found\n";

}



close(FICHERO);

}



##############################

# Read a PHP for search ICHs #

##############################

sub buscar_ich()

{

my $file = shift;

my $fileTmp = shift;

$clinea = 0;



open FICHERO_PHP, $file;


while(<FICHERO_PHP>)

{

$clinea++;



# buscamos includes o requires seguidos de ($

$cadena = $_;

if ($cadena  =~ /\$_COOKIE/ && $cadena !~ "^//")
{
$linea_original = $_;


@matriz = ();


$encontrado = 1;
$linea_original =~ s/\s*//g;

push(@ficheros, $fichero_original);

push(@comandos, $linea_original);

push(@lineas, $clinea);

push(@vbles, '');

push(@tipos, "ICH");

}

}



close FICHERO_PHP;

}


1;


---- sql.pm ---

Código:
require "unir.pm";



sub sql()

{

print "\n:: Searching for possible SQL Injection vulnerabilities\n";

print "  |====================================================|\n";

print LOG "\n:: Searching for possible SQL Injection vulnerabilities\n";

print LOG "  |====================================================|\n";



$encontrado = 0;



open(FICHERO, "$lista_ficheros");



while(<FICHERO>)

{

$fichero_original = $_;

# print "   Creating a tmp file with: $_";

print LOG "   Creating a tmp file with: $_";

@includes = ();

organizar_fichero($_);

# print "\n   Analyzing vars in SQL SELECT sentences\n";

print LOG "\n   Analyzing vars in SQL SELECT sentences\n";

buscar_select($fichero_tmp);

# print "\n";

print LOG "\n";

}



if ($encontrado == 0)

{

print "   Not SQL vulnerabilities found\n";

print LOG "   Not SQL vulnerabilities found\n";

}



close(FICHERO);

}





#######################################

# Search vars in SQL SELECT sentences #

#######################################

sub buscar_select()

{

my $file = shift;



open FICHERO_PHP, $file;



while(<FICHERO_PHP>)

{

$linea = $_;

$linea_entera = $linea;



# dejamos la linea en blanco en caso de que sea un comentario

$linea = "" if ($linea =~ /^\s*\/\//);



if ((uc($linea)  =~ "SELECT" && uc($linea)  =~ "FROM" && uc($linea)  =~ "WHERE") ||

(uc($linea)  =~ "UPDATE" && uc($linea)  =~ "SET" && uc($linea)  =~ "WHERE") ||

(uc($linea)  =~ "DELETE" && uc($linea)  =~ "FROM" && uc($linea)  =~ "WHERE") ||

(uc($linea)  =~ "INSERT" && uc($linea)  =~ "INTO"))

{

$cadena = $linea;

$ini = index($cadena, "\"") + 1;

$cadena = substr($cadena, $ini, length($cadena) - $ini);

$fin = index($cadena, ";");

$cadena = substr($cadena, 0, $fin) if $fin > -1;



if ($cadena =~ /\$/)

{

# print "   > Found: $cadena\n";

print LOG "   > Found: $cadena\n";



if (uc($linea)  =~ "INSERT" && uc($linea)  =~ "INTO" && uc($linea)  =~ "VALUES")

{

# buscamos a partir de VALUES

$ini = index(uc($linea), "VALUES") + 6;

}

else

{

if (uc($linea)  =~ "INSERT" && uc($linea)  =~ "INTO")

{

# buscamos a partir de INTO

$ini = index(uc($linea), "INTO") + 6;

}

else

{

# buscamos a partir de WHERE

$ini = index(uc($linea), "WHERE") + 5;

}

}



$linea = substr($linea, $ini, length($linea) - $ini);

$salir = 0;



do

{

# buscamos a partir de $, que identifica la variable

$ini = index($linea, "\$") + 1;

if ($ini == 0)

{

$salir = 1;

}

else

{

$linea = substr($linea, $ini, length($linea) - $ini);

$sentencia = $linea;



if (uc($sentencia)  =~ "_GET")

{

$ini = index($sentencia, "_GET");

$fin = index($sentencia, "\]");

$sentencia = substr($linea, $ini+6, $fin-$ini-7);

}



if (uc($sentencia)  =~ "_POST")

{

$ini = index($sentencia, "_POST");

$fin = index($sentencia, "\]");

$sentencia = substr($linea, $ini+7, $fin-$ini-8);

}



# cortamos en ) si existe

$fin = index($sentencia, "\)");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

# cortamos en ' si existe

$fin = index($sentencia, "\'");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

# cortamos en " si existe

$fin = index($sentencia, "\"");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

# cortamos en . si existe

$fin = index($sentencia, ".");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

# quitamos basura del final

$fin = index($sentencia, " ");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

$fin = index($sentencia, "%");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

$fin = index($sentencia, ";");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;

$fin = index($sentencia, ",");

$sentencia = substr($sentencia, 0, $fin) if $fin > -1;



if ($sentencia  =~ /\[/ || $sentencia  =~ /\]/ || $sentencia  =~ /->/)

{

$sentencia = "";

}



if (length($sentencia) > 0)

{

$encontrado = 1;



if (comprobar_sql($file, $sentencia) == 0)

{

# print "\tChecking var: \$$sentencia ... not vulnerable\n\n";

print LOG "\tChecking var: \$$sentencia ... not vulnerable\n\n";

}

else

{

push(@ficheros, $fichero_original);

push(@comandos, $cadena);

push(@lineas, $lin);

push(@vbles, $sentencia);

push(@tipos, "SQL");

# print "\tChecking var: \$$sentencia ... VULNERABLE\n";

print LOG "\tChecking var: \$$sentencia ... VULNERABLE\n";

}

}

}

} while ($salir == 0);



# print "\n";

print LOG "\n";

}

}

}



close FICHERO_PHP;

}



sub comprobar_sql()

{

my $file = shift;

my $var = shift;



open FICHERO_PHP2, $file;



while(<FICHERO_PHP2>)

{

if ($_ =~ /\$$var\s*=/)

{

close(FICHERO_PHP2);

return 0;

}

}



close(FICHERO_PHP2);

return 1;

}



1;

---- unir.pm ---

Código:
###########################################################

# Organize a PHP file including all includes and requires #

###########################################################

sub organizar_fichero()

{

my $file = shift;

$cont = 0;

$clinea = 0;



open FICHERO_PHP, $file;

open FICHERO_TMP, ">$fichero_tmp";



while(<FICHERO_PHP>)

{

$clinea++;



$linea = uc($_);



# buscamos includes o requires seguidos de ("

# si encontramos alguno incluimos su contenido

# dentro del fichero temporal

if (($_  =~ /require\s*\(/ || $_  =~ /require\s*\"/ ||

   $_  =~ /require_once\s*\(/ || $_  =~ /require_once\s*\"/ ||

$_  =~ /include\s*\(/ || $_  =~ /include\s*\"/ ||

$_  =~ /include_once\s*\(/ || $_  =~ /include_once\s*\"/ )

&& $_ !~ "^//" && $_ !~/\$/)

{

$cadena = $_;

$ini = index($cadena, "\"") + 1;

$fin = index($cadena, "\"", $ini) - $ini;

$cadena = substr($cadena, $ini, $fin);


$cadenatmp = $file;

$ruta = '';



do

{

$ini = index($cadenatmp, '/');

$fin = length($cadenatmp) - $ini;

$ruta .= substr($cadenatmp, 0, $ini+1);

$cadenatmp = substr($cadenatmp, $ini+1, $fin);

} until ($ini == -1);



$ruta .= $cadena;



push(@includes, $ruta);

# print "   > Including: $ruta\n";



open FICHERO_INCLUDE, $ruta;



while(<FICHERO_INCLUDE>)

{

print FICHERO_TMP $_;

}



print FICHERO_TMP "\n";

close FICHERO_INCLUDE;

}

else

{

print FICHERO_TMP $_;

}

}



close FICHERO_TMP;

close FICHERO_PHP;
}



1;
6  Seguridad Informática / Bugs y Exploits / Re: Scanner RFI simple en PHP en: 05 Octubre 2008, 23:01
Ah ok .. el mio escanea en local :)
7  Forums Generales / Foro Libre / Re: Por que las mujeres escriben asi? en: 05 Octubre 2008, 15:04
A qui en España las que hacen eso son las llamadas Leopardesas o CHONIS xD y sus nick varian entre:

UnA PekkEeEniAHH XhUUlAA [MaRinAAh] PuEsSHH
y kosas asi xD
son algo rarito....

Salu2

xDDDD la choni!!!
8  Sistemas Operativos / GNU/Linux / Re: Error del comando sudo en: 05 Octubre 2008, 13:32
si se te quedo a medias alguna actualizacion, siempre puedes borrar el fichero /var/lib/dpkg/lock y ya te dejara usar el apt-get
9  Forums Generales / Foro Libre / Re: Por que las mujeres escriben asi? en: 05 Octubre 2008, 13:30
Tambien estan los lammers que escriben asi y dicen que son hackers:

h0l4, qu3 74l? s0y un h4c)<3r y cr34d0r d3l gu54n0 8l4573r!!!!

jajaja...

No es que apruebe esa forma de escribir ... pero tampoco creo que una sea lamer por escribir asi y hacker por escribir normal .... vamos, que el termino hacker/lamer se define por otras muchas cosas y no por la forma de escribir :)
10  Seguridad Informática / Bugs y Exploits / Re: SQL injection... en: 05 Octubre 2008, 13:05
http://www.site.com/?id=-1 union select 1,load_file('/etc/passwd'),3,...

o si filtra las comillas, en HEX:

http://www.site.com/?id=-1 union select 1,load_file(0x2f6574632f706173737764),3,...
11  Seguridad Informática / Bugs y Exploits / Re: Scanner RFI simple en PHP en: 05 Octubre 2008, 13:01
Eso funciona?  :-X

Yo tengo un scanner de RFI en perl (un fuzzer) y basicamente lo que hago es:

1- abro el fichero PHP a analizar y le adjunto cada include o require que veo (ya que puedes tener definidas las variables en otro fichero que incluyas antes)

2- busco los require, include, require_once e include_once que cargen alguna variable (tipo $loquesea)

3- por cada include o require que encuentro, vuelvo a revisar el codigo a ver si esta o no definido

4- en el caso de que no este definido, es un posible RFI

Tambien hay que tener en cuenta las funciones (si el require o include esta dentro de una funcion, no puedes aprovecharte de el, ya que el parametro se pasa a la funcion)

Un saludo
12  Seguridad Informática / Hacking Básico / Re: duda con inyeccion sql en login en: 05 Octubre 2008, 12:45
Estas mezclando tecnicas de SQL Server con tecnicas de MySQL ... en tu caso es un SQL Server asi que mirate bien esto:

http://www.ngssoftware.com/papers/advanced_sql_injection.pdf
13  Seguridad Informática / Hacking Básico / Re: Me da este error, ¿puedo aprovecharlo? en: 05 Octubre 2008, 12:42
parece que faltan tablas en la BBDD .... por eso el error :P

Si provocaras tu el error porque esta mal construida la SQL seria otra historia
14  Seguridad Informática / Hacking Básico / Re: Obtener contraseña del ftp en: 05 Octubre 2008, 12:39
que tal si haces un 'ftp www.server.com', miras que demonio esta corriendo, te lo instalas en tu PC y averiguas como funciona y donde guarda las cosas?
15  Seguridad Informática / Hacking Avanzado / Re: Obtener nombre de tabla en mysql 4.x en: 05 Octubre 2008, 12:33
Si que lei lo que pusiste :P

Lo que escribi fue para corregir lo de tablas x columnas ... que lo escribiste mal  :)

Un saludo
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 18






Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats