Di recente mi è stato concesso un sottodominio per provare e sfruttare SQLi: gov.ns.agency . A differenza di quello che vedrei nella maggior parte delle esercitazioni, non posso realmente inserire parametri nell'URL come vedrei ovunque.
Ecco cosa ho provato:
-
Nella pagina di accesso, qualsiasi username sufficace con password:
' OR '1'='1
e sono indirizzato a gov.ns.agency/ utenti . Qui un modulo restituisce se un utente esiste. Dovrei ottenere informazioni dalle colonne 'nome' e 'pass' dalla tabella 'utenti'. C'è anche un suggerimento che MySQL è il database e le richieste inviate sono GET e non POST ad eccezione di alcune query che restituiscono un errore interno di 500 server. -
'UNION ALL SELECT NULL,version()'--
ha restituito la versione 8.0.11 di MySQL - l'omissione di virgolette singole restituirebbe 'utente non trovato'. -
'UNION SELECT 'Found', COLUMN_NAME FROM information_schema.columns WHERE table_name = 'users' AND column_name LIKE 'pa%
restituito [nome] Trovato - > [Priv] passare. Sto ancora grattando la testa su cosa sia 'priv', potrebbe descrivere i privilegi? amministratore forse? -
'UNION ALL SELECT NULL,concat(schema_name) FROM information_schema.schemata'
questo darebbe nomi DB ma invece mi ha dato un errore interno di 500 server.
Sono abbastanza nuovo nei test di penetrazione e non sono sicuro di quale query otterrebbe le tabelle e nemmeno come utilizzerei strumenti come SQLMap o Burpsuite per farlo, o anche come mi avvicinerei a questo tipo di sito in cui non posso nemmeno inserire query nell'URL (che normalmente termina con .php? id = 123) quindi qualsiasi suggerimento sarebbe molto apprezzato!