comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Bypasseando mod_security y ejecutando inyecciones SQL

  • 5 Respuestas
  • 2634 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elefren

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • elefrEn Blog
« en: Abril 06, 2016, 08:24:27 am »
Buenas chicos, aquí os dejo este "artículo" que escribí inicialmente en un blog que tengo, y lo publico aquí para que sea de utilidad a los que desconozcan este método de bypassear el modsecurity.

Introduccion
Como muchos conocemos, por allá por el 2005 con la aparición de las inyecciones SQL y demás agujeros de seguridad en php, Apache implementó un modulo llamado mod_security el cual funciona como una especie de WAF (Web Application Firewall) que bloquea nuestras peticiones a la aplicación cuando detecta valores sospechosos por GET, POST, COOKIE, etc... Hoy en día siguen habiendo muchas aplicaciones web (desde la de la tienda del chapuzas de la esquina, hasta gubernamentales) con este modulo activado en su servidor pensando así sus administradores que está libres de posibles inyecciones y demás.

¿Cómo funciona mod_security?
El mod_security actúa en una capa sobre la ejecución de código, filtrando las peticiones al servidor a las que lleguen parámetros sospechosos como puede ser por ejemplo en una variable GET un "AND 1=1", UNION, entre otros... Entonces si este es el caso el servidor bloquea la peticion mostrándonos una pagina de error. De esta manera nos impide poder realizar una inyección SQL.


Rompiendo el mod_security
Sabiendo que el mod_security se blinda funcionando con un filtrado de expresiones, para evitarlo tan solo hay que saltar ese filtrado, pero claro si en el están incluidas palabras como UNION, UpdateXML, SELECT, WHERE, etc.. ¿cómo conseguimos ejecutar nuestras sentencias? pues muy sencillo, en MySQL existe una sintaxis para ejecutar dichos parámetros solo si el MySQL que se ejecuta es bajo una versión en concreto (ideal para los dump) la cual funciona de la siguiente manera:

Código: You are not allowed to view links. Register or Login
/*!40101 DELETE FROM ejemplo WHERE version=4 */
/*!50000 DELETE FROM ejemplo WHERE version=5 */

El código anterior si lo ejecutamos en una versión 4.x de MySQL solo ejecutará la primera sentencia, pues en la segunda le estamos diciendo que sea en versiones mayores a la 5. ¿Qué conseguimos con esto? pues que el mod_security no tiene filtrada esta sintaxis, es decir que cuando introducimos una petición GET con la sentencia en este formato se la tragará y nos ejecutará la inyección, aquí dejo algunos ejemplos:

Código: You are not allowed to view links. Register or Login
http://www.victima.com/acceso.php?codigo='/!*50000OR*/ 1=1
http://www.victima.com/ver?idc=265' /*!50000AND*/ updatexml(null,concat(0x3a,(SELECT pass FROM tabla LIMIT 0,1)),1)
http://www.victima.com/tfno.php?id=.4'/*!50000UNION*//*!50000SELECT*/1,2,3,4,5,6,7--

Conclusión
Como conclusión final de esta entrada pues creo que sobra decir, que lo mejor es hacer nuestras aplicaciones seguras, y evitar llegar a practicas como estas, pues un WAF, ya sea mod_security u otro en muchos casos no es seguro y la seguridad de nuestra web puede caer. Y en caso de que el WAF fuera seguro, imaginaros que en un momento por algún despiste del administrador, actualización o algo este se desactive, nuestra aplicación quedaría expuesta, así que lo mejor es no depender de estos módulos.
« Última modificación: Abril 08, 2016, 12:50:48 am por EPSILON »
From Canary Islands

Mi blog: You are not allowed to view links. Register or Login

Desconectado rreedd

  • *
  • Underc0der
  • Mensajes: 113
  • Actividad:
    0%
  • Reputación 6
  • Somos Nada Señores
    • Ver Perfil
« Respuesta #1 en: Abril 06, 2016, 12:54:21 pm »
Hola !!
muy bueno su post compañero @You are not allowed to view links. Register or Login  :D
« Última modificación: Abril 06, 2016, 12:55:57 pm por rreedd »

Conectado arthusu

  • *
  • Underc0der
  • Mensajes: 536
  • Actividad:
    10%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #2 en: Abril 06, 2016, 02:01:45 pm »
Me agrada cuando hablas de tiempos atras C': Buen Post! +1

Desconectado DeBobiPro

  • *
  • Underc0der
  • Mensajes: 205
  • Actividad:
    0%
  • Reputación 2
  • Como no sabía que era imposible, lo hice.
    • Ver Perfil
« Respuesta #3 en: Abril 06, 2016, 04:17:57 pm »
Interesante, corto y preciso.
da para pensar bastante .

Muchas gracias!
Nivel 77 You are not allowed to view links. Register or Login

Desconectado EPSILON

  • *
  • Underc0der
  • Mensajes: 365
  • Actividad:
    0%
  • Reputación 0
  • epsilon@crypt.am
    • Ver Perfil
  • Skype: epsilon.root1
« Respuesta #4 en: Abril 06, 2016, 06:48:25 pm »
Muy bien redactado y claro, me gusto. te dejo +c0in.

Saludos!, EPSILON

Desconectado ceroMee

  • *
  • Underc0der
  • Mensajes: 37
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
    • Email
« Respuesta #5 en: Octubre 09, 2016, 02:30:32 am »
oww no sabia esto man  ??? esta muy intersante +1

 

¿Te gustó el post? COMPARTILO!



mod_security y mod_evasive en GNU/Linux CentOS (para detener ataques DDOS).

Iniciado por july

Respuestas: 5
Vistas: 2927
Último mensaje Noviembre 21, 2012, 05:30:47 am
por Adastra
Instalar mod_security para Apache en Linux 64 bits

Iniciado por BlackDead

Respuestas: 0
Vistas: 1327
Último mensaje Agosto 06, 2013, 11:47:02 pm
por BlackDead
Instalación y configuración de Mod_Security

Iniciado por BlackDead

Respuestas: 3
Vistas: 2597
Último mensaje Agosto 25, 2015, 07:16:59 pm
por Vector
Acceder a servicio premium bypasseando el login

Iniciado por wizardsec

Respuestas: 1
Vistas: 1883
Último mensaje Julio 16, 2015, 09:17:11 am
por titiritero
Bypasseando las validaciones de los uploads

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1163
Último mensaje Mayo 25, 2017, 11:52:49 am
por ANTRAX