Ninja Forms là plugin WordPress cho phép trang web tạo và tùy chỉnh biểu mẫu chỉ bằng kéo thả. Hơn nữa, nó hiện được sử dụng trên 1 triệu+ trang web. Dữ liệu này, rõ ràng, gợi ý về sự phổ biến Ninja Forms đang tận hưởng khi tin tức về extension "File upload" của Ninja Forms dễ bị tấn công tải file tùy ý (arbitrary file upload) và truy xuất đường dẫn (path traversal) nổi lên một ngày trước. Và đó là một cú sốc không nhỏ.
Lỗ hổng được phơi bày bởi Onvio information security. Nó thậm chí công bố kết quả pentesting của plugin trong bài viết – PENTEST REVEALS VULNERABILITIES IN WORDPRESS PLUGIN NINJA FORMS <= 3.0.22.
Bạn có thể xem chi tiết tìm thấy trong pentesting trên ở phần sau.
Chi Tiết Lỗ Hổng
Vậy, điều thực sự xảy ra là Onvio khi pentest cho một khách hàng, phát hiện Ninja Forms cho phép truy xuất đường dẫn (path traversal) và thực thi mã tùy ý (Arbitrary code execution).
Điều này cuối cùng cho phép kẻ tấn công không xác thực duyệt hệ thống file để truy cập file quan trọng và thực thi mã qua includes/fields/upload.php (còn gọi là trang upload/submit) tham số name và tmp_name.
Tải File Tùy Ý (Arbitrary File Upload)
Hình sau là yêu cầu gửi đến máy chủ:
Đây là phản hồi nhận được.
Dùng tmp_name trong phản hồi trên, hacker lại tạo yêu cầu đến máy chủ với tên file dùng ngoặc vuông để bỏ qua phát hiện là cố gắng độc hại.
Và, như dự đoán, hàm WordPress sanitize_file_name loại bỏ ngoặc vuông trong trường hợp này, vì nó chỉ làm sạch một tập ký tự đặc biệt được định nghĩa trước. Và file test.png.doc với nội dung <? php phpinfo(); ?> được tải lên thành test.php, việc này xảy ra là file lõi (core file).
Truy Xuất Đường Dẫn (Path Traversal)
Hacker cố gắng lấy file wp-config.php dùng mã sau, và nó确实 trình bày database với chi tiết nhạy cảm.
Làm Sao Để An Toàn?
Vâng, lỗ hổng trong Ninja Forms đã được giảm thiểu bằng việc phát hành phiên bản 3.0.33 thay cho phiên bản dễ bị tấn công 3.0.22. Việc tối thiểu bạn có thể làm bây giờ là cập nhật trang web lên phiên bản này.
Astra Cho WordPress
Có giải pháp bảo mật toàn diện như Astra có thể bảo vệ trang WordPress của bạn 24/7 chống lại mọi loại hack. Tường lửa Astra chủ động giám sát lưu lượng để chặn XSS, CSRF, Bad Bots và 100+ tấn công. Quan trọng nhất, Astra rất giá cả phải chăng ngay cả cho blog cá nhân trên WordPress với giá từ $19. Được xây dựng đặc biệt cho WordPress như CMS(s), Astra có thể bảo vệ bạn khỏi tai họa nghiêm trọng. Nhận demo Astra ngay!