Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> An Ninh Mạng

Phát Hiện Lỗ Hổng XSS Nghiêm Trọng Trong Plugin WordPress Zotabox FB Messenger Live Chat

Nhờ sự hiện diện rộng rãi của WordPress, hacker thực sự liên tục cố gắng vượt qua mọi plugin WordPress phổ biến. Kết quả, việc tiết lộ lỗ hổng trong plugin WordPress gần như là quá trình không bao giờ kết thúc. Lần này là FB messenger live chat của Zotabox. Vì vậy, một lỗ hổng XSS bền bỉ (persistent) trong FB messenger live chat bởi Zotabox đã được khám phá.

Plugin WordPress này có hơn 30.000 cài đặt hoạt động theo thư mục plugin WordPress chính thức. Theo WordPress.org, nó đã được cập nhật một ngày trước với phiên bản mới 1.4.9 đã vá lỗ hổng.

Phát Hiện Lỗ Hổng XSS Nghiêm Trọng Trong Plugin WordPress Zotabox FB Messenger Live Chat

Phát Hiện Lỗ Hổng XSS Nghiêm Trọng Trong Plugin WordPress Zotabox FB Messenger Live Chat

Chi Tiết Lỗ Hổng XSS Trong FB Messenger Live Chat

Thông qua chức năng AJAX của WordPress, chịu trách nhiệm gửi dữ liệu đến script và nhận dữ liệu lại mà không cần tải lại trang, hàm update_zb_fbc_code có thể truy cập bởi bất kỳ ai.

Như bạn sẽ thấy trong các dòng mã sau rằng wp_ajax_update_zb_fbc_code (cho người dùng đã xác thực) & wp_ajax_nopriv_update_zb_fbc_code (cho người dùng không có đặc quyền), cả hai đều dùng cùng hàm "update_zb_fbc_code". Do đó, cho phép bất kỳ user nào (đã đăng nhập hoặc không) sửa cài đặt plugin. Tôi không thể nhấn mạnh đủ mức độ quan trọng của lỗ hổng này và các cách nó có thể bị lạm dụng.

154 add_action("wp_ajax_update_zb_fbc_code", "update_zb_fbc_code"); 155 add_action("wp_ajax_nopriv_update_zb_fbc_code", "update_zb_fbc_code");

Hơn nữa, hàm update_zb_fbc_code không kiểm tra không có khả năng kiểm tra hoặc kiểm tra để ngăn chặn giả mạo yêu cầu cross-site (CSRF) trước khi cho phép thay đổi cài đặt plugin. Thêm vào đó, làm sạch (sanitization) và xác thực (validation) đầu vào để sửa cài đặt bởi hàm này rất hạn chế. Lọc duy nhất nó làm là làm sạch (), điều này không đủ vì cài đặt thay đổi được hiển thị ở front-end.

157 function update_zb_fbc_code(){ 158 header('Access-Control-Allow-Origin: *'); 159 header('Access-Control-Allow-Credentials: true'); 160 $domain = addslashes($_REQUEST['domain']); 161 $public_key = addslashes($_REQUEST['access']); 162 $id = intval($_REQUEST['customer']); 163 $zbEmail = addslashes($_REQUEST['email']); 164 if(!isset($domain) || empty($domain)){ 165 header("Location: ".admin_url()."admin.php?page=zb_fbc"); 166 }else{ 167 update_option( 'ztb_domainid', $domain ); 168 update_option( 'ztb_access_key', $public_key ); 169 update_option( 'ztb_id', $id ); 170 update_option( 'ztb_email', $zbEmail ); 171 update_option( 'ztb_status_disconnect', 2 ); 172 wp_send_json( array( 173 'error' => false, 174 'message' => 'Update Zotabox embedded code successful !' 175 ) 176 ); 177 } 178 }

Do lỗ hổng XSS này trong FB messenger live chat, các quy trình tiếp theo cũng bị ảnh hưởng. Plugin đăng ký insert_zb_fbc_code() để chạy khi trang WordPress tải:

151 add_action( 'wp_head', 'insert_zb_fbc_code' );

Sau đó được truyền đến hàm print_zb_fbc_code() và tiếp tục.

139 function insert_zb_fbc_code(){ 140 if(!is_admin()){ 141 $domain = get_option( 'ztb_domainid', '' ); 142 $ztb_source = get_option('ztb_source',''); 143 $ztb_status_disconnect = get_option('ztb_status_disconnect',''); 144 $connected = 2; 145 if(!empty($domain) && strlen($domain) > 0 && $ztb_status_disconnect == 146$connected){ 147 print_r(html_entity_decode(print_zb_fbc_code($domain))); 148 } 149 } 150 }
180 function print_zb_fbc_code($domainSecureID = "", $isHtml = false) { 181 182 $ds1 = substr($domainSecureID, 0, 1); 183 $ds2 = substr($domainSecureID, 1, 1); 184 $baseUrl = '//static.zotabox.com'; 185 $code = <<<STRING 186 <script type="text/javascript"> 187 (function(d,s,id){var z=d.createElement(s);z.type="text/javascript";z.id=id;z.async=true;z.src=" {$baseUrl}/{$ds1}/{$ds2}/{$domainSecureID}/widgets.js";var sz=d.getElementsByTagName(s)[0];sz.parentNode.insertBefore(z,sz)}(document,"script","zb-embed-code")); 188 </script> 189 STRING; 190 return $code; 191 }

Cập Nhật Để An Toàn

Biện pháp an toàn rõ ràng nhưng quan trọng nhất là cập nhật lên phiên bản đã vá của plugin. Plugin FB messenger live chat đã được cập nhật lên phiên bản 1.4.9. Hãy chắc chắn bạn cập nhật lên phiên bản này càng sớm càng tốt để giảm thiểu mọi cố gắng khai thác.

Hơn nữa, hệ thống làm sạch và xác thực mạnh mẽ có thể bảo vệ trang web của bạn khỏi các trường hợp như XSS và CSRF v.v.

Giải Pháp Bảo Mật Toàn Diện

Có thể coi thương bảo mạt sẽ làm bạn trả giá rất lớn trong những thời điểm này. Có một hệ thống giám sát liên tục và toàn diện cho trang web của bạn sẽ đi một quảng đường dài trong việc bảo mạt trang web. Giái pháp bảo mạt như Astra WordPress Security Suite, được điều chỉnh cho WordPress có thể là một cứu tinh. Astra cung cấp Tường lửa cho trang web, đặt rào cán đối với XSS, CSRF, Bad bots, SQLi và 100+ tán công khác. Nhận demo Astra ngay hoặc nhắn tin ở đây, chúng tôi sẽ vui lòng giúp đỡ.