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
' '