sqlmap HTTP 405 error en un parámetro POST vulnerable

5

Para fines académicos, necesito explotar una inyección ciega de sql en un formulario paramater que se envía utilizando el método POST. El formulario es muy simple, solo tiene un cuadro de texto de entrada donde se introduce el nombre de un usuario y un botón de envío, la salida producida solo informa sobre la existencia o no del usuario introducido. El código html es:

<html>
<head>
      <title>User info</title>
</head>...

<p> Introduce an user to check if it's in the database </p>   
<form method="post">
      User <input type="text" value="" name="user">
      <input type="submit" value="Check!">
</form>
<hr>
</center>
</html>

Sé que 'guest' es un nombre de usuario válido (devuelve true) y he comprobado manualmente que es vulnerable a la inyección de sql sql introduciendo guest 'y' 1 '=' 1 (que devuelve true), y guest 'y' 1 '=' 0 , (que devuelve false). Una vez que estoy seguro de que es vulnerable, he intentado usar sqlmap para explotar la vulnerabilidad con el siguiente comando:

# sqlmap -u  "http://foo.com/checkuserform" --method "POST" --data "user=guest" --dbms "mysql" -p "user"

Pero parece no poder explotar la vulnerabilidad:

...
    **[00:23:01] [WARNING] the web server responded with an HTTP error code (405) which could interfere with the results of the tests**
    [00:23:01] [INFO] testing if the target URL is stable
    [00:23:02] [INFO] target URL is stable
    [00:23:02] [WARNING] heuristic (basic) test shows that POST parameter 'user' might not be injectable
    ...
    **[00:23:18] [WARNING] POST parameter 'user' is not injectable**
    [00:23:18] [CRITICAL] all tested parameters appear to be not injectable. Try to increase '--level'/'--risk' values to perform more tests. Also, you can try to rerun by providing either a valid value for option '--string' (or '--regexp') If you suspect that there is some kind of protection mechanism involved (e.g. WAF) maybe you could retry with an option '--tamper' (e.g. '--tamper=space2comment')
    [00:23:18] [WARNING] HTTP error codes detected during run:
    405 (Method Not Allowed) - 175 times

Una parte de no poder explotar la vulnerabilidad lo que me sorprende es el error HTTP 405, ya que he forzado el uso de POST en el comando sqlmap (y no puedo reproducir este error si lo reviso). manualmente con un navegador). También he intentado aumentar los valores de los parámetros de nivel y riesgo sin éxito. ¿Tienes alguna idea de por qué está sucediendo?

    
pregunta Toni 22.12.2015 - 10:22
fuente

1 respuesta

3

Mi método preferido para usar SQLmap es enviar una solicitud usando un navegador que se direcciona a través de Burp, copiar la solicitud de Burp en un archivo de texto, luego llamar a sqlmap con el parámetro -r que apunta al archivo de texto.

Esto garantiza que el envío vaya a la ubicación correcta, con los encabezados y cookies necesarios.

En este caso, sospecho que usted ESTÁ ENVIANDO a una ubicación incorrecta; por su descripción, parece que podría estar haciendo una llamada de Javascript a un servicio backend y luego proporcionar un cuadro de alerta o actualizar el contenido de la página. Usar un proxy para observar esto le permitiría verificar, incluso si los scripts en la página están ofuscados o son excesivamente complejos para permitir un examen razonable.

    
respondido por el Matthew 22.12.2015 - 12:21
fuente

Lea otras preguntas en las etiquetas