PHP代碼審計:
嘗試在DVWA頁面中輸出SQL語句:
判斷是否有回顯:
id變化,資料庫中的不同內容回顯在網頁中!(聯合查詢法)
給id的值添加一個單引號,判斷是否報錯,並根據報錯分析id的值是數字型還是字符型:
字符型意味著id值的左右兩邊有引號(單或雙)
數字型意味著id值的左右兩邊沒有引號
根據圖示錯誤判斷,id值是字符型!!!
判斷是否有布爾類型狀態:
(1)
不變!
(2)
變化!
頁面結果顯示不同,所有存在布爾類型狀態!(布爾盲注法)
判斷是否有延時:
左上角進度條轉動,SQL語句延時執行!(延時注入法)
報錯注入法!
SQL注入流程:
庫名->表名->欄位(列)名->欄位內容
聯合查詢法:
判斷列數:
改變order by後面的數字,根據輸出是否顯示錯誤,來判斷列數!(數字嘗試,可以通過二分查找算法)
判斷顯示位:
union select的左邊數據不顯示:
通過只顯示union select右邊的數據,獲得資料庫的版本號與資料庫名:
數據文件的位置和資料庫的版本號:
information_schema存儲了所有MySQL中的元數據,包括:庫名、表名、欄位名
庫名:
表名:
欄位:
獲取所有庫名:
所有表名:
http://localhost/DVWA-master/vulnerabilities/sqli/?id=2&
limit 0,1
group_concat()
獲取users表的所有欄位名:
獲取users中所有user和password欄位的內容:
user:admin
password:5f4dcc3b5aa765d61d8327deb882cf99
在線md5破解:https://www.cmd5.com/
Well Done!!!