Cách bảo vệ trang web WordPress của bạn khỏi Genericons Example.html Lỗ hổng XSS
Vào ngày 6 tháng 5 năm 2015, một lỗi WordPress nghiêm trọng đã được tiết lộ có khả năng ảnh hưởng đến hàng triệu user . Lỗ hổng bảo mật, thực sự bắt nguồn từ các thành phần sử dụng gói phông chữ biểu tượng “Genericons”, có thể khiến trang web dễ bị tấn công bởi các cuộc tấn công tập lệnh trên nhiều trang web (XSS).Trong bài viết này, ta sẽ giải thích tác động của lỗ hổng, làm thế nào để kiểm tra xem trang web là rủi ro bảo mật , và những hành động bạn nên thực hiện nếu bạn thấy rằng bạn đang bị ảnh hưởng.
Giải thích về Lỗ hổng bảo mật
Lỗ hổng thực tế có trong gói phông chữ có tên là “Genericons” chứ không phải cài đặt WordPress cốt lõi. Thật không may, gói phông chữ này được sử dụng bởi “TwentyFifteen”, chủ đề được cài đặt và kích hoạt trong WordPress theo mặc định. Lỗ hổng bảo mật cũng ảnh hưởng đến một plugin nâng cao và tùy chỉnh WordPress phổ biến có tên là “JetPack”, có hơn một triệu lượt cài đặt đang hoạt động và có thể cả các plugin và chủ đề nữa.
Lỗ hổng bảo mật tồn tại trong một file duy nhất được gọi là example.html
có trong gói Genericon. Đây là một file không cần thiết được bao gồm để giới thiệu phông chữ. Tuy nhiên, nó bao gồm một đoạn mã jQuery giới thiệu một lỗ hổng có khả năng cho phép khai thác tập lệnh trang web chéo dựa trên DOM. Bất kỳ chủ đề hoặc plugin nào đã sử dụng các version hiện đại hơn của gói “Genericons” mà không xóa file này đều dễ bị tấn công.
Một cuộc tấn công tập lệnh chéo trang web dựa trên DOM hoạt động bằng cách thay đổi môi trường DOM như được trình duyệt của user diễn giải, khiến các hành động theo tập lệnh thực thi theo cách trái với thiết kế ban đầu của chúng. Để khai thác lỗ hổng, user phải bị lôi kéo nhấp vào một liên kết được chế tạo đặc biệt khi đăng nhập vào cài đặt WordPress. Nếu một ứng dụng có loại lỗ hổng này, server không thể dễ dàng ngăn chặn hành vi không mong muốn vì các hành động xảy ra trong chính trình duyệt. May mắn là việc loại bỏ lỗ hổng bảo mật là rất nhỏ trong trường hợp này.
Server của tôi có lỗ hổng này không?
Vào ngày 7 tháng 5 năm 2015, WordPress 4.2.2 đã được phát hành, bản vá lỗi này. Nếu bạn đã cài đặt hoặc cập nhật lên version WordPress mới nhất vào hoặc sau ngày này, cài đặt của bạn phải được bảo mật. Bất kỳ server DigitalOcean nào đã được tạo từ WordPress bằng một cú nhấp chuột vào hoặc sau ngày này sẽ không dễ bị tấn công.
Nếu bạn đang vận hành version WordPress đã được cài đặt trước ngày này và chưa cập nhật lên 4.2.2, trang web có thể dễ bị tấn công. Nếu vậy, console quản trị của bạn sẽ hiển thị một cảnh báo giống như sau:
Bạn cũng có thể truy cập folder root của server và tìm kiếm các file example.html
. Ví dụ: nếu bạn đang ở trong folder root của server , có thể chạy lệnh:
- find . -path "*/genericons/example.html"
Kết quả trông như sau :
find output./wp-content/themes/twentythirteen/genericons/example.html ./wp-content/themes/twentyfifteen/genericons/example.html ./wp-content/themes/twentyfourteen/genericons/example.html
Trong ví dụ trên, file example.html
được tìm thấy trong chủ đề TwentyFifteen, cho biết rằng cài đặt này dễ bị tấn công. Các file example.html
trong các chủ đề khác được hiển thị ở đây thực sự không dễ bị tấn công vì chúng không bao gồm các dòng jQuery vi phạm. Tìm kiếm các file example.html
trong folder twentyfifteen/genericons
hoặc trong bất kỳ plugin nào bạn có thể có.
Cách vá cài đặt của bạn
Cách được khuyến khích để vá hệ thống của bạn là nâng cấp WordPress. Điều này sẽ không chỉ bảo mật hệ thống của bạn chống lại lỗ hổng này mà còn bất kỳ vấn đề nào khác có thể đã được khắc phục.
Nếu quyền của bạn cho phép, bạn thường có thể nâng cấp cài đặt của bạn bằng cách sử dụng các điều khiển cập nhật bảng quản trị. Bạn có thể thấy tùy chọn này dưới dạng một liên kết trên trang chính ( như trong ảnh chụp màn hình trước đó). Nếu không, bạn có thể chuyển đến tùy chọn “Cập nhật” trong console và nhấp vào nút “Cập nhật ngay”:
Bạn cũng sẽ phải cập nhật các chủ đề và plugin của bạn một cách riêng biệt.
Mặc dù ta thực sự khuyên bạn nên cập nhật WordPress hoàn toàn (cùng với bất kỳ chủ đề hoặc plugin nào bị ảnh hưởng), bạn cũng có thể dễ dàng xóa các file vi phạm theo cách thủ công.
Để làm như vậy, hãy đăng nhập vào server WordPress của bạn và chuyển đến folder root tài liệu của bạn. Bạn có thể xóa các file vi phạm bằng lệnh :
- sudo find . -path "*/genericons/example.html" -exec rm -f {} \;
Sau đó, bạn có thể kiểm tra lại cấu trúc folder của bạn :
- find . -path "*/genericons/example.html"
Tất cả các version example.html
trong folder genericons
sẽ bị xóa.
Kết luận
Mặc dù số lượng user dễ bị tấn công bởi lỗi này rất cao, nhưng việc khắc phục lỗi này rất nhanh chóng và có thể được thực hiện thông qua phương pháp cập nhật WordPress thông thường. Nếu bạn đã quản lý các cài đặt WordPress cho mục đích riêng của bạn hoặc cho khách hàng, bản vá có sẵn trong 4.2.2 sẽ dễ dàng đóng lỗ hổng này. Như mọi khi, một trong những phương pháp tốt nhất để giữ an toàn cho các bản cài đặt WordPress của bạn là đảm bảo bạn áp dụng bất kỳ bản cập nhật bảo mật nào ngay lập tức.
Các tin liên quan