DVWA (Damn Vulnerable Web Application) là một công cụ học tập không thể thiếu cho những ai muốn tìm hiểu về bảo mật web. Khi cài đặt DVWA trên Linux, bạn sẽ được cung cấp môi trường an toàn cho việc học hỏi, rèn luyện các kỹ thuật tấn công và phòng thủ web. Trong bài viết này, mình sẽ hướng dẫn bạn từng bước cài đặt DVWA, từ chuẩn bị môi trường đến cấu hình để bắt đầu thực hành.
Những điểm chính
- Cách cài đặt DVWA trên Kali Linux: Hướng dẫn từng bước cài đặt DVWA trên Kali Linux, bao gồm tải xuống, cấu hình, cài đặt MySQL, PHP và Apache.
- Cách cài đặt DVWA trên Ubuntu: Hướng dẫn chi tiết quá trình cài đặt DVWA trên Ubuntu, từ chuẩn bị môi trường, cấu hình PHP, database, đến đăng nhập DVWA.
- Biết được Vietnix – Nhà cung cấp dịch vụ VPS chuyên nghiệp và đáng tin cậy.
Cách cài đặt DVWA trên Kali Linux
Bước 1: Tải xuống DVWA
Đầu tiên, bạn cần clone DVWA GitHub vào thư mục /var/www/html, nơi lưu trữ các file Localhost trong hệ thống Linux. Để thực hiện, bạn mở terminal và chuyển đến thư mục /var/www/html bằng lệnh:
cd /var/www/html
Tiếp theo, bạn clone kho lưu trữ DVWA từ GitHub bằng lệnh:
sudo git clone https://github.com/ethicalhack3r/DVWA

Bước 2: Cấu hình DVWA
Sau khi tải DVWA trong thư mục /var/www/html, bạn cần cấu hình một số thông tin, đầu tiên là quyền đọc, ghi và thực thi cho thư mục dvwa:
chmod -R 777 DVWA/

Tiếp theo, bạn cần thiết lập tên người dùng và mật khẩu để truy cập cơ sở dữ liệu. Chuyển đến thư mục config bằng lệnh sau:
cd dvwa/config
Sau khi chạy lệnh ls để xem các file bên trong thư mục, bạn sẽ thấy file gốc config.inc.php.dist chứa cấu hình mặc định. Bạn sẽ không chỉnh sửa file này mà giữ lại làm bản backup khi có sự cố, đồng thời tạo một bản sao file mới có tên config.inc.php:
sudo mv config.inc.php.dist config.inc.php

Sau đó bạn mở file config.inc.php mới này bằng trình soạn thảo nano và thay đổi các giá trị db_user, db_password thành tên user và mật khẩu tùy chọn:
sudo nano config.inc.php

Cuối cùng bạn lưu file bằng cách bấm tổ hợp phím Ctrl + O và ấn Enter, sau đó thoát file bằng Ctrl + X.
Bước 3: Cài đặt MySQL
Thông thường, MySQL đã được cài đặt sẵn trên Kali Linux. Tuy nhiên nếu chưa cài đặt hoặc gặp sự cố với MySQL, bạn có thể tự cài đặt thủ công. Trên các hệ thống dựa trên Debian có 2 để bạn lựa chọn là: mysql-server và mysql-client. Trong trường hợp này, bạn sẽ cần cài đặt package mysql-server.
Nếu bạn sử dụng lệnh apt install mysql-server thì có thể gặp lỗi “Package mysql-server is not available, but is referred to by another package. E: Package ‘mysql-server’ has no installation candidate“. Lý do là bởi gói mysql-server được gọi là default-mysql-server trong phiên bản Kali Linux và Debian mới nhất. Vì vậy, bạn cần sử dụng lệnh sau:
sudo apt install default-mysql-server

Bước 4: Cấu hình cơ sở dữ liệu MySQL
Để khởi động dịch vụ MySQL, bạn chạy lệnh:
sudo service mysql start
Tiếp theo, bạn kiểm tra trạng thái dịch vụ có đang chạy hay không bằng lệnh:
systemctl status mysql
Bạn cần đăng nhập vào MySQL với quyền root (hoặc superuser nếu có) bằng lệnh:
sudo mysql -u root -p
Hệ thống sẽ yêu cầu bạn nhập mật khẩu, hãy nhấn Enter nếu chưa đặt mật khẩu root và MySQL sẽ được mở như hình bên dưới:

