elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: 4n4lDetector v1.3: herramienta de análisis estático de malware


+  Foro de elhacker.net
|-+  Informática
| |-+  Tutoriales - Documentación
| | |-+  Tutorial de Inyección SQL (SQL Injection)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 [5] 6 Ir Abajo Respuesta Imprimir
Autor Tema: Tutorial de Inyección SQL (SQL Injection)  (Leído 351,002 veces)
i-node

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #40 en: 1 Abril 2009, 21:09 »

Estoy inyectando codigo en un servidor, pero el problema es que se cual es el nombre de la base de datos, pero necesito hacer un listado de las tablas de esa base de datos. He probado de la siguiente forma:

' OR EXISTS(SELECT 1 FROM dual WHERE database() LIKE '%j%') AND ''='

' OR EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='nombre_bd' AND TABLE_NAME='nombre_tabla') AND ''='

' OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE '%u%')>1 AND ''='

Pero me dice que la sintaxis es incorrecta.. Alguna sugerencia?


Es mas, estando dicha consulta dentro de un magicsql("..."); si yo introduzco un

' "); echo "loquesea"; <!--

Ese comentario php <!-- deberia hacer que ignorase todo lo que venga detras o includo con un ?>
Pero el caso es que no funciona, y es rarisimo, puesto que si hago un <!-- OR 1=1 y hago que me salte un error de sintaxis de MySQL, muestra todo menos el comentario y lo que viene detras, con lo cual se supone que esta funcionando ese comentario, pero no es asi, porque si cierro la sentencia SQL antes del comentario con "); y hago el echo "loquesea"; me salta un error de sintaxis porque interpreta ese echo como si fuese parte de la consulta SQL ¿?¿?¿?

Ver para creer..


En línea

CICOLO_111234

Desconectado Desconectado

Mensajes: 202

CICOLO_111234


Ver Perfil WWW
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #41 en: 16 Abril 2009, 12:05 »

hola!

en algunos buscadores si buscas ' te da un error diciendo q tienes 1 fallo SQL... Cómo se podría explotar eso?

gracias

salu2


En línea

redkram

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #42 en: 9 Julio 2009, 17:07 »

Citar
function limpieza1($valor)
{
$valor = str_replace($valor,'"',"//////");
$valor = str_replace($valor,"'","//////");
$valor = str_replace($valor,"@","//////");
$valor = str_replace($valor,"or","//////");
$valor = str_replace($valor,"UNION","//////");
$valor = str_replace($valor,"SELECT","//////");
$valor = str_replace($valor,"%2527","//////");
$valor = str_replace($valor,"%2725","//////");
$valor = str_replace($valor,"%20","//////");
return $valor;
}

Hace algun tiempo me curré un pequeño tutorial de inyección sql donde explicaba el problema de muchas webs y sus replace.

Hay un fantástico símbolo que casi nadie remplaza y aun sirve para comprobar muchas webs. El símbolo lo usa casi todo el mundo casi cada dia... al pagar el iva ;), siii es el comodín de mysql (%)<--- el x por ciento o &#37

select * from users where user like '%' and pass like '%'

¿Ahhh que compruebas que necesita mínimo 8 dígitos? ok perdona

select * from users where user like '%%%%%%%%' and pass like '%%%%%%%%'

Además sirve por ejemplo directamente en las urls

http://www.weblaquesea.com/?id=%&provincia=%&pais=%

Respuesta= Un super listado de fichas (bucle de la web) que con un poquito de idea y posiblemente ajax, puedes organizar en un xml dinámico y guardarlo en tu escritorio para luego...

Digamos que con formularios locales apuntando a una web con "error" devolviendo los resultados en ajax y estructurando los datos con Arrays ej: x=split(codigo,"<tr>"), en un xml, luego con ganas y dreamweaver puedes hacer una bd enterita.

Salu2

Redkram
En línea

Og.


Desconectado Desconectado

Mensajes: 822


Aprendiendo de la vida


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #43 en: 31 Julio 2009, 09:37 »

hola!

en algunos buscadores si buscas ' te da un error diciendo q tienes 1 fallo SQL... Cómo se podría explotar eso?

gracias

salu2
pues tecnicamente esta haciendo un llamado a una tabla que solo tiene informacion de busquedas, pero alomejor puedes encontrar algo mas con UNION
En línea

|-
dimitrix


Desconectado Desconectado

Mensajes: 4.836



Ver Perfil WWW
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #44 en: 22 Enero 2010, 14:41 »

Married me!
En línea




Panchz

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #45 en: 6 Noviembre 2010, 20:07 »

duplicated.. srry
« Última modificación: 6 Noviembre 2010, 20:18 por Panchz » En línea

