Inyección de Código Integrantes de equipo • Federico Hernández González • Guadalupe Esparza López • Carlos Morales de Jesús • Eugenio Reyes Esteban • Marcos Amador Valdivia • Javier Serna Gutiérrez. Grado y Grupo: 9 A Prof. Luis Alberto Ruiz Aguilar. 20/05/2013 Zacualtipán de Ángeles Hidalgo • • • • • • • Introducción Tipos de inyección de código Ejemplos de ataques Ejemplo 1 Ejemplo 2 Evitar la inyección de código Conclusión • La inyección de código es un tipo de ataque que consiste en que los atacantes extraigan información, roben credenciales, tomen control de la página atacada o algún otro tipo de actividades maliciosas. • La inyección SQL consiste en la modificación de las consultas a nuestra base de datos a partir de los parámetros pasados por URL al script en PHP. • Las inyecciones pueden ocurrir siempre que un lenguaje de programación intermedio como PHP procesa datos recibidos por el usuario para generar código en otro lenguaje como SQL o HTML • El problema de las inyecciones no se limita al SQL; existen numerosos tipos de inyecciones de código, entre ellas: – SQL – HTML – Javascript – Embed – Email • Además de cierto tipo de inyecciones que no son de código pero pueden afectar, por ejemplo, al sistema de archivos. • Obtención de la base de datos completa usando sentencias SELECT • Modificación o inserción de datos usando INSERT o UPDATE • Borrado de la base de datos usando DELETE • Ejecución de comandos del sistema operativo usando EXEC master.dbo.xp_cmdshell por ejemplo, el valor de pass sería pass=hack' EXEC master.dbo.xp_cmdshell'cmd.exe dir c:'-• Apagado remoto del servidor pass=hack' EXEC master.dbo.xp_cmdshell'cmd.exe shutdown'-- $usuario=$_POST[’usuario’]; $password=$_POST[’password’]; $sql=”SELECT * FROM usuarios WHERE usuario=’$usuario’ AND password=’$password’”; $result=mysql_query($sql); SELECT * FROM usuarios WHERE usuario=’a’ AND password=’a’ OR ‘1=1′ • Captchas – Es una prueba utilizada para comprobar que el usuario es una persona y no una máquina. Se utilizan para impedir que se pueda tener acceso a la función de un script de forma automática. • Bloquear todos los caracteres especiales que no sean letras ni números. • Validación de formularios • Las contraseñas sean numéricas Las inyecciones de código pueden representar un problema potencial para los sistemas que realizamos, por eso es muy importante enfocarse en la seguridad cuando se desarrolla un proyecto. Referencias. • Astaroth7. (s.f.). Introduccion a la Inyeccion de codigo. Obtenido de 2010: http://foro.elhacker.net/programacion_cc/introduccion_a_la_inyeccio n_de_codigo-t262600.0.html • Cortes, R. (s.f.). Inyecciones SQL. Recuperado el 2011, de http://www.romancortes.com/blog/tag/seguridad/ • (2009). Como Realizar Un SQL Injection **Principiante**, http://www.youtube.com/watch?v=-tbNxhvWl7g • (2011). SQL Inyeccion Basica Para Novatos, https://www.youtube.com/watch?v=aAOv2NCvaec