Tiếp theo, bạn tạo user mới với tên người dùng và mật khẩu tương tự như trong file cấu hình DVWA (trong bài viết này mình đặt là user và pass). Máy chủ đang được mình sử dụng là Localhost (127.0.0.1). Lệnh cuối cùng sẽ tương tự như sau:
create user 'user'@'127.0.0.1' identified by 'pass';

Sau đó, bạn cấp quyền cho người dùng mới này trên database dvwa bằng lệnh sau. Cuối cùng, bạn gõ exit để đóng cơ sở dữ liệu:
grant all privileges on dvwa.* to 'user'@'127.0.0.1' identified by 'pass';
Bước 5: Cài đặt PHP
PHP thường được cài đặt sẵn trên Kali Linux. Nếu bạn muốn cài đặt phiên bản cụ thể (ví dụ PHP 7.4), hãy làm theo hướng dẫn sau. Đầu tiên, bạn cần cập nhật hệ thống và thêm kho lưu trữ SURY PHP PPA:
sudo apt update
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list

Sau đó, bạn chạy lệnh sau để cài đặt PHP:
sudo apt update
sudo apt install php7.4 -y

Bạn có thể cài đặt thêm các extension PHP bổ sung (thay xxx bằng tên extension) với lệnh sau:
sudo apt install php7.4-xxx
sudo apt install php7.4-{cli,json,imap,bcmath,bz2,intl,gd,mbstring,mysql,zip}

Bước 6: Cấu hình máy chủ Apache
Để cấu hình máy chủ Apache, đầu tiên bạn chạy lệnh sau trong terminal để chuyển đến thư mục /etc/php/7.4/apache2 (thay đổi phiên bản PHP theo cài đặt của bạn):
cd /etc/php/7.4/apache2
Lưu ý
Lưu ý: Nếu không biết phiên bản PHP hiện tại, bạn có thể sử dụng lệnh sau:
ls /etc/php
Trong thư mục /etc/php/7.4/apache2, khi bạn thực thi lệnh ls
thì sẽ thấy file có tên php.ini. Bạn sẽ chỉnh sửa file này để cấu hình máy chủ localhost. Đầu tiên, mở file bằng trình soạn thảo nano với lệnh:
sudo nano php.ini
Bạn tìm dòng allow_url_fopen và allow_url_include rồi thiết lập giá trị thành On. Sau đó, bạn lưu file bằng cách bấm Ctrl + O rồi Enter và thoát file bằng Ctrl + X.

Tiếp đó, bạn khởi động máy chủ Apache bằng lệnh:
service apache2 start
ifconfig

Bước 7: Truy cập DVWA trên trình duyệt
Sau khi hoàn tất cấu hình, bạn hãy mở trình duyệt web và nhập địa chỉ sau:
http://127.0.0.1/DVWA/
Trang setup.php sẽ xuất hiện như hình sau:

Nếu có bất kỳ lỗi nào (thường được hiển thị bằng màu đỏ), bạn hãy cuộn xuống dưới và nhấn vào nút Create / Reset Database để tạo và cấu hình lại database.

Sau đó, bạn sẽ được tự động chuyển hướng đến trang đăng nhập DVWA. Bạn sử dụng thông tin đăng nhập mặc định sau:
- Tên người dùng: admin.
- Mật khẩu: password.

Sau khi đăng nhập, bạn sẽ thấy giao diện chính của DVWA. Tại menu bên trái, bạn có thể lựa chọn các kiểu tấn công khác nhau và tùy chỉnh mức độ bảo mật (Low, Medium, High hoặc Impossible) thông qua nút DVWA Security.

Sau khi hoàn tất quá trình cài đặt và truy cập DVWA, việc duy trì môi trường thử nghiệm ổn định và tốc độ cao là vô cùng quan trọng, đặc biệt khi thực hành các bài kiểm thử bảo mật phức tạp. Vietnix cung cấp dịch vụ VPS NVMe với tốc độ truy xuất dữ liệu nhanh gấp 10 lần so với ổ cứng SSD thông thường, giúp giảm đáng kể thời gian tải trang và tăng hiệu suất xử lý. Với CPU Intel Platinum mạnh mẽ và kết nối mạng tốc độ cao của VPS này, bạn có thể yên tâm triển khai các công cụ pentest và mô phỏng tấn công mạng mà không lo gián đoạn.
Cách cài đặt DVWA trên Linux Ubuntu
Bước 1: Chuẩn bị môi trường
Để cài đặt DVWA Ubuntu, bạn cần cài đặt Ubuntu Linux 18.04, sau đó mở terminal và cài đặt MySQL Server bằng lệnh sau (nhấn Y khi được hệ thống hỏi):
sudo apt install mysql-server

