Hôm nay, có thể bạn đã nghe thông báo rằng WordPress phiên bản 4.7.4 đã phát hiện một lỗ hổng 0-day (CVE-2017-8295), cho phép tin tặc lấy mật khẩu quản trị viên mà không cần quyền truy cập vào email của chủ sở hữu thông qua chức năng reset mật khẩu.
Chi tiết về lỗ hổng này có thể tham khảo tại https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html.
Trong bài viết này, mình sẽ giải thích thêm và giúp bạn xác định xem trang web của mình có nguy cơ bị tấn công không, từ đó áp dụng cách cài plugin để chặn reset mật khẩu.
Kịch bản tấn công
Theo ExploitBox, đầu tiên, tin tặc sẽ gửi một truy vấn HTTP tới website thông qua địa chỉ IP, có nghĩa là website của bạn phải có thể truy cập bằng IP. Nếu bạn sử dụng Shared Hosting với cPanel bản mới nhất, thì không cần phải lo lắng, vì đã có một bản vá cho lỗ hổng 0-day trên Linux từ lâu. Hơn nữa, với Shared Hosting, bạn cũng không thể truy cập website qua IP.
Trong đoạn trên, tin tặc sẽ chèn địa chỉ máy chủ email của họ vào, và trong Apache, giá trị SERVER_NAME sẽ tự động được thay thế bằng giá trị HOST trong truy vấn, tức là địa chỉ máy chủ email của tin tặc.
Khi đó, người quản trị sẽ nhận được một email như sau:
Bạn sẽ thấy phần Return-Path chứa giá trị mà WordPress tự động điền vào SERVER_NAME, tức là wordpress@địa-chỉ-máy-chủ-email-tin-tặc.ltd, và cả Message-ID cũng sẽ chứa một địa chỉ của tin tặc.
Như vậy, nếu hệ thống hoặc người dùng vô tình phản hồi email này, tin tặc sẽ nhận được nội dung email chứa khóa khôi phục mật khẩu quản trị. Dưới đây là ba trường hợp có thể xảy ra:
Một số email của quản trị viên có tính năng tự động trả lời, kèm theo nội dung email đã trả lời.
Tin tặc có thể gửi một lượng lớn email, khiến máy chủ của người dùng bị ngập và không thể gửi đi, dẫn đến phản hồi ngược lại.
Nếu quản trị viên sử dụng email từ Gmail hoặc các nhà cung cấp khác, tin tặc sẽ phải gửi nhiều truy vấn tương tự để nhà cung cấp chặn địa chỉ máy chủ của họ, làm cho email không thể gửi đi và phản hồi ngược lại.
Vậy điều này có nguy hiểm với bạn không?
Nhìn chung, lỗ hổng này có thể gây nghiêm trọng và bạn có thể bị ảnh hưởng nếu:
Bạn đang sử dụng webserver Apache và có thể truy cập website thông qua IP, tức là không thiết lập virtualhost.
Tin tặc biết được tên đăng nhập của quản trị viên.
Tập tin wp-login.php có thể truy cập trực tiếp. Một số plugin như iThemes Security có chức năng ẩn đường dẫn đăng nhập và sẽ tự động chặn truy cập trực tiếp vào tập tin này.
Người quản trị sử dụng email tự host; nếu dùng Gmail hoặc dịch vụ khác, tin tặc cần gửi một lượng lớn email cùng lúc mới có thể chặn được máy chủ gửi đi.
Nếu bạn đáp ứng các điều kiện trên, bạn có thể bảo vệ mình bằng cách cài đặt plugin Disable Password Reset để chặn chức năng quên mật khẩu. Tuy nhiên, nếu không, lỗ hổng này cũng không thực sự quá nghiêm trọng như bạn nghĩ. Trong tương lai, WordPress cũng sẽ phát hành bản vá để tăng cường bảo mật.