jueves, 9 de mayo de 2019

Testing SQL INJECTION- Parte 2

Segunda parte de nuestra mini - serie de SQL INJECTION en la que hablare de como testear una SQL injection.

las aplicaciones web construyen las sentencias SQL, en que se mezclan con los datos suministrados por el usuario:


la variable $id contiene datos suministrados por el usuario, debido a esto el usuario puede proporcionar informacion adicional a la sentencia SQL original, como por ejemplo $id= 10 or 1=1 cambiando la logica de la sentencia SQL.

los ataques de SQL INJECTION se pueden dividir en las tres siguientes clases:


Inband: los datos se extraen utilizando el mismo canal que se utiliza para inyectar el código SQL. (web page).

Out-of-Band: los datos se recuperan utilizando un canal diferente ( por ejemplo se genera un correo electrónico con los resultados de la consulta y se envía al testeador).

Inferential or Blind: no hay transferencia real de datos, pero el testeador es capaz de reconstruir la información enviando peticiones particulares y observando el comportamiento resultante del servidor DB.

si la aplicación devuelve un mensaje de error generado por una consulta incorrecta, entonces puede ser mas facil para un atacante reconstruir la lógica de la consulta original y hace una inyeccion exitosa.

si la aplicación oculta los detalles del error, entonces el testeador debe realizar ingenieria inversa a la logica de la consulta original.


Técnicas comunes de SQL Inyection:

las 5 técnicas comunes para explotar fallas de SQL Inyection, a veces estas técnicas pueden ser combinadas;

Union Operator: Se utiliza cuando la falla de SQL Inyection ocurre en una instruccion SELECT, lo que permite combinar dos consultas en un unico resultado.

Boolean: utilice las condiciones booleanas para verificar ciertas condiciones son verdaderas o falsas.

Error Based: esta técnica obliga a la base de datos a generar error, dando al atacante o testeador información sobre la cual pueda refinar su inyección.

Out-Of-Band: técnica utilizada para recuperar datos utilizando un canal diferente.

Time Delay: utilice comandos de la base de datos ( Sleep) para retrasar las respuestas en las consultas condicionales. Es útil cuando el atacante no tiene algún tipo de respuesta de la aplicación.


PD: Seguimos con la tercera parte, llamada Detection Techniques;


martes, 7 de mayo de 2019

SQL INJECTION- Parte 1

Bueno esta es una mini serie que va paralela a la de los retos, en si para explicar como es un ataque de SQL INJECTION, parte numero 1, 

primero que nada OWASP ( OPEN WEB APPLICATION SECURITY PROJECT) cataloga a la inyección, primera en su lista en los diez riesgos mas críticos en Aplicaciones Web.




un ataque por SQL INJECTION consiste en inyectar una consulta SQL por medio de los datos de entrada desde el cliente hacia la aplicación.

cuando este ataque es exitoso puede leer información sensible desde la base de datos, modificar información (insert/update/delete), ejecutar operaciones de administración sobre la base de datos, recuperar el contenido de un determinado archivo presente sobre el sistema de archivos del DBMS(sistema de gestion de base de datos) y en algunos casos emitir comandos al sistema operativo.


los ataques por SQL INJECTION permiten a los atacantes suplantar identidad, alterar datos existentes, causar problemas de repudio como anular transacciones o cambiar balances, permite la revelacion de todos los datos en el sistema, destruir los datos o si no volverlos inasequibles.

SQL INJECTION se ha convertido en un problema común con sitios web que cuentan con base de datos. la falla es fácilmente detectada y fácilmente explotada, y como tal, cualquier sitio o paquete de software con incluso una mínima base de usuario es propenso a ser objeto de un intento de ataque de este tipo.


PD: Proxima Parte Testing SQL INJECTION

domingo, 5 de mayo de 2019

Hackthis-Javascript 1, 2 , 3

algunos retos de la pagina hackthis esta vez haciendo la categoria de javascript, son retos en los que tienes que fijarte bien el código y probar hasta que llegues a una respuesta;

Javascript 1 : 




Javascript 2:




probando varias formas conclui que el codigo estaba hecho para la longitud de la contraseña, usted puede hacer un alert(length) y vera la longitud que puede tener la contraseña para pasar este reto;


Javascript 3:




ahora probamos haciendo un alert a thecode; 


y walaa retos pasados 

viernes, 3 de mayo de 2019

Sql injection-Wechall

En este reto de la pagina wechall, se llama mysql, en el hay que averiguar como vulnerar su inicio de sesión, mas bien esta técnica se llama sql injection (SQL_injection), otras paginas que nos pueden orientar sobre este tema; 

(login_bypass), OWASP_inyeccion_ciega), y también encontré una donde podemos practicar técnicas relacionadas con sql injection,
(Bricks).

con respecto al reto esta era la imagen que nos daban; 


como era un login bypass, fui recopilando informacion y ejercitando con bricks, hasta que probe varias formas de una inyeccion login bypass. (bypass-cheat-sheet).


esto mas rapido se puede utilizar burp-suite, pero yo opte por ir mas manual jajaja;


y walaaa reto pasado de sql injection;