Sau đó, bạn thực hiện tương tự với quá trình cài đặt Apache2, chạy lệnh sau và nhấn Y khi được hỏi:
sudo apt install apache2

Bước 2: Tải và cài đặt DVWA
Để tải DVWA, bạn mở trình duyệt và truy cập vào đường dẫn: https://dvwa.co.uk
, sau đó chọn Source Control.

Tiếp đó bạn mở terminal và cài đặt Git bằng lệnh:
sudo apt install git -y

Tiếp đến, bạn di chuyển vào thư mục /var/www/html bằng lệnh:
cd /var/www/html

Bạn clone DVWA từ đường dẫn đã sao chép ở trên bằng lệnh:
sudo git clone https://github.com/digininja/DVWA.git

Bước 3: Cấu hình DVWA
Sau đó, bạn nhập lệnh ls
để hiển thị toàn bộ file có trong thư mục này và sẽ thấy file DVWA và để đổi tên file dvwa thành dvwa, bạn nhập lệnh sau:
mv DVWA/ dvwa/

Sau đó, bạn đổi tên file index.html thành abc.html để tránh xung đột:
mv index.html abc.html

Cuối cùng, bạn mở trình duyệt web và truy cập vào đường dẫn localhost/dvwa/ để xem việc thiết lập DVWA trên localhost đã thành công hay chưa.

Bước 4: Cài đặt và cấu hình PHP
Bạn chạy lệnh sau để cài đặt PHP (nhấn Y khi hệ thống hỏi):
apt install php

Tiếp đó, bạn chuyển đến file cấu hình dvwa bằng lệnh cd như sau:
cd dvwa/config/

Bạn sử dụng lệnh ls
để kiểm tra danh sách file trong thư mục, sau đó đổi tên file config.inc.php.dist thành config.inc.php bằng lệnh:
mv config.inc.php.dist config.inc.php

Cuối cùng, bạn mở trình duyệt và truy cập theo đường dẫn localhost/dvwa/setup.php để vào trang cài đặt DVWA:

Bước 5: Kích hoạt allow_url_include
Bạn chạy lệnh sau để cài đặt vim (nhấn Y khi hệ thống hỏi):
apt install vim

Sau đó bạn di chuyển đến thư mục cấu hình PHP bằng lệnh sau (thay thế 7.2 bằng phiên bản PHP hiện tại):
cd /etc/php/7.2/apache2/

Bạn nhập lệnh sau để mở file php.ini bằng vim:
vim php.ini
Sau đó, bạn gõ ?allow_url rồi Enter và nhấn i để chuyển giá trị từ Off thành On. Để lưu và thoát file, bạn bấm Escape, sau đó nhập :wq.

Sau đó, bạn khởi động lại Apache bằng lệnh:
systemctl restart apache2.service

Bạn quay lại trình duyệt Firefox, sau đó tải lại trang setup DVWA và kiểm tra trạng thái PHP function allow_url_include trên trình duyệt. Nếu hiển thị Enabled nghĩa là việc kích hoạt thành công.
Bước 6: Cài đặt các module PHP
Bạn lần lượt cài đặt các module php gd và php mysql bằng cách chạy các lệnh sau, nhớ khởi động lại Apache sau mỗi lần cài đặt. Đầu tiên cài đặt module php:
sudo apt install php7.2-gd
Sau khi khởi động lại, bạn mở trang thiết lập trên Firefox và kiểm tra trạng thái PHP module gd: Installed nghĩa là cài đặt thành công.

Tương tự, bạn tiến hành cài đặt module php mysql:
sudo apt install php7.2-mysql

Kiểm tra thấy trạng thái PHP module mysql: Installed và PHP module pdo_mysql: Installed nghĩa là bạn đã cài đặt thành công.

Bước 7: Cấu hình reCAPTCHA
Bạn mở terminal và chuyển đến thư mục cấu hình DVWA bằng lệnh:
cd /var/www/html/dvwa/config/
Sau đó, bạn chạy lệnh ls
, sau đó mở file config.inc.php bằng lệnh vim:
vim config.inc.php

Trong file cấu hình, bạn tìm và bấm vào đường dẫn: https://www.google.com/recaptcha/admin, sau đó chọn Open Link.

