“简单原理”揭秘演示,访问任意 HTTP 页面各大网站 Cookie 被劫持

2018-09-27 17:00:22 +08:00
 mytry

继昨天的 《直到现在仍有不少人认为,访问没隐私没价值的网页,不是 HTTPS 问题不大。。。》

为了简单模拟“被劫持”的场景,这里就不搭 WiFi 之类的设备了,直接用最快捷的办法:浏览器 HTTP 代理。(事实上用代理时被劫持也是很常见的~)

我在自己的云主机上,临时开了一个 HTTP 服务:

主机:47.104.178.133 (或者直接填域名 alert.fun )

端口:8080

为了节省流量,就不开反向代理了,所以访问任意 HTTP 网站都会变成这个样子:

点击查看结果,里面就是嗅探到的各大网站 Cookie:

当然,这里只取了 10 个站点测试而已。100 个也一样,只是多耗一些流量而已。

这个页面比较简单,没做授权功能,只要提交和查看时 IP 没变就行。所以测试前保管好隐私,测完及时清理,泄露概不负责~

(由于这个云主机流量有限,请勿恶意刷新。余额用光就下线了)

14543 次点击
所在节点    程序员
132 条回复
imn1
2018-09-28 10:36:09 +08:00
我看着昨天两个人在吵很好笑,两个人说的是同一个标题但两件事,概念一个广义一个狭义,就这样争起来了
lxy
2018-09-28 10:36:57 +08:00
大概楼主是想说明一个惯性思维的错误:
> 只要网站 A 全站 HTTPS 了就可以避免被 MITM 导致信息泄露
结论是不一定,如果 HSTS 设置不严以及 A 网站 cookie 未设置 secure,用户可以被其它网站的 HTTP 页面通过 MITM 获取到 A 网站的 cookie。
Greenm
2018-09-28 10:53:36 +08:00
我想我理解楼主的立场,因为中间人无处不在,运营商就是作恶多端,而且无法规避的中间人,很多时候都是直接在跟运营商对抗。

但貌似其他人根本不在乎运营商这点,所以从最开始的出发点大家都不一样,很多人还认为中间人遥不可及,或者摆脱不了就无视掉。
icy37785
2018-09-28 11:46:56 +08:00
@Greenm 不是呀,没人不在乎运营商呀,楼主是说,http 不安全,在这个立场上,用中间人作为手段,当然很多人会说中间人不合适,因为都中间人了,http 和 https 都解决不了问题,这才是上面很多人说楼主用中间人做例子不合适的点,要结合楼主上个帖子呀。
oovveeaarr
2018-09-28 12:02:48 +08:00
我实话实说,如果 MITM 做的事可以多了去了,用酸酸 fq 不就是直接在 tcp 层面 redirect 了么,还有必要这么复杂么。。
LZ 这个条件就错了,危害性排序根本不一样。
MITM 相较于什么三方 cookie 危害性大多了,我打个比方,之前棱镜门还有通过分光镜在光纤上直接窃听元数据,就算你禁用了三方 cookie,直接 http 劫持,没设置 secure 的 cookie 不是一样出来了么。
tongz
2018-09-28 12:34:58 +08:00
没仔细看帖的我, 还以为只要访问了 LZ 的网站我的所有 Cookie 就都会瞬间泄露, 吓得我开了隐身模式~
huskar
2018-09-28 12:37:06 +08:00
楼主,我理解你是想表达在被中间人的情况下,https 也不是 100%安全的。但是你自己看看你起的这些标题,说你危言耸听、标题党过分吗?你说的这些内容其实很初级,不用专门搞安全的,有过前端或后端开发经验的人都能明白。你好好讲清楚不就行了?为什么非得起个这种头条一样的标题?
presoul
2018-09-28 12:38:04 +08:00
关心的是运营商是否作恶。
python
2018-09-28 12:44:21 +08:00
标题党
hpeng
2018-09-28 13:00:07 +08:00
直到现在,居然仍有不少人(甚至包括做 Web 开发以及安全的),以为只有涉及隐私的网页用 HTTPS 才有意义。随便浏览一个从搜索引擎里点出来的 HTTP 垃圾站对自己并没什么影响。。。
————
我想看到的是随便点一个垃圾站点对我的影响,不是挂代理。来多一个不是中间人的例子吧
mytry
2018-09-28 14:00:22 +08:00
@oovveeaarr “通过分光镜在光纤上直接窃听元数据” 有很多网站的 Cookie 是嗅探不到的,比如演示里的 weibo.com 就是一个例子,因为 weibo.com 配了 HSTS,只要之前访问过,就不会出现 https://weibo.com 。事实上,这个演示里是访问 **http://x.weibo.com** 来获取的,因为 weibo.com 漏配了 includeSubDomains。
7colcor
2018-09-28 14:06:00 +08:00
看过楼主的博客,很有意思。
学习了
oovveeaarr
2018-09-28 14:06:37 +08:00
@mytry #71 窃取元数据跟 Cookie 没有什么联系呀,我们都不知道分光镜能不能做到管道重定向,现有的资料没有提。如果可以做到,管道级别的 MITM 攻击力不限于 cookie 噢。。不要总盯着 cookie 看啊。
mytry
2018-09-28 14:06:46 +08:00
上面写错几个字,重写一遍。
----
@oovveeaarr “通过分光镜在光纤上直接窃听元数据” 有很多网站的 Cookie 是嗅探不到的,比如演示里的 weibo. com 就是一个例子,因为 weibo 配了 HSTS,只要之前访问过一次,之后一直是 HTTPS,所以普通嗅探拿不到 weibo 的 Cookie。事实上,这个演示里访问的是 [x. weibo. com] (注意前面有 x.)。因为 Cookie 具有子域继承的特性,所以就可以拿到 weibo 的 Cookie。其根源就是因为 weibo 没有配 includeSubDomains,所以导致 HSTS 作用降低。
mytry
2018-09-28 14:11:48 +08:00
@hpeng 挂代理只是方便你看演示结果而已,只要你上了 HTTP 的站时时刻刻都在被运营商劫持,只看它想劫持到什么程度而已。除非你是专线上网,否则中间人无时无刻不存在。
fullpowers
2018-09-28 14:19:05 +08:00
文不对题
jadec0der
2018-09-28 14:51:12 +08:00
替楼主感到绝望,都说的这么明白了还有人不懂
zpf124
2018-09-28 14:53:03 +08:00
噱头十足!不论昨天还是今天!

