Saludos nuevamente mis queridos fieles lectores luego de mucho tiempo de
estar inactivo en este mi humilde blog llego a ustedes, en esta
oportunidad aprenderemos a como hacer una inyección sql en método POST,
antes de comenzar con ello narrare un poco sobre lo que sucede con las
inyecciones SQL al insertar sentencias validas enviando datos a la misma
DB y obteniendo el famoso bypass , luego haremos la famosa inyección en
Método POST :
Una forma de encontrar paginas vulnerables de una manera fácil y floja es utilizando las famosas dork de google, o si deseamos obtener precisamente de una web en especial ya vamos a la auditoria en su escaneo en la plataforma en general :
Ejemplos de Dorks :
Una forma de encontrar paginas vulnerables de una manera fácil y floja es utilizando las famosas dork de google, o si deseamos obtener precisamente de una web en especial ya vamos a la auditoria en su escaneo en la plataforma en general :
Ejemplos de Dorks :
- inurl:adminlogin.aspx
- inurl:admin/index.php
- inurl:administrator.php
- inurl:administrator.asp
- inurl:login.asp
- inurl:login.aspx
- inurl:login.php
- inurl:admin/index.php
- inurl:adminlogin.aspx
Algunas sentencias de ataque de vectores de mysql :
User: 1'or'1'='1
Password: ' or 1=1--
Dichos vectores son mas que sentencias de autologeo que nos van a permitir tener un inicio de sección en este caso del primer "Usuario Registrado" como seria en cualquier plataforma como el administrador.. pero tambien podemos utilizar dichos vectores como un indicador de hay una vulnerabilidad en una plataforma web y poder hacer la explotación
Vayamos por el Bypass algo conocido y utilizado por ejemplo entraremos a esta web , como vemos nos parece el incio de usuario verdad ?? Ok vamos a llenar dichos registros con una sentencia poco conocida por muchos la cual es la siguiente :
1' or (sleep(2)+1) limit 1 --
Como vemos este Bypass tiene un sentencia estructurada muy completa ya que nos dara una validación de "2" tipos de privilegios estándares .
Web de prueba
http://www.prueba.com/foro/index.ngmf
Ahora añadiremos dicho vector 2
1' or (sleep(2)+1) limit 1 --
como vemos acabamos de entrar a un panel administrativo y podemos hacer lo que deseamos por medio de dicho vector de logeo, pero que pasaría si al ejecutar dicho ataque nos arroja un error de sentencia estructurado de MySQLi , pues vayamos al ataque :
Web de prueba
http://www.prueba.com/consulta.html
pondremos el siguiente vector para probar la web :
' or 1=1--
como vemos al realizar dicha consulta que enviamos mediante la sentencia " or'1'='1
" automaticamente tenemos como respuesta errorea de dicho servidor como
vemos en la imagen , ahora podemos saber que la web es vulnerable y
pasaremos a explotarla, pero como vamos a saber que parametro es
vulnerable ?
ya
que es un parametro "POST" , debemos identificar las cabeceras
de envíos que son enviados por respuesta a la web, pero como podemos
capturarlos ? , para ello tenemos un complemento en Firefox llamado :
Live HTTP Headers
Link de descarga : https://addons.mozilla.org/es/firefox/addon/live-http-headers/
Automáticamente nos saldrá el icono en nuestros complementos y procedemos abrir dicha aplicación :
como vemos nos sale vacio ya que todavia no se ah enviado respuestas a
la web, lo que haremos sera nuevamente enviar la sentencia ' or 1=1-- en dicho encuesta de la web .
Como vemos hemos capturado muchas cabeceras el dicho proceso, pero los que nos interesa es buscar la
cabecera la cual nos de como referencia el parámetro "POST" con la URL
donde hemos iniciado y posteriormente a la que nos ah arrojado el error
de SQLi
Datos Capturados de nuestro Interés :
2- Parametro POST
http://www.prueba.com/ogmre/ejecuta_notas_ol_cur.php
2- Cabeceras capturadas
dcodcur=%27+OR+1%3D1--&dcodtur=%27+OR+1%3D1--&dcodsec=%27+OR+1%3D1--
Como vemos las cabeceras están formuladas por " %27+OR+1%3D1-- " que
por defecto al hacer una sentencia o unas palabras van a surgir dichos
caracteres opcional-mente , lo que haremos sera formar bien las
cabeceras para poder tener una Inyección SQLi positivo :
como vemos el primer formulario es el siguiente :
dcodcur=%27+OR+1%3D1--&
dcodcur = es el parámetro POST vulnerable :
%27+OR+1%3D1 = es la sentencia formulada con terminación numeral "1"
-- = es el espacio otorgado para distanciar la sentencia
& = es el vector que separa a los parámetros :
entonces una ves comprendido vamos a añadir la formulación correcta del primer parámetro :
como vemos el primer formulario es el siguiente :
dcodcur=%27+OR+1%3D1--&
dcodcur = es el parámetro POST vulnerable :
%27+OR+1%3D1 = es la sentencia formulada con terminación numeral "1"
-- = es el espacio otorgado para distanciar la sentencia
& = es el vector que separa a los parámetros :
entonces una ves comprendido vamos a añadir la formulación correcta del primer parámetro :
dcodcur=1
formulación correcta de todo los parámetros :
dcodcur=1 dcodtur=1 dcodsec=1
sqlmap.py -u "http://www.prueba.com/ogmre/ejecuta_notas_ol_cur.php" --data="dcodcur=1 dcodtur=1 dcodsec=1" --level=5 --risk=5 --dbs
No hay comentarios:
Publicar un comentario