Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

FB 메신저 라이브 채팅의 치명적인 XSS 취약점

WordPress의 광범위한 존재로 인해 실제로 해커는 모든 인기 있는 WordPress 플러그인을 지나치려고 끊임없이 시도합니다. 결과적으로 WordPress 플러그인의 취약점 공개는 거의 끝나지 않는 프로세스처럼 보입니다. 이번에는 Zotabox의 FB 메신저 라이브 채팅입니다. 따라서 Zotabox의 FB 메신저 라이브 채팅에서 영구적인 XSS 취약점이 발견되었습니다.

이 WordPress 플러그인에는 공식 WordPress 플러그인 디렉토리에 따라 30,000개 이상의 활성 설치가 있습니다. WordPress.org에 따르면 패치된 취약점의 최신 버전 1.4.9로 하루 전에 업데이트되었습니다.

FB 메신저 라이브 채팅의 치명적인 XSS 취약점

FB 메신저 라이브 채팅의 치명적인 XSS 취약점

FB 메신저 라이브 채팅의 XSS 취약점 세부정보

데이터를 스크립트로 보낸 다음 페이지를 다시 로드할 필요 없이 데이터를 다시 받는 역할을 하는 WordPress AJAX 기능을 통해 update_zb_fbc_code 누구나 액세스할 수 있습니다.

다음 코드 줄에서 볼 수 있듯이 wp_ajax_update_zb_fbc_code (인증된 사용자의 경우) &wp_ajax_nopriv_update_zb_fbc_code (권한이 없는 사용자의 경우) 둘 다 "update_zb_fbc_code 동일한 기능을 사용합니다. ". 따라서 모든 사용자(로그인 여부)가 플러그인 설정을 수정할 수 있습니다. 취약점이 얼마나 중요한지, 어떤 방식으로 악용될 수 있는지 아무리 강조해도 지나치지 않습니다.

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");

또한, update_zb_fbc_code 함수는 Cross-Site Request Forgery(CSRF)를 방지하기 위한 검사 또는 검사 기능을 가지고 있지 않습니다. 플러그인 설정 변경을 허용하기 전에. 또한 이 기능으로 설정을 수정하기 위한 입력의 살균 및 유효성 검사는 매우 제한적입니다. 필터링은 ()을 살균하는 것뿐이며, 변경된 설정이 프런트 엔드에서 렌더링되기 때문에 충분하지 않습니다.

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 }

FB 메신저 라이브 채팅의 이러한 XSS 취약점으로 인해 후속 프로세스도 영향을 받습니다. 플러그인은 WordPress 페이지가 로드될 때 실행할 insert_zb_fbc_code()를 등록합니다.

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

그런 다음 이것은 print_zb_fbc_code() 함수 등으로 전송됩니다.

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 }

안전을 위한 업데이트

가장 분명하면서도 중요한 안전 조치는 플러그인의 패치 버전으로 업데이트하는 것입니다. FB 메신저 라이브 채팅 플러그인이 버전 1.4.9로 업데이트되었습니다. . 악용 시도를 최소화하려면 가능한 한 빨리 이 버전으로 업데이트하십시오.

또한 강력한 살균 및 검증 시스템으로 웹사이트가 XSS 및 CSRF 등의 경우로부터 보호될 수 있습니다.

포괄적인 보안 솔루션

이 시대에 보안을 당연시하는 것은 비용이 많이 들 것입니다. 웹사이트에 대한 지속적이고 포괄적인 모니터링 시스템을 보유하면 웹사이트 보안에 큰 도움이 됩니다. WordPress에 맞게 조정된 Astra WordPress Security Suite와 같은 보안 솔루션은 구원자가 될 수 있습니다. Astra는 XSS, CSRF, 나쁜 봇, SQLi 및 기타 100개 이상의 가능한 공격에 대한 장벽을 설정하는 방화벽을 웹사이트에 제공합니다. 지금 Astra 데모를 받거나 여기에 메시지를 남겨주시면 기꺼이 도와드리겠습니다.