SQL injection - Các con đường khai thác khác

thanhlong

Moderator
gemgem
Tham gia
18/03/2025
Bài viết
64
Được Like
0
Coin
2,477
Points
355
Web2: SQL injection - Các con đường khai thác khác

Các chuyên đề nhỏ cùng chủ đề:

Web1: SQL injection - Con đường khai thác phổ biến : qua “user input”

Web2: SQL injection - Các con đường khai thác khác

Web3: SQL injection - Kỹ thuật khai thác: Các hướng khai thác

Web4: SQL injection - Kỹ thuật khai thác: Các bước khai thác

Web5: SQL injection - Kỹ thuật khai thác: Một số kỹ thuật vượt qua cơ chế lọc

Web6: SQL injection - Một số tools khai thác

Web7: SQL injection - Các cách phòng chống & Kết luận.

============================================

Thông qua cookies

Cookies là những tệp tin lưu trữ thông tin trạng thái của người dùng khi truy cập các ứng dụng web. Những thông tin này do người lập trình quyết định, được tạo ra ở server và lưu trữ tại client. Khi người dùng truy cập lại ứng dụng web, cookies được browser gửi lên server giúp phục hồi lại những trạng thái của người dùng trong lần truy cập trước đó. Do được lưu trữ ở client nên người dùng có thể chỉnh sửa tùy ý, vì vậy nếu ứng dụng web sử dụng những thông tin lưu trong cookies để xây dựng các truy vấn tới cơ sở dữ liệu thì hacker hoàn toàn có thể chèn vào cookies những script sql để thực hiện một cuộc tấn công Sql Injection. Có nhiều công cụ cho phép xem, thêm mới và chỉnh sửa cookie, trong đó addon Cookies Manager của firefox là một công cụ khá tiện lợi. Ta có thể tải về và cài đặt vào firefox một cách dễ dàng.

1490892980image001.jpg


Bây giờ, chúng ta cùng thực hiện việc khai thác thông qua cookie.

Các bạn truy cập vào link sau: http://zerocoolhf.altervista.org/level4.php?id=1

1490892980image002.jpg


Ở đây, ta sẽ dụng addon Live HTTP headers của firefox để thực hiện việc khai thác.

1490892980image003.jpg


Sau khi khởi chạy Live HTTP headers, chúng ta tải lại trang lần nữa để Live HTTP headers bắt các request gửi lên server. Chọn lần lượt như hình sau:

1490892980image004.jpg


Một cửa sổ mới hiện ra cùng với nội dung cookie: exploit=1

1490892980image005.jpg


Sửa giá trị của exploit thành như sau:

exploit=1'/**/union/**/select/**/1,@@version,database(),4/**/limit/**/1,1--%0b-

Chọn Replay và xem kết quả.

1490892980image006.jpg


Kết quả:

1490892980image007.jpg


Như vậy, ta xác định được phiên bản của hệ quản trị cơ sở dữ liệu là MySQL 5.1.71-community-log và tên của cơ sở dữ liệu là my_zerocoolhf.

Thông qua các biến server

Biến server có thể là một khái niệm tương đối lạ lẫm nhưng nó không hề mới. Một số ví dụ của biến server là Http header, Network header… Không phổ biến lắm nhưng các giá trị được lưu trong biến server có thể được ứng dụng web sử dụng như trong việc logging truy cập hay thống kê truy cập theo user agent… Những công việc này đều có sự tương tác với cơ sở dữ liệu nên các hacker hoàn toàn có thể sử dụng các biến server trong việc khai thác Sql Injection.

Các addon của firefox hỗ trợ rất tốt những việc này, Tamper Data hay Live HTTP headers (đã được ví dụ ở trên) có thể giúp chúng ta bắt những request gửi từ client lên web server, từ đó chúng ta có thể dễ dàng thay đổi các biến server (http header…) trước khi gửi chúng tới server. Việc khai thác thông qua các biến server tương tự như khai thác thông qua cookie.

Tamper Data:

1490892980image008.jpg


Second-order Injection

Đây là kỹ thuật ít được sử dụng vì rất khó để nhận biết một ứng dụng web có bị mặc lỗi này hay không. Kỹ thuật này được mô tả như sau : Trước hết, ta sẽ “inject” vào cơ sở dữ liệu một đoạn mã. Đoạn mã này chưa hề gây nguy hiểm cho hệ thống nhưng nó sẽ được sử dụng làm bàn đạp cho lần inject tiếp theo. Chúng ta hãy xem một ví dụ cụ thể để hiểu hơn về kỹ thuật này.

Chúng ta sẽ truy cập vào một ứng dụng web và tìm cách đăng ký một tài khoản có username là "administrator' --". Sau đó chúng ta sẽ thực hiện thao tác thay đổi mật khẩu. Thao tác thay đổi mật khẩu được ứng dụng web xử lý như sau :

1490892980image009.jpg


Với username đã đăng ký ở trên, câu truy vấn trên trở thành :

1490892980image010.jpg


Như vậy, ta có thể thay đổi được password của tài khoản administrator và hoàn toàn có thể đăng nhập dưới tên tài khoản administrator.

Các bạn quan tâm có thể theo dõi chuyên đề tiếp theo - " Web3: SQL injection - Kỹ thuật khai thác: Các hướng khai thác"
 
Top Bottom