Hướng dẫn bảo vệ trang WordPress của bạn khỏi Genericons Example.html XSS Vulnerability

5 năm trước

 

Giới thiệu 

Ngày 6 tháng 5 năm 2015, một lỗi nghiêm trọng trong WordPress  đã được phát hiện ra và nó có thể ảnh hưởng đến hàng triệu người dùng. Khả năng bị tấn công bắt nguồn từ các thành phần sử dụng gói front có icon "Genericons" , có thể để trang web của bạn mở để tấn công chéo(XSS).

Trong bài viết này chúng tôi sẽ đi giải thích ảnh hưởng của khả năng bị tấn công, làm thế nào để kiểm tra xem trang của bạn có dễ bị tấn công không và chúng ta nên làm gì khi biết trang của mình đang bị tấn công.

 

Giải thích về khả năng bị tấn công

Lỗ hổng thực tế có trong một gói font gọi là "Genericons" chứ không phải là cài đặt WordPress cơ bản. 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. Tính dễ bị tấn công cũng ảnh hưởng đến plugin tùy chỉnh và cải tiến của WordPress được gọi là "JetPack", có hơn một triệu cài đặt đang hoạt động, và có thể cả plugin và chủ đề nữa.

Lỗ hổng tồn tại trong một tệp tin gọi là example.htmll được bao gồm trong gói Genericon. Đây là tệp 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 dựa trên DOM dựa trên DOM. Bất kỳ chủ đề hoặc plugin nào sử dụng các phiên bản hiện đại hơn của gói "Genericons" mà không xoá tệp này đều dễ bị tổn thương

Một cuộc tấn công tập lệnh dựa trên DOM hoạt động bằng cách thay đổi môi trường DOM theo cách giải thích bởi trình duyệt của người dùng, làm cho các hành động được kịch bản thực hiện theo cách trái với thiết kế ban đầu của họ. Để khai thác lỗ hổng này, người dùng phải lôi kéo vào việc nhấp vào một liên kết được tạo ra đặc biệt trong khi đăng nhập vào một cài đặt WordPress. Nếu một ứng dụng có loại lỗ hổng này, máy chủ không thể dễ dàng ngăn chặn các hành vi không mong muốn bởi vì hành động xảy ra trong chính trình duyệt. May mắn thay, loại bỏ các lỗ hổng này là tầm thường 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 sửa lỗi này. Nếu bạn cài đặt hoặc cập nhật lên phiên bản mới nhất của WordPress vào hoặc sau ngày này, cài đặt của bạn sẽ được bảo mật. Bất kỳ CloudServer của ViCloud nào được tạo ra từ WordPress một lần nhấp vào hoặc sau ngày này không dễ bị tấn công.

Nếu bạn đang điều hành một  bản 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ủa bạn có thể dễ bị tấn công. Nếu có, bảng điều khiển quản trị của bạn sẽ hiển thị một cảnh báo trông như sau:

WordPress update warning

Bạn cũng có thể đến root tài liệu của server của bạn và tìm các file example.html. Ví dụ, nếu bạn đang ở root tài liệu của server cua bạn, gõ:

$ find . -path "*/genericons/example.html" 

Kết quả sẽ 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, một file example.html đã được tìm bên trong theme TwentyFifteen, cho biết cài đặt này có thể bị tấn công. File example.html bên trong các theme khác cho thấy ở đây không thực sự dễ bị tấn công bởi vì nó không chứa dòng jQuenry vi phạm. Tìm file example.html trong thư mục twentyfifteen/genericons hoặc trong bất cứ plugin nào bạn có.

 

Làm thế nào để vá bản cài đặt của bạn

Các khuyên dùng để vá hệ thống cuả bạn đơn giản là update WordPress. Nó sẽ không chỉ bảo mật hệ thống của bạn khỏi lỗ hổng đó mà còn bất cứ vấn đề nào đã bị fix.

Nếu quyền cho phép của bạn chp phép vá, bạn thường có thể nâng cấp cài đặt của mình bằng cách sử dụng các điều khiển cập nhật bảng điều khiển quản trị. Bạn có thể thấy tuỳ chọn này dưới dạng liên kết trên trang chính (như được hiển thị trong ảnh chụp màn hình trước đó). Nếu không, bạn có thể vào mục "Updates" trong bảng điều khiển và nhấp vào nút "Update Now":

WordPress update now

Bạn cũng có thể phải update theme và plugin một cách riêng lẻ.

Cho dù chúng tôi cực kì khuyên rằng khi  bạn update WordPress ( bao gồm cả cách theme hay plugin bị ảnh hưởng)xong, bạn có thể sễ dàng tự mình xoá các file vi phạm

Để làm như thế, đăng nhập vào server WordPress và tìm thư mục root tài liệu của bạn. Bạn có thể loại bỏ file vi phạm bằng cách gõ:

$ sudo find . -path "*/genericons/example.html" -exec rm -f {}\; 

Sau đó bạn có thể kiểm tra lại cấu trúc thư mục :

$ find . -path "*/genericons/example.html" 

Tất cả đối tượng example.html trong thư mục genericons nên bị loại bỏ.

Kết luận

Mặc dù số người dùng dễ bị lỗi này rất cao nhưng bản sửa lỗi rất dễ hiểu và có thể được thực hiện thông qua phương pháp cập nhật thông thường của WordPress. Nếu bạn đã quản lý WordPress cài đặt cho mục đích của riêng bạn hoặc cho khách hàng, các bản vá có sẵn trong 4.2.2 sẽ đóng khả năng bị tấn công dễ dàng. Như mọi khi, một trong những cách tốt nhất để giữ bản cài đặt WordPress an toàn là đảm bảo rằng 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