Iniezione SQL in un URL del servizio Web come valore parametro [chiuso]

0

Ovviamente SQL Injection tramite il payload di un messaggio è una pratica molto comune e quindi è sempre la chiave per coprire questo (ho già nel mio codice). Tuttavia mi chiedo solo quanto sia possibile per SQL Injection tramite l'URL e se questo sia possibile come metodo effettivo per SQL Injection.

Fornirò un URL di esempio per descrivere meglio la mia domanda. Se ho un URL come questo con l'istruzione SQL da utilizzare per Injection incluso in un parametro come valore (si noti che il 'SELECT' potrebbe essere una qualsiasi query SQL):

link

Vorrei sapere se questo è un modo valido e questo funzionerebbe davvero per gli hacker in termini di tentativi di iniettare nel back-end del servizio web desiderato e, in tal caso, qual è il modo migliore per affrontare la copertura per questo?

    
posta edwoollard 25.03.2015 - 00:50
fonte

2 risposte

1

Le iniezioni SQL non hanno nulla a che fare con l'applicazione che accetta o meno i parametri URL. Funzionano con qualsiasi input, che si tratti dell'URL, del corpo della richiesta, di un cookie, di un'intestazione HTTP o persino dei dati della propria applicazione (ad esempio una stringa memorizzata nel database). Non importa.

Quindi non si tratta dell'origine dell'input. È ciò che fai con l'input. Se si prendono dati dinamici e si inserisce semplicemente in una query SQL, si tratta di una potenziale vulnerabilità. E sì, questo accade molto spesso.

Le iniezioni SQL non possono essere prevenute controllando l'input. Devono essere impediti a livello di database, ad esempio utilizzando le istruzioni preparate .

    
risposta data 25.03.2015 - 01:18
fonte
0

Qualsiasi input per l'utente, il cui contenuto può essere utilizzato in una query di database è un possibile vettore di SQL injection. Ad esempio, con l'URL di esempio, a seconda dell'implementazione del server, questo potrebbe funzionare:

https://testurl.com:1234/webservicename?parameter=DROP TABLE users;SELECT

La chiave per prevenire l'iniezione SQL è semplice e capiremo, useremo sempre query parametrizzate e non concateneremo mai istruzioni SQL con input utente con nulla derivato dalla query dell'utente. Non provare nemmeno a sfuggire agli input, non funzionerà.

    
risposta data 25.03.2015 - 01:19
fonte

Leggi altre domande sui tag