Você está na página 1de 2

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA DE SISTEMAS


INGENIERA EN SISTEMAS INFORMTICOS Y DE COMPUTACIN

PERODO ACADMICO: 2014-B


ASIGNATURA: SIC814 Gestin de Seguridad Informtica
PROFESOR: Jenny Torres
TIPO DE INSTRUMENTO: Actividad de Aprendizaje 1
FECHA DE APLICACIN: 02/07/2015
NOMBRE: Jonathan Fernando Imbaquingo Castillo
Tema:
SQL Injection
Objetivo:
Caracterizar un ataque de esta lista, buscar un ejemplo y la tcnica para solucionar.

Caractersticas:
SQL Injection es uno de los muchos mecanismos de ataque web utilizados por los hackers para
robar datos de las organizaciones. Es quizs una de las tcnicas ms comunes de ataques de
capa de aplicacin utilizados en la actualidad. Es el tipo de ataque que se aprovecha de la
codificacin incorrecta de sus aplicaciones web que permite a los hackers para inyectar
comandos SQL en digamos un formulario de acceso para que puedan tener acceso a los datos
contenidos en la base de datos.
En esencia, se plantea la inyeccin de SQL porque los campos disponibles para la entrada del
usuario permiten que las sentencias SQL para pasar a travs y consultar la base de datos
directamente [1].
Debido a la falta de validacin en la entrada de datos y a la conexin a la base de datos con
privilegios de super-usuario o de alguien con privilegios para crear usuarios, el atacante podra
crear un super-usuario en la base de datos [2].
Ejemplo [3]:

Formulario:

<form method="post" action="http://testasp.vulnweb.com/login.asp"> <input


name="tfUName" type="text" id="tfUName"> <input name="tfUPass" type="password"
id="tfUPass"> </form>

Query:

SELECT id FROM logins WHERE username = '$username' AND password = '$password

Ataque:

SELECT id FROM logins WHERE username = 'Joe' AND password = 'anything' OR


'x'='x'

Tcnica para solucionar [2]:

Nunca se conecte como superusuario o como propietario de la base de datos. Siempre


utilice usuarios personalizados con privilegios muy limitados
Emplee sentencias preparadas con variables vinculadas. Son proporcionadas por PDO,
MySQLi y otras bibliotecas
Compruebe si la entrada proporcionada tiene el tipo de datos previsto. PHP tiene un
amplio rango de funciones para validar la entrada de datos, desde las ms simples,
encontradas en Funciones de variables y en Funciones del tipo carcter (p.ej.,
is_numeric(), ctype_digit() respectivamente), hasta el soporte para Expresiones
regulares compatibles con Perl
Si la expresin espera una entrada numrica, considere verificar los datos con la funcin
ctype_digit(), o silenciosamente cambie su tipo utilizando settype(), o emplee su
representacin numrica por medio de sprintf().

Bibliografa:
[1] Acunetix, [En lnea]. Available:
injection/. [ltimo acceso: 02 07 2015].

https://www.acunetix.com/websitesecurity/sql-

[2] Inyeccin de SQL, [En lnea]. Available: http://php.net/manual/es/security.database.sqlinjection.php. [ltimo acceso: 02 07 2015].
[3] w3school.com, [En lnea]. Available: http://www.w3schools.com/sql/sql_injection.asp.
[ltimo acceso: 02 07 2015].

Você também pode gostar