Sqlmap probando encabezados HTTP

3

Me preguntaba si sqlmap puede probar los encabezados HTTP en busca de vulnerabilidades de SQL. Sé que si uso --level>=3 , entonces buscará automáticamente los encabezados HTTP de User-Agent y Referrer, pero también me gustaría verificar los demás.

Encontré las opciones --header , que puedo usar para especificar los encabezados que se enviarán en las solicitudes, pero no tengo idea de si sqlmap realmente probará esos encabezados. Digamos que quiero agregar un encabezado:

CustomHeader: testing

a la solicitud http. Agregaría --headers="CustomHeader: testing" a la línea de comando sqlmap y luego le podría decir específicamente a sqlmap que pruebe las vulnerabilidades de SQL en el encabezado HTTP CustomHeader con la opción -p , como esto:

Testable parameter(s)

Switch: -p

By default sqlmap tests all GET parameters and POST parameters. When the value of --level is >= 2 it tests also HTTP Cookie header values. When this value is >= 3 it tests also HTTP User-Agent and HTTP Referer header value for SQL injections. It is however possible to manually specify a comma-separated list of parameter(s) that you want sqlmap to test. This will bypass the dependence on the value of --level too.

For instance, to test for GET parameter id and for HTTP User-Agent only, provide -p id,user-agent.

Entonces el comando podría ser:

-p customheader

¿Alguien sabe cómo probar realmente los encabezados HTTP personalizados con sqlmap ?

    
pregunta eleanor 22.01.2013 - 17:00
fuente

2 respuestas

6

A continuación hay un fragmento de código de ./sqlmap/lib/controller.py que define el comportamiento --level :

Parecepersonalizado la inyección de cabecera es compatible (desde hace solo una semana - hazlo también con un git):

  

ahora es posible hacer algo como esto:
--user-agent="sqlmap*"
  o
--referer="target.com*"
  o
--headers="User-Agent:test*\nReferer:bla"
  o
--headers="Foo:bar*"
  o (marcar con un carácter de asterisco * dentro del archivo de solicitud):
-r request.txt
  o
  ..

    
respondido por el Tate Hansen 22.01.2013 - 20:03
fuente
1

Tengo entendido que SQLmap actualmente solo admite pruebas de tres campos de encabezado. Del manual:

  

Las pruebas proporcionaron los parámetros GET, los parámetros POST, los valores del encabezado de la cookie HTTP, el valor del encabezado HTTP User-Agent y el valor del encabezado del HTTP Referer para identificar y explotar las vulnerabilidades de inyección de SQL. También es posible especificar una lista separada por comas de parámetros específicos para probar

Entonces, UserAgent, Cookies and Referrer. Puede establecer campos de encabezado personalizados utilizando la opción de encabezados = HEADERS. Sin embargo, en mi prueba, esto no probó el campo dado para la inyección, sino que simplemente envió el valor suministrado.

Hace poco escribí una herramienta para auditar todos los campos de encabezado HTTP, pero el número de pruebas que realiza está pálido en comparación con SQLmap. Actualmente solo realiza pruebas de SQLi basado en errores, pero también arrojará algunos bytes nulos en los campos del encabezado. Sin embargo, probará todos los campos de encabezado, incluidos los campos personalizados. Si desea verlo, puede encontrar el código aquí:

enlace

Además, creo que esta herramienta puede ofrecer algunas de las funciones que está buscando.

enlace

No creo que actualmente pruebe todos los campos de encabezado, pero no estoy 100% seguro de eso. Supongo que las pruebas SQLi de Enema también son mucho más amplias que con pyLobster.

    
respondido por el nopslip 22.01.2013 - 19:31
fuente

Lea otras preguntas en las etiquetas