Nếu bạn chưa thực sự hiểu về CSRF và chưa thực hành ở mức độ Low thì vui lòng xem lại bài trước tại đây: https://thudinh.blogspot.com/2017/09/dvwa-csrf-tutorial-low-security.html
Nào, bây giờ chúng ta bắt đầu giống với các bước ở mức độ Low.
Lần này, GET request của chúng ta ( thẻ ẩn img HTML) trả về 302. Vì vậy, có 1 vấn đề gì đó không hoạt động.
DVWA có 1 tính năng rất hay đó là cho phép chúng ta xem source code. Điều này cho phép chúng ta học hỏi tốt nhất, thực thế thì sẽ không có trang web nào làm thế. Chúng ta hãy nhìn vào đoạn code bên dưới đây:
Chúng ta thấy nó đã kiểm tra mức độ an toàn trước khi hành động thay đổi password được thực hiện. Nó sẽ kiểm tra HTTP referer và tên server. Nếu tên server hiện tại có trong HTTP referer thì việc thay đổi password tiếp tục. Ngược lại thì báo lỗi.
Suy luận về cách bảo mật này là nếu tên server chứa trong HTTP referer, thì các request đến từ server này.
Nhưng giải pháp này rất dễ dàng bị giả mạo.Chúng ta hãy tìm hiểu về tài liệu phương thức eregi PHP http://php.net/manual/en/function.eregi.php đang được sử dụng trong code của mức độ medium.
Ở đây tôi đưa ra 1 ví dụ: Tôi có 1 trang web là 0.0.0.0:8000 (đây là trang web xấu - đang muốn dụ nạn nhân truy cập vào) và trang 1 web - mục tiêu tấn công là http://172.16.16.1/dvwa ( giả sử trang web này tôi gán domain cho nó là dvwa_lab.com). Khi chúng ta truy cập trang 0.0.0.0:8000 và trang web dvwa_lab.com, khi ấy chúng ta tạo request trong script img tag, nó sẽ không làm việc.
Nhưng nếu chúng ta gửi đên 1 request như sau thì sao? 0.0.0.0:800/dvwa_lab.html
Và đây là kết quả.
Lưu ý : chúng ta phải đổi file html (trong Low level là index.html) thành tên dvwa_lab.html trùng với domain của server web cần tấn công.
No comments:
Post a Comment