Canopy家長(zhǎng)控制應(yīng)用程序曝出XSS漏洞
研究人員稱,Canopy是一個(gè)家長(zhǎng)控制應(yīng)用程序,它提供了一系列的功能,可以通過(guò)內(nèi)容檢查來(lái)保護(hù)孩子們上網(wǎng),但它卻很容易受到各種跨站腳本(XSS)攻擊。
這些攻擊可以造成禁用孩子的監(jiān)控甚至是更嚴(yán)重的后果,還可以向家長(zhǎng)提供惡意軟件。
Canopy提供了防止色情短信、設(shè)備照片保護(hù)(通過(guò)圖像過(guò)濾)、屏幕時(shí)間監(jiān)控、為父母提供兒童通信警報(bào)、違規(guī)網(wǎng)站的智能內(nèi)容過(guò)濾,同時(shí),Canopy還使用了人工智能引擎和虛擬網(wǎng)絡(luò)過(guò)濾功能。此外,對(duì)于父母來(lái)說(shuō),它還提供了遠(yuǎn)程設(shè)備管理和控制孩子使用的應(yīng)用程序和網(wǎng)站的功能。
據(jù)安全研究員稱,該應(yīng)用的安裝過(guò)程需要授予一系列的權(quán)限,包括無(wú)障礙支持、在其他應(yīng)用程序之上顯示的功能、安裝根CA和虛擬網(wǎng)絡(luò)配置。該應(yīng)用程序還可以(選擇性地)充當(dāng)設(shè)備管理員,防止應(yīng)用程序被刪除......這種特權(quán)訪問(wèn)會(huì)給設(shè)備的安全和使用這些設(shè)備的兒童的隱私帶來(lái)相當(dāng)大的風(fēng)險(xiǎn)。
該應(yīng)用程序被曝出XSS漏洞
事實(shí)證明,研究人員的想法并沒(méi)有錯(cuò)。在研究該應(yīng)用程序的安卓版本時(shí),研究人員發(fā)現(xiàn)了幾個(gè)XSS漏洞,當(dāng)惡意腳本被注入到其他正常的或受信任的網(wǎng)站時(shí),就會(huì)發(fā)生這種攻擊。
這種注入通常是通過(guò)將惡意代碼輸入到網(wǎng)絡(luò)響應(yīng)或評(píng)論字段來(lái)實(shí)現(xiàn)的,然后有效載荷就會(huì)被發(fā)送到網(wǎng)絡(luò)服務(wù)器。通常情況下,這些響應(yīng)會(huì)在服務(wù)器端被驗(yàn)證,因此惡意腳本就會(huì)被阻止了。但在Canopy公司的案例中,研究人員發(fā)現(xiàn)該應(yīng)用缺乏這些方面的檢查。
一旦網(wǎng)站被入侵后,那么該網(wǎng)站的任何訪問(wèn)者都有可能成為受害者,要么是被存儲(chǔ)型XSS攻擊,要么是被引誘點(diǎn)擊一個(gè)鏈接,被反射型XSS攻擊。
漏洞簡(jiǎn)析
第一個(gè)問(wèn)題是該應(yīng)用程序的保護(hù)措施可以被繞過(guò)。
當(dāng)研究人員測(cè)試Canopy的屏蔽不良網(wǎng)站核心功能時(shí),他發(fā)現(xiàn)當(dāng)他試圖在測(cè)試的安卓設(shè)備上加載一個(gè)被禁止的網(wǎng)站時(shí),顯示的是一個(gè)屏蔽通知頁(yè)面。該通知頁(yè)面內(nèi)有一個(gè)按鈕,它可以使孩子要求他或她的父母允許所要訪問(wèn)的頁(yè)面。
當(dāng)在測(cè)試設(shè)備上點(diǎn)擊了這個(gè)按鈕后,然后在響應(yīng)的數(shù)據(jù)中附加上了一個(gè)簡(jiǎn)單的XSS有效載荷腳本,在待訪問(wèn)的網(wǎng)站上創(chuàng)建一個(gè)JavaScript彈出窗口,仔細(xì)觀察會(huì)發(fā)生什么。當(dāng)他進(jìn)入網(wǎng)站時(shí),果然,出現(xiàn)了彈窗口。
該漏洞產(chǎn)生的原因是由于系統(tǒng)未能對(duì)用戶輸入的內(nèi)容進(jìn)行轉(zhuǎn)義。研究人員發(fā)現(xiàn),該字段只允許用戶輸入50個(gè)字符,但這就足以輸入一個(gè)外部腳本?,F(xiàn)在我們可以有多種方法來(lái)利用這個(gè)漏洞。
攻擊者(例如被監(jiān)控的孩子)可以在異常請(qǐng)求中嵌入一個(gè)有效攻擊載荷。雖然攻擊者有多種方式利用這個(gè)漏洞,但很明顯最簡(jiǎn)單的方式是自動(dòng)批準(zhǔn)一個(gè)請(qǐng)求。這里第一個(gè)測(cè)試的是一個(gè)自動(dòng)點(diǎn)擊批準(zhǔn)傳入的有效載荷。又測(cè)試了另一個(gè)有效載荷,它可以自動(dòng)暫停監(jiān)控保護(hù)。
外來(lái)攻擊者對(duì)Canopy進(jìn)行攻擊
雖然熟悉腳本知識(shí)的孩子可以對(duì)父母進(jìn)行網(wǎng)絡(luò)攻擊,但研究人員也發(fā)現(xiàn)它還可以產(chǎn)生更嚴(yán)重的后果。
例如,他觀察到阻止通知頁(yè)面中的URL值(表明哪個(gè)網(wǎng)站被拒絕)會(huì)顯示在父母儀表板的主頁(yè)面上。研究人員在這里做了一個(gè)簡(jiǎn)單的測(cè)試,在URL中添加了一個(gè)腳本標(biāo)簽,并在父控制臺(tái)進(jìn)行加載,當(dāng)加載父儀表板的主頁(yè)面時(shí)該腳本就會(huì)執(zhí)行。我們現(xiàn)在可以提交一個(gè)異常請(qǐng)求,當(dāng)父母登錄檢查被監(jiān)控的設(shè)備時(shí),攻擊者就可以控制Canopy應(yīng)用程序了。
此外,由于攻擊需要使用一個(gè)特制的URL,因此攻擊完全有可能來(lái)自外部的第三方平臺(tái)。攻擊者只需要建立一個(gè)可能被屏蔽的網(wǎng)站,并在其URL中添加腳本,并誘導(dǎo)孩子嘗試訪問(wèn)它。當(dāng)有關(guān)訪問(wèn)請(qǐng)求的通知傳到家長(zhǎng)控制臺(tái)時(shí),監(jiān)控該賬戶的家長(zhǎng)就會(huì)成為惡意腳本的受害者。
但這還不是全部。事實(shí)證明,Canopy API的設(shè)計(jì)允許外部攻擊者通過(guò)猜測(cè)父賬戶的ID,直接將XSS有效載荷注入到父母賬戶的網(wǎng)頁(yè)上。這還可能會(huì)將用戶重定向到廣告頁(yè)面、進(jìn)行其他漏洞利用、進(jìn)行惡意軟件攻擊等后果。最糟糕的是,攻擊者還可以劫持對(duì)安裝在孩子手機(jī)上的應(yīng)用程序的訪問(wèn),并從受保護(hù)的設(shè)備中提取GPS坐標(biāo)。
由于用戶的賬戶ID是一串很簡(jiǎn)短的數(shù)值,因此,攻擊者只需依次對(duì)每個(gè)ID值發(fā)出阻斷異常請(qǐng)求,就可以在每個(gè)賬戶上使用攻擊載荷。
最糟糕的是Canopy沒(méi)有發(fā)布補(bǔ)丁
研究人員說(shuō),他多次通過(guò)電話和電子郵件與該公司進(jìn)行聯(lián)系,但幾乎沒(méi)有得到回應(yīng),因此他決定披露這些漏洞。他補(bǔ)充說(shuō),為了防止兒童受到攻擊,開(kāi)發(fā)商應(yīng)該盡快提出修復(fù)措施。
Canopy需要對(duì)所有用戶輸入的字段進(jìn)行轉(zhuǎn)義,但實(shí)際上它并沒(méi)有這樣做。在反復(fù)嘗試與供應(yīng)商進(jìn)行合作后,為方便其他人可以從中了解并采取相應(yīng)的措施,最終決定公布這份報(bào)告 。
本文翻譯自:https://threatpost.com/canopy-parental-control-app-unpatched-xss-bugs/175384/如若轉(zhuǎn)載,請(qǐng)注明原文地址。