Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/08/2011, 22:11
Avatar de Sourcegeek
Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Duda sobre seguridad imagen y Hackeo

Necesitas más que simples if para tener resultados
Existen múltiples métodos de hacking.. XSS, XSRF, DDoS, SQLi...
Por ejemplo el XSS es un tipo de inyección HTML. Digamos que por ejemplo tengo un foro y voy a poner un post donde el campo es vulnerable. Si pongo:
<script>alert();</script> y le doy en preview, me saldrá un alert. Ésto quiere decir que el formulario es vulnerable y aceptará cualquier HTML. Ahora, puedo poner algo así:
Código HTML:
Ver original
  1. <div style="position:fixed; width:100%; height:100%; background-color:#000; color:#FFF;">Mi texto</div>
Si sabes algo de HTML, te darás cuenta que eso es para que el div se superponga en toda la página y tenga el tamaño de la ventana. Como el formulario es vulnerable, cuando quieras ver el post, verás el div superponíendose. Ésto se previene convirtiendo < y > a sus respectivas entidades HTML para que el navegador no lo interprete como tal, de ésta manera aparecerá <b>hola</b> (por ejemplo) y no hola en negritas.

La SQLi es más avanzada. Consiste en modificar Query's SQL a manera de que nos dé mas información de la común... Por ejemplo, supongamos que tengo una tabla con tres campos (id, usuario, password). Tengo un script que por medio del usuario, me trae su contraseña, obviamente tienes que saber el usuario. Supongamos que el script se usa como index.php?usuario=usuarioejemplo Y el código es:
Código PHP:
Ver original
  1. $user = $_GET['usuario'];
  2. $query = mysql_query("SELECT * FROM tabla WHERE usuario = '$user'");
  3. while($res = mysql_fetch_assoc($query)) {
  4. echo $res['password'].'<br />';
  5. }
Como verás, lo que le pase por index.php?usuario= será reemplazado por $user. Entonces, si hago algo así:
index.php?usuario=' or '1'='1
La query quedará como:
Código PHP:
Ver original
  1. $query = mysql_query("SELECT * FROM tabla WHERE usuario = '' or '1'='1'");
Esto se traduce como: Selecciona todo de tabla donde el usuario sea un campo vacío Ó donde 1 sea igual a 1.
Obviamente siempre 1 es igual a 1, entonces traerá todos los password. Ésto se soluciona escapando las comas (\') Pero
no sólo así, existe tambien INNER JOIN.

En fin, necesitas leer un poco para entender, es un tema algo extenso

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Última edición por Sourcegeek; 27/08/2011 a las 22:18