Elena de Vicente
Diferencias entre ataques XSS y SQL tres ejemplos
de cada uno
La diferencia clave entre la inyección de XSS y SQL es que el XSS (o Scripting Cross
Site) es un tipo de vulnerabilidad de seguridad informática que inyecta código malicioso
al sitio web para que el código se ejecute en los usuarios de ese sitio web por el
navegador, mientras que la inyección de SQL es otro mecanismo de piratería del sitio
web que agrega código SQL a un Cuadro de entrada de formulario web para obtener
acceso a los recursos o para realizar cambios en los datos.
Cada organización mantiene sitios web, que ayudan a mejorar el negocio y la
rentabilidad. Una aplicación web contiene el lado del cliente y el lado del servidor. El
lado del cliente incluye las interfaces de usuario para interactuar con la aplicación. El
lado del servidor incluye la base de datos. Por lo general, hay amenazas que afectan el
funcionamiento adecuado de la aplicación. Dos de ellos son la inyección XSS y SQL.
XSS significa Scripting de Cross Site, y es uno de los ataques de sitios web más
comunes. Puede afectar ese sitio web en particular, así como los usuarios de ese sitio
web. El lenguaje más común para escribir código malicioso para el ataque XSS es el
JavaScript. XSS puede robar cookies de los usuarios, cambiar la configuración del
usuario, mostrar varias descargas de malware y muchas más.
Hay dos tipos de XSS. Son el XSS persistente y no persistente. En XSS persistente, El
código malicioso guarda al servidor en la base de datos. Entonces se ejecutará en la
página normal. En XSS no persistente, El código malicioso inyectado se enviará al
servidor a través de una solicitud HTTP. Por lo general, estos ataques pueden ocurrir en
los campos de búsqueda.
XSS SQL
DEFINICION Es un tipo de Coloca un código
vulnerabilidad en malicioso en las
aplicaciones web que declaraciones SQL a través
consiste en inyectar de la entrada de la página
mediante scripts del lado web, a través de los loging
del cliente en páginas web o formularios de las
código malicioso para que páginas web
el código se ejecute en los
usuarios de ese sitio web
LENGUAJES JSS SQL
Ejemplos
XSS
Imagina una aplicación web con un formulario de inicio de sesión. El código backend
verifica la identificación del usuario con una consulta SQL como esta:
SELECT * FROM users WHERE email = $_POST['email'] AND password =
md5($_POST['password']);
Si los valores de $_POST[] no se desinfectan adecuadamente, un atacante podría
manipular la consulta. Por ejemplo, si ingresan ' OR '1'='1 como contraseña, la consulta
se convierte en:
SELECT * FROM users WHERE email = '[email protected]' AND password =
md5('' OR '1'='1');
Esto permitiría al atacante iniciar sesión sin conocer la contraseña real
Inyection SQL
Supongamos que una aplicación web tiene un campo de búsqueda que ejecuta una
consulta SQL como esta:
SELECT * FROM productos WHERE nombre LIKE '%$_GET['busqueda']%';
Si el atacante ingresa ' OR '1'='1 en el campo de búsqueda, la consulta se convierte en:
SELECT * FROM productos WHERE nombre LIKE '%' OR '1'='1%';
Esto devolverá todos los productos de la base de datos, ya que la condición siempre es
verdadera3.