Bạn nhập tài khoản Gmail để đăng nhập vào công cụ reCAPTCHA của Google:

Trong giao diện quản trị mới xuất hiện, bạn bấm vào biểu tượng dấu + để tạo trang mới. Sau đó bạn nhập các thông tin được yêu cầu như sau:
- Label: Đặt tên cho site.
- reCAPTCHA type: Chọn Score based (v3).
- Domains: Nhập tên miền của bạn.
- Project Name: Đặt tên cho dự án.
- Tích vào ô I agree to the Google Cloud Platform…
Sau đó, bạn nhấn Submit, hệ thống sẽ tạo reCAPTCHA cho bạn. Tiếp đến, bạn lần lượt bấm COPY SITE KEY và COPY SECRET KEY, sau đó dán vào dòng tương ứng trong file cấu hình:

Cuối cùng, bạn lưu và thoát Vim bằng cách nhấn escape và nhập :wq. Quay lại làm mới trang thiết lập trên Firefox, nếu bạn thấy dòng reCAPTCHA key hiển thị như hình dưới là đã thành công.

Bước 8: Cấu hình database
Trong terminal, bạn dùng lệnh cd ../..
để lùi về thư mục html, sau đó nhập lệnh ls
để hiển thị thư mục dvwa. Bạn sẽ thay đổi quyền của thư mục này thành 777 bằng lệnh:
chmod -R 777 dvwa/

Sau đó, bạn quay lại trang thiết lập trên Firefox và kiểm tra trạng thái các dòng dưới đây đã chuyển sang Yes chưa.

Trở lại terminal, bạn chỉnh sửa file config.inc.php bằng cách nhập lần lượt các lệnh sau:
cd dvwa/config/
ls
vim config.inc.php

Bạn tìm và chỉnh sửa giá trị các dòng dưới đây:
- db_user: root
- db_password: Để trống.
Sau đó bạn lưu và thoát file bằng cách nhấn escape và :wq.

Trong terminal, bạn đăng nhập MySQL với quyền root và chọn cơ sở dữ liệu mysql bằng các lệnh:
mysql -u root
use mysql

Bạn truy vấn dữ liệu cần thiết trong database này (host, user, plugin) bằng lệnh:
select Host, User, plugin from mysql.user;
Sau đó, bạn thay đổi mật khẩu người dùng root thành rỗng bằng lệnh:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘’;

Bước 9: Đăng nhập DVWA
Bạn mở trang thiết lập trên Firefox và nhấn vào Create/Reset Database, sau đó chọn Login. Giao diện đăng nhập của DVWA sẽ xuất hiện như hình dưới:

Sau đó, bạn quay lại terminal và lần lượt nhập các lệnh sau:
use dvwa;
exit

Cuối cùng, bạn quay lại trang đăng nhập DVWA trên Firefox và đăng nhập với tài khoản mặc định (username: admin, password: password) để bắt đầu thực hành kiểm thử bảo mật.

Vietnix – Nhà cung cấp dịch vụ VPS chuyên nghiệp và đáng tin cậy
Dịch vụ VPS Vietnix mang đến giải pháp lưu trữ mạnh mẽ với hiệu suất vượt trội, đảm bảo hoạt động ổn định và bảo mật cao. Sử dụng phần cứng hiện đại với CPU Intel/AMD thế hệ mới, ổ cứng SSD/NVMe tốc độ cao, Vietnix cam kết uptime 99,99%, giúp hệ thống vận hành liên tục, hạn chế tối đa downtime. Bên cạnh đó, dịch vụ còn hỗ trợ nhiều hệ điều hành và dễ dàng nâng cấp tài nguyên theo nhu cầu. Đặc biệt, đội ngũ kỹ thuật viên luôn sẵn sàng hỗ trợ 24/7, đảm bảo trải nghiệm tốt nhất cho khách hàng.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Trên đây là toàn bộ các bước cài đặt DVWA trên Linux một cách chi tiết mà mình muốn chia sẻ tới bạn. Hy vọng rằng với hướng dẫn chi tiết này, bạn đã có thể tự mình thiết lập thành công DVWA và bắt đầu thực hành các kỹ năng, công cụ kiểm thử lỗ hổng bảo mật. Ngoài ra để nâng cao kiến thức về bảo mật ứng dụng, website trên Linux, bạn có thể xem thêm các bài viết dưới đây của mình: