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

Lỗ hổng XSS quan trọng trong trò chuyện trực tiếp trên FB messenger

Do sự hiện diện rộng rãi của WordPress, trên thực tế, các hacker cố gắng không ngừng để vượt qua mọi plugin WordPress phổ biến. Do đó, việc tiết lộ lỗ hổng trong các plugin WordPress gần như là một quá trình không bao giờ kết thúc. Lần này trò chuyện trực tiếp FB messenger của nó bởi Zotabox. Vì vậy, một lỗ hổng XSS dai dẳng trong cuộc trò chuyện trực tiếp trên FB messenger của Zotabox đã được phát hiện.

Plugin WordPress này có hơn 30.000 lượt cài đặt đang 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 1.4.9 mới hơn của lỗ hổng đã được vá.

Lỗ hổng XSS quan trọng trong trò chuyện trực tiếp trên FB messenger

Lỗ hổng XSS quan trọng trong trò chuyện trực tiếp trên FB messenger

Chi tiết về lỗ hổng XSS trong cuộc trò chuyện trực tiếp trên FB messenger

Thông qua chức năng WordPress AJAX, có nhiệm vụ gửi dữ liệu tới tập lệnh và sau đó nhận lại dữ liệu mà không cần tải lại trang, chức năng update_zb_fbc_code có thể truy cập cho bất kỳ ai.

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

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 giả mạo yêu cầu trên nhiều trang web (CSRF) trước khi cho phép thay đổi cài đặt plugin. Hơn nữa, việc làm sạch và xác nhận đầu vào để sửa đổi cài đặt bằng chức năng này rất hạn chế. Bộ lọc duy nhất được thực hiện là khử trùng (), không đủ vì các cài đặt đã thay đổi được hiển thị trên giao diện người dùng.

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 trò chuyện trực tiếp trên FB messenger, các quy trình thành công cũng bị ảnh hưởng. Plugin đăng ký insert_zb_fbc_code () để chạy khi các trang WordPress được tải:

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

Sau đó, điều này được truyền đến hàm print_zb_fbc_code (), v.v.

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ất nhưng quan trọng nhất là cập nhật lên phiên bản vá lỗi của plugin. Plugin trò chuyện trực tiếp trên FB Messenger đã được cập nhật lên phiên bản 1.4.9 . Đảm bảo 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 nỗ lực khai thác.

Hơn nữa, hệ thống xác thực và khử trùng mạnh mẽ có thể ngăn 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

Việc coi trọng bảo mật là điều hiển nhiên sẽ khiến bạn phải trả giá rất đắt 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 chặng đường dài trong việc bảo mật trang web của bạn. Các giải pháp bảo mật như Astra WordPress Security Suite, được thiết kế riêng cho WordPress có thể là một vị cứu tinh. Astra cung cấp Tường lửa cho trang web của bạn, đặt hàng rào chống lại XSS, CSRF, bot xấu, SQLi và hơn 100 cuộc tấn công có thể xảy ra khác. Nhận bản demo Astra ngay bây giờ hoặc gửi tin nhắn cho chúng tôi tại đây và chúng tôi sẽ sẵn lòng trợ giúp.