歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

CVE-2019-12498:WordPress WP Live Chat漏洞分析

來源:本站整理 作者:佚名 時間:2019-06-17 TAG: 我要投稿

Alert Logic研究人員在WordPress WP Live Chat插件8.0.32及之前版本中存在一個重要的認證繞過漏洞。攻擊者利用該認證繞過可以在沒有有效憑證的情況下訪問REST API函數,竊取聊天日志和操作聊天會話。
研究人員已經將漏洞報告給場所,并且一些協作發布了補丁。
技術細節
受影響的WP Live Chat版本的受限REST API終端由于wplc_api_permission_check()函數存在漏洞,可能會被未經認證的遠程攻擊者濫用來發現攻擊。

 
代碼: /wp-live-chat-support/modules/api/wplc-api-routes.php [Lines: 11-63, v8.0.32]
register_rest_route()調用定義了由于函數功能本質的原因而REST API終端應當有訪問限制。每個受限的終端都會共享相同的permission_callback函數。
潛在攻擊者會使用這些終端進行惡意目的,包括:
· 提取所有聊天會話的完整聊天歷史記錄;
· 注入任意消息到正在進行的聊天會話中并作為代理;
· 編輯注入的消息來隱藏注入消息所包含的內容;
· 任意編輯活動的聊天會話進行DOS攻擊。

上面的三元組是關鍵的權限檢查邏輯,使用了2個核心的wordpress函數。函數is_user_logged_in()是提取當前WP_User實例的布爾函數,會調用exist()方法。如果數據庫中存在該user id,該方法就返回true,并確認用戶是否登入,是否有有效的WP_User實例。
如果is_user_logged_in()返回true,第一個statement通過函數check_ajax_referer()繼續驗證請求的有效性。額外的有效性檢查會比較提交的隨機數的值來確認請求是不是有效的。
如果is_user_logged_in()返回false,三元組就會返回第二個statement,布爾值true。這里就存在一個認證繞過,成功執行check_ajax_referer()的結果會返回true,并允許訪問終端。
總結來說,上面的三元組statement會產生以下結果:
1.請求來自登入用戶,并提交了所有準確的隨機數值。check_ajax_referer()調用的返回值是true,允許訪問REST終端。
2.請求來自登入用戶,提交的無效的隨機數值。check_ajax_referer()調用的返回值是false,訪問REST終端的請求被拒絕。
3.請求來自非登入用戶,提交的隨機數值可能是有效的也可能是無效的。三元組第二個statement的返回值是true,允許訪問REST終端。
這就允許非認證的用戶訪問受限制的REST API終端,并只對認證的用戶進行強制性的額外認證檢查。非認證的用戶會在沒有額外檢查的情況下馬上授予訪問權限。
研究人員建議用戶更新更新插件到最新版本,如果更新存在困難,可以使用WAF這樣的安全產品來過濾WP Live Chat流量。
 

【聲明】:黑吧安全網(http://www.pcpbjo.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        云南快乐十分前三电视