le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Le vulnerabilità di injection secondaria sono una forma di vulnerabilità della sicurezza diffusa nelle applicazioni web. Rispetto alla vulnerabilità dell'iniezione primaria, la vulnerabilità dell'iniezione secondaria è più difficile da rilevare, ma ha la stessa potenza di attacco della vulnerabilità dell'iniezione primaria.
Gli hacker creano dati sotto forma di invio di richieste di pacchetti di dati HTTP al server per l'elaborazione in un browser o altro software. La richiesta di pacchetto di dati inviata può contenere istruzioni o comandi SQL creati dall'hacker.
L'applicazione lato server memorizzerà le informazioni sui dati inviate dall'hacker, solitamente in un database. La funzione principale delle informazioni sui dati salvate è fornire dati di input originali affinché l'applicazione possa eseguire altre funzioni e rispondere alle richieste del client.
L'hacker invia al server un secondo messaggio di richiesta dati diverso dal primo.
Dopo che il server ha ricevuto le informazioni sulla seconda richiesta inviata dall'hacker, per elaborare la richiesta, il server interrogherà le informazioni sui dati già archiviate nel database e le elaborerà, provocando l'istruzione SQL o il comando costruito dall'hacker nella prima richiesta essere nel servizio eseguito nell'ambiente terminale.
Il server restituisce informazioni sui dati sui risultati dell'esecuzione. Gli hacker possono utilizzare le informazioni sui dati sui risultati restituiti per determinare se la vulnerabilità dell'iniezione secondaria viene sfruttata con successo.
In sintesi, l'iniezione secondaria è dovuta al mancato filtraggio dei dati durante la memorizzazione nel database. Innanzitutto, viene inviata la richiesta di caratteri speciali costruiti per essere archiviati nel database, quindi, quando viene inviata la seconda richiesta, i caratteri che sono stati inviati al database per la prima volta si verificano la funzione, formando una nuova istruzione SQL da eseguire.Prendiamo come esempio il livello 24 di sqli-labs
sqli-labs meno-24
1. Fare clic qui sotto per registrare un utente
Il nome utente registrato qui è admin'#
A questo punto controlliamo il database, gli utenti registrati sono stati memorizzati e la password dell'amministratore è DDD
2. Accedi con l'account registrato e modifica la password in ccccc
A questo punto, verrà richiesto che la password è stata modificata con successo.
Al momento, abbiamo riscontrato che la password di admin è stata modificata in ccccc, ma la password del nostro utente registrato admin'# non è stata modificata.
Causa della vulnerabilità
1. Caratteri speciali come ' e # sono consentiti durante la registrazione dell'utente.
2. Nel codice sorgente della pagina di modifica della password è stata riscontrata un'evidente vulnerabilità di injection.
$sql = "AGGIORNA utenti SET PASSWORD='$pass' dove nomeutente='$username' e password='$curr_pass' ";
Quando accediamo all'account admin'# e modifichiamo la password, l'istruzione sql diventa la seguente, #Commenta il seguente codice, quindi la password dell'utente admin viene modificata in ccccc
$sql = "AGGIORNA utenti SET PASSWORD='$pass' dove nome utente='admin'#' e password='$curr_pass' ";
Link originale: https://blog.csdn.net/qq_44159028/article/details/114325805