Uso del agente de usuario y entradas para inyección SQL con ModSecurity WAF

1

Estoy tratando de probar un sitio web de desafío utilizando ModSecurity como WAF. Cuando puse ' en el agente de usuario obtuve un error de MySQL.

  

Tienes un error en tu sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de '' '') 'en la línea 1

Ahora estoy intentando explotarlo con este encabezado:

User-Agent: brick') order by 15 --+

El resultado es:

  

Tienes un error en tu sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de '') 'en la línea 1

También encontré otra entrada que es vulnerable a la inyección de SQL. Creo que quizás sea más fácil de explotar ...

' order by 15 --+

Intenté inyectar como este ejemplo y funciona el resultado

Unknown column '15' in 'order clause' etc ..

pero cuando probé order by 2

obtuve este resultado:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by 2 --  ', '', '', '', '5', 'Lbs', '', 'Mozilla/5.0')' at line 1

¿Alguna idea sobre cómo explotar?

    
pregunta user3771906 20.07.2016 - 02:20
fuente

1 respuesta

3

El error que recibe es de MySQL, no de modsecurity. Le informa que la declaración SQL que el servidor ha construido no es válida.

Por ejemplo, tal vez la consulta SQL se construye así:

UPDATE clients SET useragent='$useragent'

Con tu ejemplo, esto se convertiría en

UPDATE clients SET useragent='brick') order by 15 --+'

Esto es claramente inválido, debido al paréntesis.

Para explotar esto, debes conocer la consulta exacta o adivinar la consulta y probar algunos valores diferentes.

    
respondido por el Sjoerd 20.07.2016 - 09:10
fuente

Lea otras preguntas en las etiquetas