Sqlmap
General
Cú pháp đơn giản nhất để sử dụng:
sqlmap -u <URL/vulnerable_param> [optional]Hoặc sử dụng HTTP request (raw):
sqlmap -r request.txt [optional]Optional group
Target
-u, -r, -g, -d, -m, -l
Xác định mục tiêu (URL, file log, google dork, chuỗi kết nối DB…)
Request
--data, --cookie, --random-agent, --proxy, --tor
Điều chỉnh cách gửi yêu cầu HTTP
Injection
-p, --dbms, --level, --risk, --technique, --tamper
Chọn tham số, loại DBMS, mức/nhiệm vụ test, kỹ thuật SQLi & script né WAF
Enumeration
--banner, --dbs, --tables, --columns, --dump, -D, -T, -C, --schema, -a, --passwords
Liệt kê & trích xuất cấu trúc / dữ liệu DB
OS access
--os-shell, --os-cmd, --file-read, --os-pwn
Truy cập hệ điều hành nếu đặc quyền cho phép
General
--batch, --flush-session, --crawl, --answers
Tự động hóa, xóa cache, thu thập link…
Misc
-h, -hh, --update, --wizard, -v 0-6
Trợ giúp, cập nhật, giao diện wizard, mức log
Xem đầy đủ về manual tại đây
Quy trình sử dụng Sqlmap
Ta có thể sử dụng các option khác như:
--random-agent|--torđể giảm dấu vết trên internetTa có thể tăng
--level 5 --risk 3để deep scanning nếu cần thiết.,Hoặc là truyền vào file có các http header chính xác nhất trong context đó.
1. Xác minh lỗ hổng Sqli
Nếu url có nhiều hơn 1 parameter mà mình muốn chỉ định các param có lỗi thì có thể sử dụng option -p
Hoặc nếu ta có nhiều hơn 1 target, có thể sử dụng option -m
2. Nếu lỗ hổng tồn tại -> liệt kê database
3. Liệt kê tables trong DB đích
4. Liệt kê column và dump database
5. Get shell (nếu thỏa mãn vài điều kiện trong từng DB cụ thể)
Mỗi lần chạy sqlmap với 1 target cụ thể, công cụ sinh ra 3 file sau:
log: chứa file.logliệt kê từng request, kèm thời gian và trạng thái.
session.sqlite: cơ sở dữ liệu SQLite lưu mọi thông tin phiên.
dump/: nơi sqlmap ghi dữ liệu đã trích xuất (nếu có).
Advanced usage
Kỹ thuật injection nâng cao
Ta có thể chỉnh định các loại injection cụ thể:
Các kỹ thuật:
B: Boolean-based blind - phát hiện qua sự khác biệt trong response
E: Error-based - khai thác thông qua error message từ DBMS
U: Union query-based - sử dụng UNION SELECT để trích xuất dữ liệu
S: Stacked queries - thực thi nhiều câu lệnh SQL liên tiếp
T: Time-based blind - dựa vào độ trễ response để kết luận
Q: Inline queries - query lồng nhau
Tối ưu hóa hiệu suất của sqlmap
Ta có thể sử dụng các option để tối ưu hóa cách hoạt động cũng như tận dụng tài nguyên sẵn có của máy tính
-o: bật tất cả optimization
-- threads=10: sử dụng multi-threading
--delay=0.5: chỉ định độ delay giữa các request
Bypass WAF với tamper scripts
Ta có thể sử dụng các tamper scripts như sau:
Các tamper script thường thấy:
space2comment: Thay thế khoảng trắng bằng comment
/**/equaltolike: Chuyển
=thànhLIKEgreatest: Bypass
ORDER BYvớiGREATEST()charencode: Encode characters thành dạng hex
randomcase: Random case của keywords
Enumeration advanced
Ta có thể lấy database fingerprinting chi tiết bằng các command sau:
Ngoài ra thì có thể enumeration các schema của database để có cái nhìn tổng quan về database của target
Password cracking
Lưu ý:
--common-tables: sqlmap sử dụng wordlist built-in chứa tên các bảng phổ biến như users, admin, ....
--common-columns: tương tự như tablesCommand trên được sử dụng khi:
Không có quyền enumerate tables/columns bằng
information_schemaMuốn tìm nhanh các bảng/cột quan trọng mà không cần dump toàn bộ schema
Post-explotation advanced
Đầu tiên là đọc file
Hoặc là có thể truy cập thẳng vào shell của target hoặc là thực thi command trực tiếp
Ngoài ra đối với windows, ta có thể đọc được các Registry key
Kết hợp sqlmap với các tools khác
Evasion techniques
Request modification
Stealth scanning
Last updated
Was this helpful?

