Canopy家長控制應用程式曝出XSS漏洞

語言: CN / TW / HK

研究人員稱,Canopy是一個家長控制應用程式,它提供了一系列的功能,可以通過內容檢查來保護孩子們上網,但它卻很容易受到各種跨站指令碼(XSS)攻擊。

這些攻擊可以造成禁用孩子的監控甚至是更嚴重的後果,還可以向家長提供惡意軟體。

Canopy提供了防止色情簡訊、裝置照片保護(通過影象過濾)、螢幕時間監控、為父母提供兒童通訊警報、違規網站的智慧內容過濾,同時,Canopy還使用了人工智慧引擎和虛擬網路過濾功能。此外,對於父母來說,它還提供了遠端裝置管理和控制孩子使用的應用程式和網站的功能。

據安全研究員稱,該應用的安裝過程需要授予一系列的許可權,包括無障礙支援、在其他應用程式之上顯示的功能、安裝根CA和虛擬網路配置。該應用程式還可以(選擇性地)充當裝置管理員,防止應用程式被刪除......這種特權訪問會給裝置的安全和使用這些裝置的兒童的隱私帶來相當大的風險。

該應用程式被曝出XSS漏洞

事實證明,研究人員的想法並沒有錯。在研究該應用程式的安卓版本時,研究人員發現了幾個XSS漏洞,當惡意指令碼被注入到其他正常的或受信任的網站時,就會發生這種攻擊。

這種注入通常是通過將惡意程式碼輸入到網路響應或評論欄位來實現的,然後有效載荷就會被髮送到網路伺服器。通常情況下,這些響應會在伺服器端被驗證,因此惡意指令碼就會被阻止了。但在Canopy公司的案例中,研究人員發現該應用缺乏這些方面的檢查。

一旦網站被入侵後,那麼該網站的任何訪問者都有可能成為受害者,要麼是被儲存型XSS攻擊,要麼是被引誘點選一個連結,被反射型XSS攻擊。

漏洞簡析

第一個問題是該應用程式的保護措施可以被繞過。

當研究人員測試Canopy的遮蔽不良網站核心功能時,他發現當他試圖在測試的安卓裝置上載入一個被禁止的網站時,顯示的是一個遮蔽通知頁面。該通知頁面內有一個按鈕,它可以使孩子要求他或她的父母允許所要訪問的頁面。

當在測試裝置上點選了這個按鈕後,然後在響應的資料中附加上了一個簡單的XSS有效載荷指令碼,在待訪問的網站上建立一個JavaScript彈出視窗,仔細觀察會發生什麼。當他進入網站時,果然,出現了彈視窗。

該漏洞產生的原因是由於系統未能對使用者輸入的內容進行轉義。研究人員發現,該欄位只允許使用者輸入50個字元,但這就足以輸入一個外部指令碼。現在我們可以有多種方法來利用這個漏洞。

攻擊者(例如被監控的孩子)可以在異常請求中嵌入一個有效攻擊載荷。雖然攻擊者有多種方式利用這個漏洞,但很明顯最簡單的方式是自動批准一個請求。這裡第一個測試的是一個自動點選批准傳入的有效載荷。又測試了另一個有效載荷,它可以自動暫停監控保護。

外來攻擊者對Canopy進行攻擊

雖然熟悉指令碼知識的孩子可以對父母進行網路攻擊,但研究人員也發現它還可以產生更嚴重的後果。

例如,他觀察到阻止通知頁面中的URL值(表明哪個網站被拒絕)會顯示在父母儀表板的主頁面上。研究人員在這裡做了一個簡單的測試,在URL中添加了一個指令碼標籤,並在父控制檯進行載入,當載入父儀表板的主頁面時該指令碼就會執行。我們現在可以提交一個異常請求,當父母登入檢查被監控的裝置時,攻擊者就可以控制Canopy應用程式了。

此外,由於攻擊需要使用一個特製的URL,因此攻擊完全有可能來自外部的第三方平臺。攻擊者只需要建立一個可能被遮蔽的網站,並在其URL中新增指令碼,並誘導孩子嘗試訪問它。當有關訪問請求的通知傳到家長控制檯時,監控該賬戶的家長就會成為惡意指令碼的受害者。

但這還不是全部。事實證明,Canopy API的設計允許外部攻擊者通過猜測父賬戶的ID,直接將XSS有效載荷注入到父母賬戶的網頁上。這還可能會將使用者重定向到廣告頁面、進行其他漏洞利用、進行惡意軟體攻擊等後果。最糟糕的是,攻擊者還可以劫持對安裝在孩子手機上的應用程式的訪問,並從受保護的裝置中提取GPS座標。

由於使用者的賬戶ID是一串很簡短的數值,因此,攻擊者只需依次對每個ID值發出阻斷異常請求,就可以在每個賬戶上使用攻擊載荷。

最糟糕的是Canopy沒有釋出補丁

研究人員說,他多次通過電話和電子郵件與該公司進行聯絡,但幾乎沒有得到迴應,因此他決定披露這些漏洞。他補充說,為了防止兒童受到攻擊,開發商應該儘快提出修復措施。

Canopy需要對所有使用者輸入的欄位進行轉義,但實際上它並沒有這樣做。在反覆嘗試與供應商進行合作後,為方便其他人可以從中瞭解並採取相應的措施,最終決定公佈這份報告 。

本文翻譯自:https://threatpost.com/canopy-parental-control-app-unpatched-xss-bugs/175384/如若轉載,請註明原文地址。