Computer >> Máy Tính >  >> Kết nối mạng >> An ninh mạng

Plugin đồng ý cookie GDPR dễ bị tấn công khi kiểm soát truy cập không phù hợp | Cập nhật bây giờ

Plugin chấp thuận cookie GDPR của WordPress, tạo điều kiện cho người dùng tuân thủ GDPR dễ dàng, đã bị phát hiện dễ bị tấn công bởi các biện pháp kiểm soát truy cập không phù hợp. Lỗ hổng này có thể dẫn đến các lỗ hổng nghiêm trọng như leo thang đặc quyền và XSS được lưu trữ trong một trang web. Plugin đồng ý cookie GDPR đang được sử dụng tích cực trên hơn 700000 trang web WordPress tại thời điểm viết bài này.

Plugin đồng ý cookie GDPR dễ bị tấn công khi kiểm soát truy cập không phù hợp | Cập nhật bây giờ

Plugin đồng ý cookie GDPR dễ bị tấn công khi kiểm soát truy cập không phù hợp | Cập nhật bây giờ

Tiến trình của Lỗ hổng bảo mật

  • Được báo cáo vào - ngày 4 tháng 2 năm 2020
  • Đã sửa vào - ngày 10 tháng 2 năm 2020
  • Phiên bản bị ảnh hưởng - Tất cả phiên bản <=1.8.2
  • Phiên bản đã vá - 1.8.3

Lỗ hổng bảo mật đã được báo cáo đầu tiên cho wordpress.org. Đăng lên, plugin đã tạm thời bị xóa khỏi kho lưu trữ WordPress. WordPress đã dỡ bỏ lệnh cấm đối với plugin ngay sau khi bản vá có sẵn vào ngày 10 tháng 2.

Bất kỳ ai sử dụng phiên bản <=1.8.2 đều có thể bị tấn công . Vì vậy, hãy cập nhật lên phiên bản vá lỗi =1.8.3 càng sớm càng tốt.

Hiểu các lỗ hổng của Trình cắm GDPR

Lỗ hổng nằm trong cli_policy_generator trong --construct method. cli_policy_generator được thực thi thông qua WordPress AJAX API - ajax_policy_generator thiếu các kiểm tra khả năng quan trọng. Do đó, mặc dù mã nonce được gửi qua AJAX, nó vẫn chưa được xác minh trong toàn bộ khuôn khổ PHP.

Đến lượt nó, ajax_policy_generator cho phép ba hành động: autosave_contant_data, save_contentdata, get_policy_pageid .

Hai trong số các hành động này - autosave_contant_data, save_contentdata dễ bị tấn công. Trong khi autosave_contant_data có thể dẫn đến leo thang đặc quyền, thì save_contentdata có thể dẫn đến XSS được lưu trữ.

Lỗ hổng trong save_contentdata

Save_contentdata của cli_policy_generator cho phép cookie GDPR được lưu dưới dạng một loại bài đăng trên trang. Khai thác mà bất kỳ người dùng được xác thực nào có quyền thấp như người đăng ký đều có thể thay đổi trạng thái bài đăng. Bất kỳ người dùng được xác thực nào cũng có thể xuất bản một bài đăng hoặc chuyển một bài đã xuất bản sang bản nháp. Hoặc tệ hơn, chuyển toàn bộ trang web sang chế độ nháp khiến nó gặp sự cố.

public function save_contentdata()
{
   $out=array(
      'response'=>true,
      'er'=>''
   );
   $content_data=isset($_POST['content_data']) ? $_POST['content_data'] : array();
   $page_id=(int) isset($_POST['page_id']) ? $_POST['page_id']*1 : 0;
   $enable_webtofee_powered_by=(int) isset($_POST['enable_webtofee_powered_by']) ? $_POST['enable_webtofee_powered_by']*1 : 0;
   $id=wp_insert_post(
      array(
         'ID'=>$page_id, //if ID is zero it will create new page otherwise update
         'post_title'=>'Cookie Policy',
         'post_type'=>'page',
         'post_content'=>Cookie_Law_Info_Cli_Policy_Generator::generate_page_content($enable_webtofee_powered_by,$content_data,0),
         'post_status' => 'draft', //default is draft
      )
   );
   if(is_wp_error($id))
   {
      $out=array(
         'response'=>false,
         'er'=>__('Error','cookie-law-info'),
         //'er'=>$id->get_error_message(),
      );
   }else
   {
      Cookie_Law_Info_Cli_Policy_Generator::set_cookie_policy_pageid($id);
      $out['url']=get_edit_post_link($id);
   }
   return $out;
}

Lỗ hổng trong autosave_contant_data

Autosave_constant_data lưu tạm thời cookie GDPR trong cli_pg_content_data, trong khi quản trị viên vẫn đang chỉnh sửa nó.

Do thiếu kiểm tra xác thực trong cli_pg_content_data, bất kỳ người dùng được xác thực nào cũng có thể đưa mã JavaScript độc hại vào trang web bằng plugin GDPR Cookie Consent.

public function autosave_contant_data()
{
   global $wpdb;
   $scan_table=$wpdb->prefix.$this->main_tb;
   $out=array(
      'response'=>true,
      'er'=>''
   );
   $content_data=isset($_POST['content_data']) ? $_POST['content_data'] : array();
   $page_id=isset($_POST['page_id']) ? $_POST['page_id'] : '';
   $enable_webtofee_powered_by=(int) isset($_POST['enable_webtofee_powered_by']) ? $_POST['enable_webtofee_powered_by']*1 : 0;
   if(is_array($content_data))
   {
      $content_html=Cookie_Law_Info_Cli_Policy_Generator::generate_page_content($enable_webtofee_powered_by,$content_data);
      update_option('cli_pg_content_data',$content_html);
   }else
   {
      $out=array(
         'response'=>false,
         'er'=>__('Error','cookie-law-info')
      );
   }
   return $out;
}

Có sẵn bản vá! Cập nhật ngay bây giờ

Cập nhật lên phiên bản 1.8.3 mới nhất và bảo vệ trang web của bạn bằng tường lửa.

Tường lửa Astra bảo vệ trang web của bạn khỏi các cuộc tấn công như XSS, SQLi, CSRF, LFI, RFI, Spam, bot xấu, OWASP Top 10, v.v. Bắt đầu với Astra rất dễ dàng. Đây là cách thực hiện điều đó:

  • Chọn một gói và đăng ký.
  • Cài đặt Astra bằng cách làm theo một số bước tự phục vụ (mất <5 phút).

Đó là tất cả. Astra Firewall đang tích cực bảo vệ bạn khỏi bất kỳ cuộc tấn công nào có thể xảy ra theo cách của bạn. Giờ đây, bạn có thể theo dõi trang web của mình từ bảng điều khiển Astra.

Plugin đồng ý cookie GDPR dễ bị tấn công khi kiểm soát truy cập không phù hợp | Cập nhật bây giờ

Plugin đồng ý cookie GDPR dễ bị tấn công khi kiểm soát truy cập không phù hợp | Cập nhật bây giờ

Bạn vẫn không chắc chắn? Nhận bản demo Astra từ đây.

Nếu bạn có bất kỳ câu hỏi nào để hỏi bình luận bên dưới hoặc gửi tin nhắn cho chúng tôi. Chúng tôi hứa sẽ trả lời 🙂