鱼C论坛

 找回密码
 立即注册
查看: 1818|回复: 3

[奇技淫巧] 基于 a 元素的死亡 ping 隐私追踪

[复制链接]
发表于 2019-5-30 00:11:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-3-17 19:08 编辑

在咱们的正课教程中小甲鱼老师已经讲过 a 元素啦。

本讲带大家,体验一个奇技淫巧

Snip20190529_21.png


缘起于此帖:HTML5属性a标签ping被用于DDOS攻击,QQ浏览器被波及

看完后,没想到 a 元素还可以这样玩。

Snip20190529_22.png


在 HTML5 中 a 元素加入了一个新的属性ping速查宝典)。

设计者加入它的理由是:
Ping 可以使浏览器对外发送一个异步请求,通常用来广告的追踪、点击率统计或完成一次 HTTP 重定向。

但是听到监视追踪这些词,会不会觉得有点不舒服呢?!

所以 Ping 这个属性会受一部分黑/白“帽子”的欢迎。

但很多浏览器厂家却很抵制!

加入默认关闭,必须从如 config 这样的选项中打开才可以使用

Snip20190530_24.png


上面是从 caniuse.com 上的浏览器支持情况。

接下来的测试中 Chrome 是木问题的。


Ping 属性用法

Ping 用法很简单,先看代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>鱼C-零基础入门学习Web(Html5+Css3)</title>
  6. </head>
  7. <body>
  8. <a href="https://ilovefishc.com/" ping="https://ilovefishc.com/track">点我</a>
  9. </body>
  10. </html>
复制代码

当我们单击这个链接的时候,会异步发送一个 POST 请求到 Ping 后面指定的地址。

关于 POST 的玩法,大家自行参阅:99% 的人都理解错了 HTTP 中 GET 与 POST 的区别(转)

Request Body 的内容为 PING 。

有人可能会说,那:

  1. <a ping="https://ilovefishc.com/track">点我</a>
复制代码

这样写行不行?

答案肯定是:
游客,如果您要查看本帖隐藏内容请回复

href 这个属性必须存在与 a 元素中,不然 Ping 也是不会运行的。


Ping 的死亡玩法

重点来了,根据 Ping 发送 POST 请求这个特性,你能想到什么呢?

提示一下:
如果反复单击,就会不停的向服务器发送 POST 请求,又会发生什么呢?

没错,会造成 DOS 攻击!

通过 JavaScript 简单实现一下:

  1. <script>
  2.     // 创建 a 元素并设置 href 和 ping 属性值
  3.     var myLink = document.createElement('a');
  4.     myLink.href = "https://ilovefishc.com/";
  5.     myLink.ping = "https://ilovefishc.com/track";

  6.     // 插入
  7.     document.head.appendChild(myLink);

  8.     // 单击
  9.     myLink.click();
  10. </script>
复制代码

运行上面的代码,就会不停的向 ilovefishc.com 发送 POST 请求。

呵呵,放心,并不会真的对咱 鱼C 服务器造成影响哈~


追踪隐私

Ping 可以进行广告追踪,可以统计用户都点击了哪些链接以及次数,并使用 POST 请求把这些信息发送到广告商的服务器上。

那么 POST 的这些信息都包含了什么呢?

简单来说 HTTP Header 的内容都会有,我们来看一个截获的完整信息:

  1. HOST: xisigr.com
  2. CONTENT-LENGTH: 4
  3. ORIGIN: http://mail.163.com
  4. PING-FROM: http://****.com/js6/read/readhtml.jsp?mid=458:xtbBygBMgFO+dvBcvQAAsM&font=15&color=064977
  5. USER-AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
  6. PING-TO: http://www.baidu.com/
  7. CONTENT-TYPE: text/ping
  8. ACCEPT: */*
  9. REFERER: http://****.com/js6/read/readhtml.jsp?mid=458:xtbBygBMgFO+dvBcvQAAsM&font=15&color=064977
  10. ACCEPT-ENCODING: gzip, deflate
  11. ACCEPT-LANGUAGE: zh-CN,zh;q=0.8
  12. COOKIE: sessionid=rnbymrrkbkipn7byvdc2hsem5o0vrr13
  13. CACHE-CONTROL: max-age=0
  14. CONNECTION: keep-alive
复制代码

PING-FROM、USER-AGENT、REFERER 这三个关键信息,直接泄漏了用户的隐私。

而这也为我们最爱的 XSSSHELL 又提供了一个小插件。

有请 Ping 探针吧,简单的一句 <a href="" ping=> 就搞定!

把 PING 归结为探测用户隐私的范畴一点也不为过。

这其实不怪设计者,Ping 的最初设计理念,是为了使得广告统计更加方便简洁,哪怕是它的重定向功能。

还为了在异步请求的情况下使用户整体提高访问页面速度的快感。

但是这仿佛也无法遮掩住 PING 的潜在探测用户隐私的特性。

也许这就是 PING 的先天性缺陷吧。





                               
登录/注册后可看大图


如果喜欢,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢本系列HTML帖子,请订阅 专辑&#9758;传送门)(不喜欢更要订阅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-13 20:26:50 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-6 10:25:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-5 21:53:03 | 显示全部楼层
......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 20:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表