C'è qualche domanda che posso usare per sapere quale piattaforma SQL sta usando un sito web? (Oracle - MySQL - MSSQL - PostgreSQL - Ingres ....)
C'è qualche domanda che posso usare per sapere quale piattaforma SQL sta usando un sito web? (Oracle - MySQL - MSSQL - PostgreSQL - Ingres ....)
Utilizza il foglio cheat di SQL Injection . La maggior parte dei database ha un modo per interrogare la versione, ad es. %codice%. Se hai già trovato un punto iniettabile che restituisce i dati, prova un paio di quelli finché non ottieni i dati.
metodologia di esempio:
SELECT @@version # fails. Then you know it is not MS SQL or MySQL.
SELECT version() # fails. You know it is not PostGres
SELECT banner FROM v$version WHERE banner LIKE ‘Oracle%’; # Succeeds! You know it is oracle.
Se quelli non utilizzano altri tipi di query. Puoi provare le iniezioni a base temporizzata, ad es. SELECT @@version
, o addirittura eseguendo funzioni come SLEEP 10
. L'utilizzo della sintassi specifica per la versione ti consentirà di trovare rapidamente il database di back-end.
Puoi anche iniziare con alcune ipotesi formulate. Le web app Java spesso usano Oracle. .Net spesso usa MS SQL. PHP usa spesso MySQL. Django usa spesso Postgres. Basta provare query specifiche fino a quando la query non viene eseguita correttamente.
SQLMap può anche aiutare a rilevare le impronte digitali nel database di back-end. Suggerisco una combinazione di utilizzo di sqlmap + test manuale.
Puoi testare sia manualmente che con gli strumenti. Per prima cosa l'analisi manuale determina il luogo in cui esiste l'iniezione SQL nel sito web.
Per trovare l'inserto di iniezione sql o "nell'URL della pagina Web requsted se restituisce un messaggio error , il sito e il parametro sono vulnerabili all'iniezione SQL.
Puoi anche determinare la piattaforma in cui il sito web è costruito utilizzando il messaggio di errore. Ad esempio puoi visitare altoro mutual e accedere come Username e Password come admin e inserisci "nei campi dopo e prima nell'URL specificato, puoi vedere il messaggio di errore che mostra i dettagli sul database in cui è stato creato.
Altrimenti, in altri siti web, utilizzare la versione SELECT @@ nell'URL dove è possibile eseguire sql injection in quel sito Web.
Come ha detto Morgoroth per i test manuali, puoi utilizzare la sqmap
Leggi altre domande sui tag sql-injection