Test di sicurezza - Iniezione

La tecnica di iniezione consiste nell'iniezione di una query SQL o di un comando utilizzando i campi di input dell'applicazione.

Applicazione Web - Iniezione

Una SQL injection riuscita può leggere, modificare i dati sensibili dal database e può anche eliminare i dati da un database. Consente inoltre all'hacker di eseguire operazioni amministrative sul database come l'arresto del DBMS / l'eliminazione dei database.

Cerchiamo di comprendere gli agenti di minaccia, i vettori di attacco, la debolezza della sicurezza, l'impatto tecnico e gli impatti sul business di questo difetto con l'aiuto di un semplice diagramma.

Esempi

L'applicazione utilizza dati non attendibili nella costruzione della seguente chiamata SQL vulnerabile:

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

Mani su

Step 1 - Navigare nell'area SQL Injection dell'applicazione come mostrato di seguito.

Step 2- Come indicato nell'esercizio, utilizziamo String SQL Injection per bypassare l'autenticazione. Utilizza SQL injection per accedere come boss ("Neville") senza utilizzare la password corretta. Verifica che il profilo di Neville possa essere visualizzato e che tutte le funzioni siano disponibili (incluse Cerca, Crea ed Elimina).

Step 3 - Inietteremo un SQL in modo tale da poter bypassare la password inviando il parametro come 'a' = 'a' o 1 = 1

Step 4 - Dopo lo sfruttamento, siamo in grado di accedere come Neville che è l'amministratore come mostrato di seguito.

Prevenire SQL injection

Esistono molti modi per prevenire l'iniezione SQL. Quando gli sviluppatori scrivono il codice, devono assicurarsi di gestire i caratteri speciali di conseguenza. Ci sono cheat sheet / tecniche di prevenzione disponibili da OWASP che è sicuramente una guida per gli sviluppatori.

  • Utilizzo di query parametrizzate
  • Sfuggire a tutti gli input forniti dall'utente
  • Abilita il privilegio minimo per il database per gli utenti finali