前言
在 Day 3, Kali Linux 已經順利開機並更新到最佳狀態,但還缺少一個可以讓我們合法練習的「靶場」。我的目標 DVWA 是一個基於 PHP 和 MySQL 的網站,因此,必須先在 Kali 裡面建置一個能夠運行它的環境。
Linux: 我的作業系統 (Kali 本身就是基於 Debian 的 Linux)。
Apache: 最流行的網頁伺服器軟體 (Web Server)。
MariaDB/MySQL: 儲存網站資料的資料庫系統 (將使用 MariaDB,它是 MySQL 的一個熱門分支,完全相容)。
PHP: 用來撰寫網站後端邏輯的腳本語言。
今天,我將透過終端機,一行行指令地把這些服務安裝並啟動起來。
第一步:安裝 Apache2 網頁伺服器
Apache 是負責接收使用者瀏覽器請求 (Request),並回傳網頁內容 (Response) 的核心軟體。
打開 Kali 終端機。
輸入以下指令來安裝 Apache2:
Bash
sudo apt update
sudo apt install apache2 -y
安裝完成後,我們要啟動 Apache 服務,並設定它開機時自動運行:
Bash
# 啟動 Apache 服務
sudo systemctl start apache2
# 設定開機自動啟動
sudo systemctl enable apache2
驗證安裝:打開 Kali 裡的 Firefox 瀏覽器,在網址列輸入 http://127.0.0.1
第二步:安裝 MariaDB 資料庫
網站的會員資料、文章內容等都需要一個地方儲存,這就是資料庫的工作。
在終端機中,輸入以下指令安裝 MariaDB 伺服器:
Bash
sudo apt install mariadb-server -y
同樣地,啟動並設定開機自啟:
Bash
sudo systemctl start mariadb
sudo systemctl enable mariadb
初始化資料庫與設定密碼
新安裝的 MariaDB 安全性較低,需要執行一個腳本來進行基礎的安全性設定,最重要的是設定 root 管理員的密碼。
Bash
# 執行安全性設定腳本
sudo mysql_secure_installation
執行後,系統會問一系列問題
Enter current password for root (enter for none): - 直接按 Enter (因為還沒有密碼)。
Switch to unix_socket authentication [Y/n] - 輸入 n 然後按 Enter。
Change the root password? [Y/n] - 輸入 Y 然後按 Enter。
New password: - 輸入想設定的資料庫 root 密碼,輸入時不會顯示字元是正常的(我卡了很久,以為是顯示錯誤)
Re-enter new password: - 再次輸入密碼。
Remove anonymous users? [Y/n] - 輸入 Y。
Disallow root login remotely? [Y/n] - 輸入 Y。
Remove test database and access to it? [Y/n] - 輸入 Y。
Reload privilege tables now? [Y/n] - 輸入 Y。
完成後,資料庫就安全多了!
第三步:安裝 PHP
PHP 是串連 Apache 與 MariaDB 的橋樑,也是 DVWA 網站本身所使用的程式語言。
DVWA 需要一些特定的 PHP 擴充套件才能正常運作。我們用一條指令把它們全部安裝起來:
Bash
sudo apt install php libapache2-mod-php php-mysql php-gd php-cli php-mbstring php-xml -y
驗證 PHP 安裝
要建立一個簡單的 PHP 檔案,來測試 Apache 是否能正確地解析它。
Bash
sudo nano /var/www/html/info.php
這會打開一個終端機內的編輯器。在裡面輸入以下這段 PHP 程式碼:
PHP
輸入完畢後,按下 Ctrl + X,接著按 Y,最後按 Enter 儲存並離開。
現在,再次打開 Firefox 瀏覽器,這次在網址列輸入 http://127.0.0.1/info.php。
今日總結與明日預告
現在擁有:
一個運作中的 Apache 網頁伺服器。
一個設定好密碼的 MariaDB 資料庫。
一個能夠被 Apache 正確解析的 PHP 環境。
靶場地基已經穩固。明天,就要在這片地基上,安裝與設定 DVWA (Damn Vulnerable Web Application)。我將把 DVWA 的原始碼放到正確的位置,並設定好資料庫連線,讓它真正地運作起來!