机惨新方法之 Cookie
事情起因
当时我们机房最大的巨佬下午去洗澡了,然后他直接 自信锁屏没有密码,然后我刚好在旁边看同学的代码,不小心碰到了 Enter。
然后,我忽然发现他的 Luogu 没有退号。然而,对于普遍的 I AK IOI 以及抄题解之外,我们机房一个正在搞爬虫的同学出手了。
再之后,就有了这篇文章。
“在机房里面,永远不要相信你的同学。”
前置插件
速适 (Swoosh) 存储专家 - 专治 Cookie 和 Local Storage
可以在这里下载:https://pan.baidu.com/s/175ju_MACu-sZJyVeNWHGzw
提取码:naxw
开始机惨
这里我用的是 Chrome.
首先,找到一个没锁电脑还登陆了 Luogu 的幸(s)运(b)儿,在 Luogu 的主页按下 F12,进入 网络 / Network,然后刷新一下,可以得到这样的东西:
然后,对着我上面选中的 www.luogu.com.cn 选项按一下右键,在 Copy 中选择 Copy as cURL (Bash),把获得的结果存下来。
比如说,我获得的结果是这样的:
curl 'https://www.luogu.com.cn/' \
-H 'authority: www.luogu.com.cn' \
-H 'cache-control: max-age=0' \
-H 'upgrade-insecure-requests: 1' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
-H 'sec-fetch-site: same-origin' \
-H 'sec-fetch-mode: navigate' \
-H 'sec-fetch-user: ?1' \
-H 'sec-fetch-dest: document' \
-H 'referer: https://www.luogu.com.cn/discuss/570323' \
-H 'accept-language: zh-CN,zh;q=0.9' \
-H 'cookie: __client_id=f976706a20583f5e51aecfbc9398498bacbccaea; _uid=144853' \
--compressed
随后我们看到这一行:
-H 'cookie: __client_id=f976706a20583f5e51aecfbc9398498bacbccaea;_uid=144853' \
这个就是 Cookie 了。
随后,打开我们的插件,见到如下的界面:
随后把我们的 Cookie 改成我们刚刚拿到的东西,然后刷新,就可以登上别人的号了。
通过实际测试,可以在别的电脑上使用任何正常的操作,虽然别人锁定后自己也会锁定,但是当他解锁时,自己也会解锁。
然而,本文还是没有结束。
既然会被机惨,那有没有防止机惨的方法呢?或者说,我知道我被机惨了,有没有什么应对方法呢?
这肯定是有的。
应对方法
我们要知道,每一次 Luogu 登录都会在 Cookie 中给出一个新的 __client_id 值,所以只要退登然后重新登录就可以了。
Update on 2023.2.25 : 突然发现这个东西重登之后 __client_id 的值有时候不会发生改变,这时候就需要自己把 __client_id 的值清空,再重登。