Mask
VIP Members
-
03/07/2013
-
33
-
25 bài viết
Web2: SQL injection - Các con đường khai thác khác
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.
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
Ở đây, ta sẽ dụng addon Live HTTP headers của firefox để thực hiện việc khai thác.
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:
Một cửa sổ mới hiện ra cùng với nội dung cookie: exploit=1
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ả.
Kết quả:
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:
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 :
Với username đã đăng ký ở trên, câu truy vấn trên trở thành :
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"
Chỉnh sửa lần cuối bởi người điều hành: