Plugin Gutenberg và Elementor Templates Importer For Responsive còn có tên khác là Responsive Ready Sites Importer. Đây là một trong những Plugin miễn phí “xịn xò” nhất cho WordPress hiện nay, đã xuất hiện lỗi. Đó là lỗi gì? Mức độ nghiêm trọng như thế nào và khắc phục ra sao? Plugin Gutenberg và Elementor Templates Importer For Responsive
Trình soạn thảo bài viết và trang mới cho WordPress – Plugin Gutenberg
Trước khi có Plugin Gutenberg, nhân WordPress chỉ hỗ trợ các bài viết đơn giản. Muốn viết các layout phức tạp hơn, người dùng chỉ có thể kết hợp với các plugin bên thứ ba và code tuỳ biến. Plugin Gutenberg ra đời cho phép người dùng xây dựng một kiểu có cấu trúc và trực quan hơn.
Mục đích của các nhà phát triển dự án này là muốn làm cho bố cục tiên tiến dễ tiếp cận hơn với người dùng WordPress trung bình. Cái tên Gutenberg xuất phát từ Johannes Gutenberg. Ông là người đã giới thiệu máy in cơ khí và bắt đầu cuộc cách mạng in ấn ở châu Âu. Điểm tương đồng giữa tên ông và dự án là đều “đơn giản hóa” để đông đảo người dùng có thể dễ dàng sử dụng.
Nói cách khác, Gutenberg chuyển đổi hệ thống chỉnh sửa nội dung cốt lõi trong WordPress “thân thiện” với người dùng. Không cần hiểu nhiều về HTML hoặc CSS để tạo 2 blocks nội dung bên cạnh nhau, người dùng phổ thông hoàn toàn có thể tiếp cận với các layouts phức tạp hơn.
Elementor Templates Importer For Responsive
Đây là plugin page builder có tốc độ phát triển người dùng nhanh nhất hiện nay. Sự phổ biến này khiến cho rất nhiều plugin bên thứ ba bổ sung thêm tính năng, widget template. Bạn sẽ thoải mái lựa chọn templates ưng ý mà lại hoàn toàn miễn phí.
Tuy miễn phí nhưng người dùng lại rất hài lòng về chất lượng của plugin này. Bản miễn phí của Elementor có rất nhiều tính năng giúp người dùng chủ động thiết kế đầy đủ một landing page cơ bản đẹp mắt.
Lỗi nghiêm trọng đến từ Plugin Gutenberg và Elementor Templates Importer For Responsive là gì?
Ngày 02/03/2020, một số điểm cuối dễ bị tấn công trong Gutenberg và Elementor Templates Importer For Responsive đã được nhóm Threat Intelligence phát hiện. Điều nghiêm trọng là các lỗ hổng này cho phép:
- Bất kỳ người dùng nào cũng được xác thực, kể cả người dùng có quyền cấp độ thuê bao tối thiểu.
- Tất cả cấp độ đặc quyền, khả năng thực thi các hành động AJAX khác nhau đều có thể đặt lại dữ liệu trang web, tiêm JavaScript độc hại vào các trang, sửa đổi dữ liệu tùy biến chủ đề, nhập tệp .xml và .json và kích hoạt nhiều plugin hành động khác.
Ngay sau khi phát hiện, vào ngày 03/03/2020, nhóm Threat Intelligence đã liên hệ với nhà phát triển Plugin để báo cáo tình trạng này. Sau khi kiểm tra, nhà phát triển đã phát hành các bản vá bao gồm nonce và kiểm tra quyền trên gần như tất cả các điểm cuối AJAX. Sáng hôm sau, nhóm Threat Intelligence gửi toàn bộ chi tiết lỗ hổng. Ngày 12/03/2020, bản vá lỗi đã được cập nhật ở phiên bản 2.2.7.
Lỗi này đã ảnh hưởng nghiêm trọng đến vấn đề bảo mật. Những kẻ tấn công chiếm lĩnh hoàn toàn các trang web WordPress của bạn. Nếu đang sử dụng Plugin này, bạn hãy chủ động cập nhật lên phiên bản mới nhất để vá lỗi.
Thông tin thêm từ WORDFENCE ( Translate )
- Mô tả : Các hành động AJAX không được bảo vệ
- Plugin bị ảnh hưởng: Gutenberg & Elementor Templates Importer For Responsive
cắm bổ sung Slug: responsive-add-ons
- Phiên bản bị ảnh hưởng: <= 2.2.5
- ID CVE: Sẽ được cập nhật khi được cung cấp định danh.
- CVSS Điểm: 9.1 (Quan trọng)
- Vector CVSS: CVSS: 3.0 / AV: N / AC: L / PR: L / UI: N / S: C / C: L / I: H / A: L
- Phiên bản vá hoàn toàn: 2.2 .6
Chức năng nhập dựa trên các hành động AJAX khác nhau, với các chức năng khác nhau từ việc đặt lại dữ liệu trang web trước khi nhập tất cả các cách để nhập tệp .xml và .json để cung cấp dữ liệu cho quá trình nhập. Threat Intelligence đã phát hiện ra 23 điểm cuối dễ bị tấn công và phần lớn trong số này được tìm thấy trong tệp
/ class-responsive- yet-sites-importer.php./**
* Constructor.
*
* @since 1.0.0
*/
publicfunction__construct() {
add_action('init',array($this,'load_importer') );
$responsive_ready_sites_importers_dir= plugin_dir_path(__FILE__);
require_once$responsive_ready_sites_importers_dir.'class-responsive-ready-sites-importer-log.php';
include_once$responsive_ready_sites_importers_dir.'class-responsive-ready-sites-widgets-importer.php';
include_once$responsive_ready_sites_importers_dir.'class-responsive-ready-sites-options-importer.php';
// Import AJAX.
add_action('wp_ajax_responsive-ready-sites-import-set-site-data-free',array($this,'import_start') );
add_action('wp_ajax_responsive-ready-sites-import-xml',array($this,'import_xml_data') );
add_action('wp_ajax_responsive-ready-sites-import-wpforms',array($this,'import_wpforms') );
add_action('wp_ajax_responsive-ready-sites-import-customizer-settings',array($this,'import_customizer_settings') );
add_action('wp_ajax_responsive-ready-sites-import-widgets',array($this,'import_widgets') );
add_action('wp_ajax_responsive-ready-sites-import-options',array($this,'import_options') );
add_action('wp_ajax_responsive-ready-sites-import-end',array($this,'import_end') );
add_action('responsive_ready_sites_import_complete',array($this,'clear_cache') );
include_once$responsive_ready_sites_importers_dir.'batch-processing/class-responsive-ready-sites-batch-processing.php';
// Reset Customizer Data.
add_action('wp_ajax_responsive-ready-sites-reset-customizer-data',array($this,'reset_customizer_data') );
add_action('wp_ajax_responsive-ready-sites-reset-site-options',array($this,'reset_site_options') );
add_action('wp_ajax_responsive-ready-sites-reset-widgets-data',array($this,'reset_widgets_data') );
// Reset Post & Terms.
add_action('wp_ajax_responsive-ready-sites-delete-posts',array($this,'delete_imported_posts') );
add_action('wp_ajax_responsive-ready-sites-delete-wp-forms',array($this,'delete_imported_wp_forms') );
add_action('wp_ajax_responsive-ready-sites-delete-terms',array($this,'delete_imported_terms') );
if( version_compare( get_bloginfo('version'),'5.0.0','>=') ) {
add_filter('http_request_timeout',array($this,'set_timeout_for_images'), 10, 2 );
}
}
Sử dụng import_start hàm gắn với
wp_ajax_responsive-ready-sites-import-set-site-data-free hành động như ví dụ bên dưới.
**
* Start Site Import
*
* @since 1.0.0
* @return void
*/
publicfunctionimport_start() {
$demo_api_uri= isset($_POST['api_url'] ) ? esc_url($_POST['api_url'] ) :'';//phpcs:ignore
if( !empty($demo_api_uri) ) {
$demo_data= self::get_responsive_single_demo($demo_api_uri);
if( !$demo_data['success'] ) {
wp_send_json($demo_data);
}
update_option('responsive_ready_sites_import_data',$demo_data);
if( is_wp_error($demo_data) ) {
wp_send_json_error($demo_data->get_error_message() );
}else{
do_action('responsive_ready_sites_import_start',$demo_data,$demo_api_uri);
}
wp_send_json_success($demo_data);
}else{
wp_send_json_error( __('Request site API URL is empty. Try again!','responsive-addons') );
}
}
Tất cả các hành động dễ bị tấn công có thể được gọi với một yêu cầu đơn giản /wp-admin/admin-ajax.php?action=[Vulnerable-Action]cùng với các tham số thích hợp.
Biện pháp khắc phục lỗi đến từ Plugin Gutenberg và Elementor Templates Importer For Responsive
Kiểm tra kỹ hơn các điểm cuối
Thao tác như sau:
- Trong quy trình nhập, để cung cấp dữ liệu, bạn nên thực hiện hành động AJAX wp_ajax_responsive-ready-sites-import-xml kích hoạt một hàm nhập tệp XML.
- Sau đó, hành động AJAX này sẽ kích hoạt chức năng nhập tất cả dữ liệu từ tệp XML đã nhập trước đó.
Việc áp dụng hai hành động này song song sẽ cho phép kẻ tấn công nhập tệp XML chứa các tải trọng độc hại như các trang mới trên trang web. Các tải trọng độc hại sau đó sẽ được thực thi bất cứ khi nào người dùng duyệt đến trang mới được nhập. Hậu quả xảy ra là dẫn đến chuyển hướng trang web độc hại và tạo người dùng quản trị giả mạo.
Để ghi đè dữ liệu trang web bằng dữ liệu độc hại do mình chọn, hacker có thể sử dụng những hành động AJAX sau:
- wp_ajax_responsive-ready-sites-import-options
- wp_ajax_responsive-ready-sites-import-widgets
- wp_ajax_responsive-ready-sites-import-customizer-settings
Lưu ý cho chủ sở hữu trang web và nhà phát triển WordPress
Chủ sở hữu trang web
Các điểm cuối AJAX dễ bị tấn công là một lỗ hổng rất phổ biến trong số các plugin và chủ đề WordPress. Nếu chức năng “đăng ký người dùng” không cần thiết cho trang web, bạn nên vô hiệu hóa nó.
Bạn cũng nên đảm bảo các plugin và chủ đề của bạn luôn cập nhật mọi lúc vì các lỗ hổng này thường được phát hiện và vá ngay lập tức. Tường lửa ứng dụng Web có thể “chữa cháy” nếu bản vá không được phát hành nhanh chóng.
Nhà phát triển
Kiểm tra khả năng và bảo vệ CSRF trên các chức năng được kiểm soát bởi các hành động AJAX trong plugin và chủ đề là việc bạn không nên bỏ qua. Nếu không áp dụng các biện pháp bảo mật thích hợp, chỉ cần người dùng ở cấp độ thuê bao trở lên có khả năng thực hiện các hành động này.
Người dùng nên:
- Kiểm tra khả năng của người dùng đối với các hành động bằng cách sử dụng các chức năng như current_user_can()
- Xác minh tính hợp pháp của nguồn yêu cầu để bảo vệ chống lại CSRF trên tất cả các chức năng AJAX qua: wp_create_nonce()và wp_verify_nonce()
Là một nhà phát triển Plugin, bạn phải thực hiện các bước phòng ngừa chống lại việc tạo ra các lỗ hổng này. Còn nếu là chủ sở hữu trang web, bạn cũng phải tự bảo vệ mình trước những người này.
An toàn dữ liệu cá nhân
Để tránh trường hợp xấu nhất, bạn nên chủ động truy cập website của mình và chủ động tạo bản backup sao lưu
dữ liệu. Nếu không có nhiều kiến thức chuyên môn, bạn nên chọn một nhà cung cấp dịch vụ Hosting / VPS uy tín có hỗ trợ các bản
Backup. Việc backup dữ liệu liên tục trong thời gian ngắn hạn để có thể giữ website của mình an toàn nhất có thể và bạn có thể khôi phục lại bất cứ lúc nào.
Dịch vụ Backup ngắn hạn của TinoHost tự tin đảm bảo sao lưu dữ liệu cá nhân của bạn tốt nhất!
Mọi thắc mắc và góp ý liên quan, xin vui lòng
liên hệ ngay TinoHost để được tư vấn chi tiết nhé!
Hỗ trợ 24/7/365 – “đúng doanh nghiệp – đúng dịch vụ – đúng khả năng”
Với đội ngũ nhân viên chuyên môn cao, trang thiết bị tối tân cùng tinh thần tận tâm
hỗ trợ 24/7/365, TinoHost tự tin cung cấp
dịch vụ tên miền ,
hosting tối ưu và hệ thống
máy chủ mạnh mẽ với chi phí tốt nhất cho doanh nghiệp của bạn.
Chỉ cần để lại thông tin cá nhân của bạn, chuyên viên tư vấn của TinoHost sẽ giúp bạn chọn được giải pháp tốt nhất cho tên miền và hosting. Đừng để công nghệ trở thành rào cản quá trình phát triển công ty bạn.
Với bề dày kinh nghiệm hơn 5 năm cung cấp hosting, dịch vụ cho thuê máy chủ, các dịch vụ liên quan đến tên miền và bảo mật website, hãy để
TinoHost đồng hành cùng bạn khẳng định thương hiệu trên bản đồ công nghệ toàn cầu!
-
Văn phòng đại diện: Tầng 31, Tòa L2, Vinhomes Central Park, 720A Điện Biên Phủ, P.22, Q.Bình Thạnh, Thành phố Hồ Chí Minh
- Website: