SQL Injection - login bypass [closed]

5

Informazioni di base: SQL Injection come compito scolastico. Bypass di accesso. Dati due campi di immissione nome e password. Confermare tramite il pulsante di risoluzione.

Informazioni su ciò che ho ed è stato in grado di scoprirlo:

  • ovviamente è vulnerabile essere un compito di accedere a un sistema, mentre si dimentica la password ( forma classica con campi di input: nome: INPUT , password: INPUT )
  • viene fornito un suggerimento che il mio Login-ID per la pagina delle attività è sempre accettato, quindi manca solo la password (modulo: nome: "my ID", password: INPUT (?))
  • il server esegue / emula MySQL , ho trovato questo a causa di errori ricevuti durante il tentativo di input diversi (ad es. "OR 1 = 1" -Tricks, Union- Comandi, Outcommenting, ecc.):
  • - > la struttura viene mostrata tramite gli errori di sintassi MySQL: SELECT name,password FROM login WHERE name='xyz' and password='xyz'
  • - > I comandi unionisti funzionano a causa, ad es. errori del numero di colonna
  • Le virgolette sono disattivate (?) o non sarei in grado di evocare comandi SQL, credo
  • L'utilizzo di caratteri GBK per aggirare la manipolazione tramite 'non ha funzionato neanche, sembra che non vengano riconosciuti
  • Nessun codice PHP disponibile
  • Il server restituisce ' task risolto ' quando l'accesso ha esito positivo

Domanda: Quali possibilità mi rimangono per tentare finalmente di accedere al sistema con successo tramite sql injection?

Esempi di input che ho provato:

nome: myID [che è l'ID suggerito dal suggerimento]

password: ' OR '1'='1

  • server restituisce ' risposta errata ' (accesso non riuscito), nessun errore mysql

nome: myID' OR '1'='1' --

password: whatever

  • stesso risultato

nome: myID' AND NOT ('1'='2

password: foo') AND name='myID' LIMIT 1 #

  • stesso risultato

Errori, ad esempio, quando:

nome: myID' OR 1=1

password: whatever

  • server restituisce ' risposta errata ' (accesso non riuscito), genera un errore di sintassi, perché l'input è inserito in ' '
posta vmboy04 31.12.2015 - 16:17
fonte

1 risposta

3

Il meccanismo di autenticazione è implementato nel back-end e quindi ci sono due servizi chiave offerti da molti professionisti della sicurezza:

  • Valutazioni di sicurezza white-box
  • Valutazioni di sicurezza black-box
  • Valutazioni della sicurezza di Gray-box
  • Valutazioni di sicurezza Glass-box

Non entrerò nei dettagli di ciascuna di queste offerte di servizi in quanto è chiaramente un modello aziendale dell'azienda, dell'organizzazione e del modo in cui questi servizi chiave sono offerti, ma per la comprensione tecnica bisognerebbe considerare che dipende dal tipo di servizi i casi di test devono essere preparati.

Per un esempio, uno potrebbe non avere accesso al codice sorgente, e questo non deve fermare un aggressore dato l'ora e il tempo risorse per attaccare un certo punto di accesso, ad esempio in questo caso, una voce di accesso. Quello che dovresti inserire dipende dal codice sorgente, ma come consulente per la sicurezza della black-box, dovresti trovare una base per tentativi di errore su quale deve essere il back-end e di conseguenza preparare i tuoi tentativi.

Questo approccio richiede molto tempo, ma potrebbe essere automatizzato da Burp Suite " Intruder " e un elenco di possibili input potrebbero essere inviati all'intruso per automatizzare il compito per te. Il bypass di autenticazione aggiuntivo è stato descritto qui . Per quanto riguarda gli errori che hai ricevuto, controlla tutti questi elementi seguenti:

  1. Assicurati di non accedere a un accesso back-end honeypot .
  2. Durante l'automazione, assicurati che l'applicazione non abbia utilizzato limiti di velocità.
  3. Se quanto sopra è vero, assicurati di aver regolato i tempi su Intruder.
  4. Se, comunque, le misure di limitazione della tariffa sono basate sulla geo-localizzazione, prova pivots .
  5. Se il sistema restituisce "l'attività risolta", devi richiedere grep l'output dai risultati dell'intruso e quindi indagare su particolari risposte HTTP. Oppure, puoi passare attraverso i "codici di risposta" e selezionare 302 risposte fornite, il sistema non lancia 200 per ogni tentativo (se l'accesso ha successo o meno) o 500 in una fase di errore.

A volte, molti tester sovrastimano e non provano mai metodi più semplici per vedere se funziona admin / admin o lista fornita qui funziona . Dipenderà nuovamente da approcci di prova ed errore senza dover conoscere il codice sorgente esatto ma tentando di enumerare da tutti gli errori che si innescano e quindi costruire il bypass. Prova admin' or '1'='1'-- su entrambi i campi per un esempio insieme ad altri menzionati nell'elenco.

    
risposta data 31.12.2015 - 17:07
fonte

Leggi altre domande sui tag