Panchz

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #46 en: 6 Noviembre 2010, 20:15 »

i think u cant use sql injection to login into an username account if the password is encrypted before the query.. heres an example:

-------------------
$password = md5($password)

SELECT User, Password FROM users WHERE User='$Username' AND Password='$password'

--------------
so, if you use this as a password:
' OR ''='
before the query.. it will be encrypted to this:
d20da3888278ec814f6a837f260b60df

so... it will be like this

SELECT User, Password FROM users WHERE User='Example' AND Password='d20da3888278ec814f6a837f260b60df'

doesnt matter what you type on password form..
i think thats like the best security you  can have

however i think u can yet mess with the username... as encripting the username is not used anywhere
« Última modificación: 6 Noviembre 2010, 20:25 por Panchz » En línea

deathspartan217

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #47 en: 27 Julio 2011, 05:52 »

 ;D ;D hola acabo d darme cuenta d esta pagina y recientemente vi este tema, se me hace genial solo q tengo unas dudas...
¿Esto puede funcionar con facebook??
¿ha habido modificaciones en el codigo en estos años q sea indispensable q sepa alguien para llevar a cabo esto?


espero q me den respuesta GRACIAS  :xD :xD :xD
En línea

christian199743

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #48 en: 7 Diciembre 2011, 03:07 »

Amigos me podria ayudar a hacer una inyeccion SQL a esta pagina: https://licensetransfer.elicenser.net:8443/LSWebServices/jsp/Login.jsp TODA UNA COMUNIDAD OCUPA DE ESTA INYECCION PERO SI SE PREGUNTAN que buscamos seria este archivo en ese servidor uno de estos dos:
SYNSOEMU.dll
o
SYNSOACC.dll
Es de un programa que an querido crackear: Nexus 2.2.1
En línea

astinx

Desconectado Desconectado

Mensajes: 111



Ver Perfil
Re: Tutorial de Inyección SQL (SQL Injection)
« Respuesta #49 en: 16 Diciembre 2011, 17:38 »

Disculpame, en el ejemplo de
Código:
<?php
$us=$_POST['usuario'];
$pas=$_POST['pass'];
if($_GET['usuario'] || $_GET['pass']){
die("Hack Attempt");
}
/*Conectamos*/
$conexion = mysql_connect("localhost", "root", "123qwe");
  mysql_select_db("mysql", $conexion);
$sql="SELECT PASSWORD FROM USUARIO WHERE USUARIO.NOMBRE = '$us'";
echo "$sql<br>";
$resp = mysql_query($sql, $conexion) or die(mysql_error());
if($fila = mysql_fetch_array($resp)){
if($fila['PASSWORD']==$pas){
echo "Inicio de sesión exitoso"; // Esto fue modificado
}else{
echo "el password ".$pas." es incorrecto";
}
} //' UNION SELECT MIN(Password),2,3,4,5 FROM USUARIO WHERE NOMBRE = 'zanahoria
?>
Hay algo que no entiendo la consulta quedaria modificada como:
Código:
SELECT PASSWORD FROM USUARIO WHERE USUARIO.NOMBRE = '' UNION SELECT MIN(Password) FROM USUARIO WHERE NOMBRE = ''
,si en el campo usuario ponemos como vos dijiste:
Código:
' UNION SELECT MIN(Password) FROM USUARIO WHERE NOMBRE = '
Y efectivamente, funciona, cree un localhost para probarlo, (Aclaro que estos son mis primeros pasos en SQL Injection), ahora lo que no entiendo es porque funciona, yo corrí la consulta en el Mysql Query Browser y me tira un campo en NULL, ¿Esto quiere decir que si comparamos cualquier cosa contra una variable en NULL nos da verdadero?.
Yo se que mysql_fetch_array se usa para transformar el resultado de una consulta en un arreglo y poder recorrerlo de manera iterativa, ¿Pero esto quiere decir que no pasa nada cuando le decimos que nos devuelva el valor del campo PASSWORD?.
Disculpen, es que esta linea en particular me confunde mucho:
Código:
if($fila = mysql_fetch_array($resp)){
if($fila['PASSWORD']==$pas){
Muchas gracias por detenerse a leer, Saludos!
En línea

La programación hoy en día es una carrera entre los ingenieros de software intentando construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De momento, el Universo está ganando
Páginas: 1 2 3 4 [5] 6 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tutorial: Crear un parche 2 (Inyección de DLL)
Programación C/C++
85 0 1,640 Último mensaje 16 Marzo 2013, 10:27
por 85
Tutorial de Inyección SQL para principiantes
Hacking Linux/Unix
RedTorture 2 5,783 Último mensaje 14 Mayo 2014, 03:57
por RedTorture
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines