He encontrado una simple vulnerabilidad de SQL ciego booleano y quiero que sqlmap haga la iteración por mí, pero no parece funcionar, tengo la impresión de que intenta comenzar en un punto en el que estoy muy lejos. Aquí están los detalles. La vulnerabilidad es así
http://host/path?param=123
y puedo consultar de esta manera
http://host/path?param=123' or 10 = (select len(system_user()));--
(URL codificada por supuesto). Si la segunda condición o condición es verdadera, obtendré en algún lugar de la respuesta "Encontrados 1000 hits". Si es falso habrá "0 resultados encontrados". Así que ahora puedo hacer una búsqueda binaria fácilmente con
http://host/path?param=123' or 100 < (select ascii(substring(system_user(), 1, 1));--
carácter por carácter (es MS SQL Server en caso de que no lo hayas notado). Esto parece tan fácil que no puedo entender que sqlmap me sigue diciendo que "param no parece ser inyectable". Aquí está la llamada sqlmap que he intentado:
sqlmap -u "http://host/path?param=123" -p param --current-user --dbms mssql --prefix="123' or " --suffix=";--" --risk 3 --level 2
He jugado con --risk, --level y --technique = B y también --string="Found 1000 hits". Nada ayuda. ¿Cómo puedo decirle a sqlmap que no busque nada sino que simplemente haga esta tonta iteración?