在HTML5中a標簽加入了一個新的屬性ping。設(shè)計者加入它的理由是,Ping可以使瀏覽器對外發(fā)送一個異步請求,通常用來廣告的追蹤、點擊率統(tǒng)計或完成一次HTTP重定向。
但是聽到監(jiān)視、追蹤這個詞,你是不是也覺得有點不舒服,所以Ping這個屬性真的是很不受歡迎。瀏覽器一度抵制、進而加入默認關(guān)閉必須從如config這樣的選項中打開才可以使用,到現(xiàn)在我從caniuse.com上還沒有追尋到哪個瀏覽器支持它,但在我測試中最新版Chrome44是默認支持Ping的。
一、Ping的用法
Ping的用法很簡單,這里舉一個例子。
當你點擊click me的時候,會異步發(fā)送一個POST請求到Ping后面指定的地址,Request Body的內(nèi)容為PING。有人可能會說,那click me這段代碼行不行?答案是否定的,href這個屬性必須存在與中,不然Ping也是不會運行的。
二、死亡之PING
根據(jù)Ping發(fā)送POST請求這個特性,我們可以使用循環(huán)使之不停的向一個地址追加POST請求,造成DOS攻擊。
<script> link link document </script>
運行上面的代碼,就會不停的向xisigr.com發(fā)送POST請求。
請運行在線DEMO:DOS.html {chrome}
三、隱私追蹤
Ping可以進行廣告追蹤,它可以統(tǒng)計用戶都點擊了哪些鏈接以及次數(shù),并使用POST請求把這些信息發(fā)送到廣告商的服務(wù)器上。那么POST的這些信息都包含了什么呢,簡單來說HTTP Header的內(nèi)容都會有,我們來看一個截獲的完整信息
HOST: xisigr.com CONTENT-LENGTH: 4 ORIGIN: PING-FROM: ****.com/js6/read/readhtml.jsp?mid=458:xtbBygBMgFO+dvBcvQAAsM&font=15&color=064977 USER-AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36 PING-TO: CONTENT-TYPE: text/ping ACCEPT: */* REFERER: ****.com/js6/read/readhtml.jsp?mid=458:xtbBygBMgFO+dvBcvQAAsM&font=15&color=064977 ACCEPT-ENCODING: gzip, deflate ACCEPT-LANGUAGE: zh-CN,zh;q=0.8 COOKIE: sessionid=rnbymrrkbkipn7byvdc2hsem5o0vrr13 CACHE-CONTROL: max-age=0 CONNECTION: keep-alive
PING-FROM、USER-AGENT、REFERER這三個關(guān)鍵信息,直接泄漏了用戶的隱私。而這也為我們最愛的XSSSHELL又提供了一個小插件。對于圖片探針如果沒了新鮮感,那么請試試Ping探針吧,簡單的一句就搞定!
追蹤這事是攻擊者的最愛,我簡單做了一個DEMO,打開aping.html這個頁面,點擊后,你會前往wathwg,并且我異步重定向了下w3.org,但同時你的HTTP Header/IP就被我獲取到了。你可以通過這個鏈接查看截獲到的信息,Ping.html。
請訪問在線DEMO:aping.html Ping.html {chrome}
四、總結(jié)
把PING歸結(jié)為探測用戶隱私的范疇一點也不為過。這其實不怪設(shè)計者,Ping的最初設(shè)計理念,是為了使得廣告統(tǒng)計更加方便簡潔,哪怕是它的重定向功能,也是為了在異步請求的情況下使用戶整體提高訪問頁面速度的快感。但是這仿佛也無法遮掩住PING的潛在探測用戶隱私的特性。也許這就是PING的先天性缺陷。
PS:
HTML5中,a標簽多了幾個屬性,如download/ping。2012年時,我在百度HI寫了一篇《HTML5 A[download] 攻擊模型》,就對當時download的攻擊思路做了簡單的分析,可惜百度HI關(guān)閉了,download那篇也石沉大海,但三年下來,再看那篇文章,當時提出的一些攻擊點,瀏覽器也已經(jīng)做了相應(yīng)的防御,從中看到了攻防對抗的變化和瀏覽器廠商的激進與妥協(xié)。
這種感悟是挺好的,你可以對應(yīng)著如筆記般的進行標注,這些變化是什么、為什么這么變等等,我覺得應(yīng)該時不時的把前些年的文章拿出來,和現(xiàn)在的形式對比下,有些東西不得不從這種長時間軸的總結(jié)和更新中才能得出結(jié)論來,比如10年間消失的10種WEB攻擊、瀏覽器廠商的激進與妥協(xié)、10年后WEB是什么樣的……