Come viene eseguito un attacco di iniezione di stringhe di connessione? [chiuso]

-1

Mi piacerebbe sapere come viene eseguito un attacco di iniezione di stringhe di connessione?

La stringa di connessione è un insieme di coppie chiave / valore separate da un punto e virgola. Sono utilizzati dalle applicazioni Web per connettersi al database.

Se un'applicazione Web crea una stringa di connessione utilizzando la concatenazione di stringhe dinamiche, per connettersi al database in base all'input fornito dagli utenti, tale applicazione Web è vulnerabile all'attacco di attacco della stringa di connessione.

Spiega in che modo un utente malintenzionato può sfruttare questa opportunità per accedere ai dati dal database e, se possibile, fornirmi un esempio.

    
posta Varun CK 31.01.2018 - 10:29
fonte

1 risposta

3

Alcuni fornitori di database hanno l'algoritmo "last one wins". Quindi, se esiste una coppia KEYWORD = VALUE trovata più di una volta nella stringa di connessione, viene utilizzato il valore associato alla ricorrenza LAST.

Quindi in un'applicazione web, se un utente immette il nome utente e la password; una stringa di connessione viene generata per connettersi al database back-end. Ad esempio:

Data Source = myDataSource; Initial Catalog = db; Integrated Security = no; User ID = myUsername; Password = XXX;

Dopo aver inserito username e password se l'autore dell'attacco aggiunge qualcosa come

Intergrated Security = true;

la stringa diventa

Data Source = myDataSource; Initial Catalog = db; Integrated Security = no; User ID = myUsername; Password = XXX; Intergrated Security = true;

ora qui Sicurezza integrata = no; è sovrascritto da Intergrated Security = true; dal principio "l'ultimo vince".

L'applicazione Web si collegherà al database utilizzando l'account del sistema operativo in cui è in esecuzione l'applicazione per evitare l'autenticazione normale.

    
risposta data 31.01.2018 - 12:07
fonte

Leggi altre domande sui tag