Lỗ hổng chưa được vá của WordPress cho phép hacker reset mật khẩu admin

20/03/2017
113
356 bài viết
Lỗ hổng chưa được vá của WordPress cho phép hacker reset mật khẩu admin
WordPress, hệ thống quản trị nội dung (CMS) phổ biến nhất trên thế giới hiện có một lỗi logic cho phép hacker có thể reset mật khẩu của người dùng trong một số trường hợp nhất định.

Lỗ hổng của WordPress được một chuyên gia an ninh Dawid Golunski của Legal Hackers phát hiện vào tháng 7 năm 2016 và đã được thông báo nhiều lần tới WordPress, tuy nhiên phía WordPress không có phản hồi dẫn đến việc hàng nghìn website vẫn tồn tại lỗ hổng này. Do không có tiến triển nào từ đội ngũ an ninh của WordPress nên ngày 5/5/2017 cảnh báo này được đưa ra khi chưa có bản vá chính thức.

Lỗ hổng nằm ở cách thức WordPress xử lý yêu cầu reset mật khẩu mà người dùng khởi tạo.

Khi người dùng yêu cầu reset mật khẩu vì quên mật khẩu, WordPress sẽ ngay lập tức tạo ra một mã bí mật duy nhất và gửi tới email của người dùng đã được lưu trữ trong cơ sở dữ liệu.

Khi gửi email này, WordPress sử dụng một biến có tên là SERVER_NAME để lấy được hostname của server và đặt các giá trị tại các trường From/Return-Path.

wordpress-admin-password-reset-hacking 2.png
"From" là địa chỉ email của người gửi và "Return-Path" là địa chỉ email nhận các email khi bị từ chối ('bounce-back' email) trong trường hợp không gửi được email.

Theo chuyên gia an ninh Golunski, hacker có thể gửi 1 truy vấn HTTP đã chỉnh sửa mang giá trị hostname định sẵn (ví dụ attacker-mxserver.com) khi khởi tạo quá trình reset mật khẩu cho người dùng admin.

Vì hostname trong truy vấn HTTP trên là một domain đã được hacker kiểm soát, các trường From và Return-Path trong email reset mật khẩu sẽ được thay đổi để bao gồm 1 email có liên kết với domain của hacker như [email protected] thay vì [email protected].

Vì HOST header đã bị thay đổi, SERVER_NAME sẽ được đặt lại theo hostname mà hacker lựa chọn. Điều này dẫn đến việc WordPress chuyển các header và email body tới /usr/bin/sendmail wrapper.

Lưu ý là email báo reset mật khẩu sẽ chỉ được gửi tới email của nạn nhân nhưng vì các trường From và Return-Path hiện tại đã chuyển tới email của hacker nên hacker cũng có thể nhận mã reset theo các kịch bản sau:

1. Nếu nạn nhận phản hồi lại email, email phản hồi sẽ được gửi tới ID email của hacker chứa một link để reset mật khẩu trong lịch sử tin nhắn.

2. Nếu vì một lý do nào đó, server email của nạn nhân bị tắt, email để reset mật khẩu sẽ tự động không gửi được và được chuyển tới địa chỉ email đã đề cập trong trường "Return-Path" và gửi tới hộp thư đến của hacker.

3. Một kịch bản khác có thể xảy ra là để lấy lại email bị từ chối, hacker có thể thực hiện tấn công DDoS vào server email của nạn nhân hoặc gửi một số lượng lớn các email để tài khoản email của nạn nhân không thể nhận bất kỳ email nào nữa.

Việc khai thác lỗ hổng phụ thuộc vào việc không phải tất cả các web server cho phép hacker thay đổi hostname thông qua SERVER_NAME header, bao gồm WordPress được triển khai trên bất kỳ server chia sẻ nào.

SERVER_NAME server header có thể được thao tác trên cấu hình mặc định của server Apache Web (được triển khai nhiều nhất trên WordPress) thông qua HOST header khi truy vấn HTTP.

Hiện tại lỗ hổng này chưa có bản vá nên các admin của WordPress được khuyến cáo cập nhật cấu hình server để kích hoạt UseCanonicalName và thực thi các giá trị SERVER_NAME tĩnh/xác định trước.

Nguồn: Hackernews
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: whf
Thẻ
lỗ hổng wordpress mật khẩu
Bên trên