昨天那个帖子给人一种
"大多数网站都可以在 http 下 获取 其他网站的 cookie" , 误导人以为是任意网站 都可以获取其他网站的攻击。

今天瞎几把扯了一顿 结果来了个中间人攻击... 这个不用你演示,https 推出的时候很多人就已经知道了。


我明天还可以说 我还能获取了 https 网站的 cookie 呢,弄个木马就搞定了,即便这时代了 中木马的老电脑依旧还是很多呢。
zpf124
2018-09-28 15:05:22 +08:00
@jadec0der 我替所有早就知道 http 明文传输和中间人攻击的程序员感到绝望。
居然有人觉得 这个 噱头标题党的楼主说是对的。

你访问一个普通的 http 小站,这个小站站长根本获取不到你其他网站的 cookie。
从昨天到现在一群人都以为 楼主要证明的是 这个小站站长可以在你访问它网站的时候跨域偷到其他第三方的 cookie。


结果 他居然拿去年还是前年 315 晚会都玩剩下的东西来证明他的结论。
而且证明的也不是小站的站长可以拿到你的 cookie,而是劫持了你网络的黑客可以 cookie。
很感谢你们再提一次那次 315 晚会的安全提醒,那次的主题是提醒普通民众不要随便连未知的网络。
而这个和 http 关系不大,所有的明文传输都会被中间人攻击,最容易受害的不是 http 而是邮件服务。


所以我只要证明了
"我通过木马可以拿到 https 的 cookie" 是不是就可以证明 "你们访问 https 站点也是不安全的,https 的站长也可以读到你的其他网站的 cookie?”
imnotfine
2018-09-28 15:05:29 +08:00
心疼楼主.

你可以再改一下, 代理向 index.html 插入一段 js, 获取 cookie, 然后发到 ajax 远程服务器

这应该能说明用 http, 还不加 httpOnly 是个极大的隐患.

----

还有个建议, append 一下, "挂代理只是方便演示, 不影响说明, 看不懂请关闭窗口. 你老师没能教会你计算机网络, 我更教不会啊"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/493233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX