Tutorial de Inyección SQL (SQL Injection)

Iniciado por sirdarckcat, 10 Diciembre 2005, 04:34 AM

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

Liebig

Hola, ya tengo el codigo fuente dela inyeccion, en que programa escribo el cogigo fuente, para inyectarlo, y como lo subo a la red para que lo inyecte

ZyrroX

#31
Bueno a ver...... lei el tuto y mas o menos lo voy pillando, pero tengo problemillas a la hora de realizar las pruebas con el hackme.php ..... pero me pide el archivo login.php tambien  :huh:

Despues seniorX puso el codigo, pero claro en su codigo parece que hace falta el archivo config.inc.php

Alguien sabe como es ese archivo??
(tengo el appserv funcionando y con magicquotes en off, pero no logro que funcione la parctica)

A ver si alguien me puede guiar. Saludos.

farra007

para evitar la inyeccion usar esta funcion:




if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
case "text2":
      $theValue = ($theValue != "") ? "" . $theValue . "" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
case "like":
      $theValue = ($theValue != "") ? "'%" . $theValue . "%'" : "NULL";
      break;
case "likedespues":
      $theValue = ($theValue != "") ? "'" . $theValue . "%'" : "NULL";
      break;
case "likeantes":
      $theValue = ($theValue != "") ? "'%" . $theValue . "'" : "NULL";
      break;
  }
  return $theValue;
}
}


:ohk<any>

Muy bueno, al menos para mi que recién me inicio en esto del SQL Injection  :P
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

zharghost

muy interesante el tutorial aunque la verdad mucho no etniendes esto cada archivo que ponen al inicio tienen que tener uds ya un sistema basico web con un index.php o index.html con login para que puedan practicar en uno real bueno la menos ais lo hago yo lo que si me gustaria profundizar mas en esto, lei un poko de un manual de "blinded" y al verdad es muy bueno seria buena idea que tambien lo posteen nuestros amigos Mod's y si no lo ponen lo posteare yo a ver que aportes recibimos

encurto

Buenas, estoy haciendo un trabajo sobre MySQL injection y para ello he hecho un simple ejemplo que consta de un formulario que tiene un input text donde introducimos un nombre de usuario. Cuando le doy al boton llamo a un php que ejecuta una consulta mysql

"SELECT * FROM Usuarios WHERE login = '{$_POST['login']}'"

Ahora lo que quiero hacer es demostrar el tipico ejemplo de que si en el input text escribo el siguiente login  algo' OR '1'='1 voy a poder loguearme siempre.
Mi problema es que al imprimir $_POST['login'] me devuelve esto: algo\' OR \'1\'=\'1 por lo que la inyeccion sql no me funciona.

¿Sabeis como puedo evitar que php me incruste el caracter \' ?

Gracias!

UberCracker

Hola he estado probando eso de inyecciones SQL en una web php pero me sale igual que Encurto es decir este error:

ERROR : El usuario '\' OR 1=1--' no existe, el password es incorrecto, o ya fue registrado. Intente nuevamente el registro

el sistema antepone el \ eso se debe a la configuracion del php? hay alguna manera de saltar esa proteccion?

espero respuestas!

se agradece de antemano!



fable2

y ¿alguien conoce una tecnica si no tengo ni el user ni el pas?

Darioxhcx

Cita de: fable2 en  9 Marzo 2009, 07:03 AM
y ¿alguien conoce una tecnica si no tengo ni el user ni el pas?
magia ?
explicate bien xD
yo tampoco tengo ni el user ni el pass de una web , como entro ?
es lo mismo man .__.
hay que ser explicitos en las preguntas
saludos

i-node

#39
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?