Impatto dell'iniezione SQL sull'istruzione SELECT

2

Durante un test di penetrazione di routine ho riscontrato una possibilità per l'iniezione SQL. Si applicano i seguenti criteri:

  • Microsoft SQL Server (2016);
  • La query deve iniziare con SELECT ;
  • Il punto e virgola ; non può interrompere un'istruzione e avviarne una nuova;
  • Tutto il resto è permesso.

Mi chiedo quale sia l'impatto più alto possibile per una vulnerabilità di SQL injection come questa. Ovviamente la divulgazione di informazioni è possibile, ma mi piacerebbe sapere se è anche possibile effettivamente "scomporre" l'istruzione SELECT e ad DROP una tabella per esempio. Cosa suggeriresti per questo scenario?

    
posta Vincent 11.07.2018 - 19:17
fonte

1 risposta

0

Non sono sicuro al 100% su questo primo dettaglio, quindi rimanderò a chiunque non sia d'accordo, ma sono abbastanza sicuro che le tue condizioni significano che non è possibile scoppiare e esegui DROP , INSERT , UPDATE o qualsiasi altra cosa diversa da una semplice selezione.

Di conseguenza, lo scenario peggiore è limitato alla divulgazione di informazioni, ma tieni presente che lo scenario peggiore è molto probabilmente una perdita completa del tuo intero database. Almeno con MySQL (non ho familiarità con i dettagli di Microsoft SQL Server) la struttura della tabella viene anche memorizzata come tabelle che possono essere accessibili tramite un'operazione SELECT e quindi% vulnerabilità SQLi su SELECT di solito inizia con per prima cosa individuando tutti i nomi di colonne e tabelle (presumendo che sia possibile eseguire arbitrariamente SELECT iniezioni - che è quello che sembra). Una volta ottenuto questo, è molto facile unire e scaricare tutte le tabelle e le colonne, risultando in una copia completa dell'intero database (così come di qualsiasi altro database a cui l'utente SQL ha accesso).

Un rapido google mi porta a credere che la struttura del database sia accessibile tramite i comandi di selezione SQL in Microsoft SQL proprio come in MySQL: una copia completa del database è possibile in caso di vulnerabilità di tipo open wide select.

    
risposta data 11.07.2018 - 20:08
fonte

Leggi altre domande sui tag