马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-3-17 19:08 编辑
在咱们的正课教程中小甲鱼老师已经讲过 a 元素啦。
本讲带大家,体验一个奇技淫巧
缘起于此帖:HTML5属性a标签ping被用于DDOS攻击,QQ浏览器被波及
看完后,没想到 a 元素还可以这样玩。
在 HTML5 中 a 元素加入了一个新的属性ping(速查宝典)。
设计者加入它的理由是:
Ping 可以使浏览器对外发送一个异步请求,通常用来广告的追踪、点击率统计或完成一次 HTTP 重定向。
但是听到监视、追踪这些词,会不会觉得有点不舒服呢?!
所以 Ping 这个属性会受一部分黑/白“帽子”的欢迎。
但很多浏览器厂家却很抵制!
加入默认关闭,必须从如 config 这样的选项中打开才可以使用
上面是从 caniuse.com 上的浏览器支持情况。
接下来的测试中 Chrome 是木问题的。
Ping 属性用法
Ping 用法很简单,先看代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>鱼C-零基础入门学习Web(Html5+Css3)</title>
</head>
<body>
<a href="https://ilovefishc.com/" ping="https://ilovefishc.com/track">点我</a>
</body>
</html>
当我们单击这个链接的时候,会异步发送一个 POST 请求到 Ping 后面指定的地址。
关于 POST 的玩法,大家自行参阅:99% 的人都理解错了 HTTP 中 GET 与 POST 的区别(转)
Request Body 的内容为 PING 。
有人可能会说,那:
<a ping="https://ilovefishc.com/track">点我</a>
这样写行不行?
答案肯定是:
href 这个属性必须存在与 a 元素中,不然 Ping 也是不会运行的。
Ping 的死亡玩法
重点来了,根据 Ping 发送 POST 请求这个特性,你能想到什么呢?
提示一下:
如果反复单击,就会不停的向服务器发送 POST 请求,又会发生什么呢?
没错,会造成 DOS 攻击!
通过 JavaScript 简单实现一下:
<script>
// 创建 a 元素并设置 href 和 ping 属性值
var myLink = document.createElement('a');
myLink.href = "https://ilovefishc.com/";
myLink.ping = "https://ilovefishc.com/track";
// 插入
document.head.appendChild(myLink);
// 单击
myLink.click();
</script>
运行上面的代码,就会不停的向 ilovefishc.com 发送 POST 请求。
呵呵,放心,并不会真的对咱 鱼C 服务器造成影响哈~
追踪隐私
Ping 可以进行广告追踪,可以统计用户都点击了哪些链接以及次数,并使用 POST 请求把这些信息发送到广告商的服务器上。
那么 POST 的这些信息都包含了什么呢?
简单来说 HTTP Header 的内容都会有,我们来看一个截获的完整信息:
HOST: xisigr.com
CONTENT-LENGTH: 4
ORIGIN: http://mail.163.com
PING-FROM: http://****.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: http://www.baidu.com/
CONTENT-TYPE: text/ping
ACCEPT: */*
REFERER: http://****.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 这三个关键信息,直接泄漏了用户的隐私。
而这也为我们最爱的 XSSSHELL 又提供了一个小插件。
有请 Ping 探针吧,简单的一句 <a href="" ping=> 就搞定!
把 PING 归结为探测用户隐私的范畴一点也不为过。
这其实不怪设计者,Ping 的最初设计理念,是为了使得广告统计更加方便简洁,哪怕是它的重定向功能。
还为了在异步请求的情况下使用户整体提高访问页面速度的快感。
但是这仿佛也无法遮掩住 PING 的潜在探测用户隐私的特性。
也许这就是 PING 的先天性缺陷吧。
如果喜欢,别忘了评分 :
这位鱼油,如果喜欢本系列HTML帖子,请订阅 专辑☞( 传送门)( 不喜欢更要订阅 ) |