惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
D
Docker
腾讯CDC
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
IT之家
IT之家
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
博客园 - 【当耐特】

吹比💨

NFS 服务引发的一次“诡异”应急响应 银狐使用WDAC来对抗杀软 浏览器第三方Cookie保护导致无法使用Github.dev 使用pushState伪造浏览器地址栏 一次排查网站劫持过程流水账 手动导出 Microsoft Authenticator 中的2FA密钥 使用CloudFlare的IP Lists功能来做访问控制 FrontJS网站错误监控插件存在弹窗广告 宝塔面板可能存在未知漏洞的分析与处置方法 CDN厂商解决域前置问题 中文域名那些事 TLS握手指纹(JA3/JA3S)检测恶意软件流量 [A-Z]{2}\d{2}.cc 团伙的一些公开信息 Azure旗下奇怪的静态托管服务 Csrf与浏览器第三方Cookie策略的问题 Pppoe密码嗅探 一次有意思的域名追踪 CobaltStrike通信中host字段的获取 XFF那些事 CORB那些事 Referrer Policy那些事 使用CloudFlare来为网站开启客户端证书验证 DNS那些事 用flask来在线管理你的iptables 屏蔽掉向日葵的有效方法 帝国cms在防止内容采集方面做的工作 身份验证器是如何验证我们的身份? 利用GoogleAppsScript自动回复短信实现保号 Nginx实用模块 有关跨域请求的一些记录
Publicsuffix那些事
榆木 · 2021-09-01 · via 吹比💨

首先我们了解下同域名Cookie共享。在php中,我们通过如下代码很方便的实现:

<?php
setcookie("user", "yumu", time()+3600,"/",'.域名.com');

或者在JS中:

document.cookie="user=yumu; domain=.域名.com;path=/"

当我们在 demo.域名.com下放置执行上面的代码,在访问test.域名.com也会包含有user:yumu的Cookie。既然同一个域名下可以设置Cookie共享,但是GithubPages的域名(*.github.io)的Cookie为什么不能被共享呢? 答案如下:

If the user agent is configured to reject "public suffixes" and the domain-attribute is a public suffix:
    If the domain-attribute is identical to the canonicalized request-host:
        Let the domain-attribute be the empty string.
    Otherwise:
        Ignore the cookie entirely and abort these steps.

原来存在一个名为Publicsuffix:公共后缀的组织,他们维护着一个列表 https://publicsuffix.org/list/public_suffix_list.dat 这里面的后缀都属于公共后缀,除了常见的域名后缀外,还有一些公共服务所提供的域名、二级国别。他们都不会能被设置当前域上的“Cookie共享”(例如github.io、cn.com 存在于列表中,所以在浏览器就不能设置.github.io、.cn.com的“Cookie共享”)

使用Publicsuffix机制来“攻击”小米

一些国别域名提供了二级域名,但是并没有提交该域名到 Publicsuffix,所以我们可以设置“Cookie共享”以完成“攻击”。我们以“com.md”后缀为例。

首先将 yumu.com.md hosts指向了我自己的服务器(家境贫寒,就不刻意注册了)。然后使用服务端下发cookie(JS也可以):

<?php
setcookie("user", "yumu", time()+3600,"/",'.com.md');

然后去互联网寻找受害者: [site:.com.md],然后发现了mi.com.md。嗯,访问的时候我们的Cookie已经被加入了头部。

不过能做的事也就仅限于此了。并不能做到偷取Cookie(除非受攻击站点主动将Cookie设置为.com.md域下共享)。本文中描述的“攻击”危害较小,固算不上真正的攻击。