DDos
VIP Members
-
22/10/2013
-
524
-
2.189 bài viết
Plugin WordPress với 5 triệu lượt cài đặt tồn tại lỗ hổng nghiêm trọng
WordPress vừa tiết lộ một lỗ hổng bảo mật nghiêm trọng trong plugin Contact Form 7. Đây là một plugin rất phổ biến với hơn 5 triệu lượt cài đặt. Người dùng được khuyến cáo cập nhật bản vá ngay lập tức.
Lỗ hổng tải tệp không hạn chế
Nhóm bảo mật dự án Contact Form 7 vừa tiết lộ lỗ hổng tải tệp không hạn chế trong WordPress plugin có thể cho phép kẻ tấn công vượt qua các biện pháp bảo vệ khi tải tệp lên.
Kẻ tấn công có thể tải lên một tệp đặc biệt với mã tùy ý trên máy chủ đang sử dụng plugin. Sau đó, thông qua khai thác lỗ hổng, tệp có thể thực thi dưới dạng script (tập lệnh) để chạy mã bên trong máy chủ web.
Nhóm bảo mật của dự án cho biết "Contact Form 7 5.3.2 đã được phát hành. Đây là bản phát hành bảo mật khẩn cấp. Chúng tôi đặc biệt khuyến cáo quản trị viên trang web cập nhật ngay lập tức".
Tấn công Double-extension
Lỗ hổng bảo mật đã được phát hiện và báo cáo bởi chuyên gia Jinson Varghese Behanan từ công ty Astra Security.
Theo chuyên gia này, “Lỗ hổng bảo mật được tìm thấy khi chúng tôi thực hiện kiểm tra bảo mật cho một khách hàng. Trước mức độ nghiêm trọng của lỗ hổng cũng như số lượng trang web WordPress sử dụng plugin phổ biến này, chúng tôi đã nhanh chóng báo cáo lỗ hổng tới nhà phát triển plugin Contact Form 7".
Theo phân tích, lỗ hổng bắt nguồn trong tệp include/formatting.php, đây là một phần của mã plugin Contact Form 7.
Trong các phiên bản tồn tại lỗ hổng, plugin không xóa các ký tự đặc biệt từ tên tệp đã tải lên, bao gồm ký tự điều khiển và dấu phân cách.
Điều này có thể cho phép kẻ tấn công tải lên các tệp mà tên tệp có chứa phần mở rộng kép, được phân tách bằng ký tự đặc biệt hoặc không thể in được như tệp có tên "abc.php .jpg."
Dấu phân cách giữa hai phần mở rộng, trong ví dụ này, là một ký tự tab (\t). Đối với giao diện phía máy khách của Contact Form 7, đây có thể là tệp hình ảnh (* .jpg).
Tuy nhiên, khi được tải lên máy chủ, Contact Form 7 có thể sẽ phân tích cú pháp tên tệp cho đến phần mở rộng đầu tiên và loại bỏ phần mở rộng thứ hai do dấu phân tách.
Do đó, tên tệp mới sẽ trở thành "abc.php", một tập lệnh PHP, từ đó kẻ tấn công có thể truy cập để thực thi mã trên máy chủ.
Bản vá lỗi hiển thị bên dưới đã thêm các thành phần mới để khắc phục trường hợp bỏ qua phần mở rộng của tên tệp khi tồn tại dấu phân tách.
Đây không phải là lần đầu lỗ hổng tải tệp lên webserver với tên tệp có chứa thành phần mở rộng kép tồn tại trong các nền tảng blog và CMS. Tháng trước, các trang web Drupal đã được phát hiện tồn tại lỗ hổng tải tệp lên webserver với cơ chế tương tự.
Quản trị viên trang web có thể cập nhật phiên bản 5.3.2 mới nhất của plugin từ WordPress.
Nhóm bảo mật dự án Contact Form 7 vừa tiết lộ lỗ hổng tải tệp không hạn chế trong WordPress plugin có thể cho phép kẻ tấn công vượt qua các biện pháp bảo vệ khi tải tệp lên.
Kẻ tấn công có thể tải lên một tệp đặc biệt với mã tùy ý trên máy chủ đang sử dụng plugin. Sau đó, thông qua khai thác lỗ hổng, tệp có thể thực thi dưới dạng script (tập lệnh) để chạy mã bên trong máy chủ web.
Nhóm bảo mật của dự án cho biết "Contact Form 7 5.3.2 đã được phát hành. Đây là bản phát hành bảo mật khẩn cấp. Chúng tôi đặc biệt khuyến cáo quản trị viên trang web cập nhật ngay lập tức".
Tấn công Double-extension
Lỗ hổng bảo mật đã được phát hiện và báo cáo bởi chuyên gia Jinson Varghese Behanan từ công ty Astra Security.
Theo chuyên gia này, “Lỗ hổng bảo mật được tìm thấy khi chúng tôi thực hiện kiểm tra bảo mật cho một khách hàng. Trước mức độ nghiêm trọng của lỗ hổng cũng như số lượng trang web WordPress sử dụng plugin phổ biến này, chúng tôi đã nhanh chóng báo cáo lỗ hổng tới nhà phát triển plugin Contact Form 7".
Theo phân tích, lỗ hổng bắt nguồn trong tệp include/formatting.php, đây là một phần của mã plugin Contact Form 7.
Trong các phiên bản tồn tại lỗ hổng, plugin không xóa các ký tự đặc biệt từ tên tệp đã tải lên, bao gồm ký tự điều khiển và dấu phân cách.
Điều này có thể cho phép kẻ tấn công tải lên các tệp mà tên tệp có chứa phần mở rộng kép, được phân tách bằng ký tự đặc biệt hoặc không thể in được như tệp có tên "abc.php .jpg."
Dấu phân cách giữa hai phần mở rộng, trong ví dụ này, là một ký tự tab (\t). Đối với giao diện phía máy khách của Contact Form 7, đây có thể là tệp hình ảnh (* .jpg).
Tuy nhiên, khi được tải lên máy chủ, Contact Form 7 có thể sẽ phân tích cú pháp tên tệp cho đến phần mở rộng đầu tiên và loại bỏ phần mở rộng thứ hai do dấu phân tách.
Do đó, tên tệp mới sẽ trở thành "abc.php", một tập lệnh PHP, từ đó kẻ tấn công có thể truy cập để thực thi mã trên máy chủ.
Bản vá lỗi hiển thị bên dưới đã thêm các thành phần mới để khắc phục trường hợp bỏ qua phần mở rộng của tên tệp khi tồn tại dấu phân tách.
Quản trị viên trang web có thể cập nhật phiên bản 5.3.2 mới nhất của plugin từ WordPress.
Theo: bleepingcomputer