[//]: #(Author : Yogaskung)
[//]: #(Licensed under the Creative Commons Attribution Share Alike 4.0.)
大佬,我怎么进不了里站啊
EXHENTAI 的鉴权
本文会介绍 exhentai.org 的鉴权过程
https://exhentai.org/
如果浏览器中并没有存储 exhentai.org 域的任何 cookie,对此 URL 的访问会收到 302 ,并转到
https://forums.e-hentai.org/remoteapi.php?ex={BASE64_ENCODED_1}
在本例中,此 URL 为
https://forums.e-hentai.org/remoteapi.php?ex=MTYwNzc4MzMxNS0xMzQ4NmQ5YmQ5
其中 BASE64_ENCODED_1
解码为 1607783315-13486d9bd9
使用 此脚本 [fars.ee] ,收到的 BASE_ENCODED_1
解码后如下
1 | 1607782418-64f0c6df6cn |
第一部分是 UNIX 时间戳,后一部分看起来是某种校验码
https://forums.e-hentai.org/remoteapi.php?ex={BASE64_ENCODED\_1}
此处分为 2 种情况
对此 URL 发起请求时未登录,即不带任何在
forums.e-hentai.org
或者.e-hentai.org
的 cookie
请看下文「未登录」部分对此 URL 发起请求时
forums.e-hentai.org
已登陆,即浏览器中有ipb_member_id
和ipb_pass_hash
cookie
请继续读这一节
本人账号测试时对此 URL 发起请求浏览器发的 cookie 为
(ipb_pass_hash
和 ipb_session_id
已经替换为随机的 md5sum )
(ipb_member_id
已经替换为随机的 7 位数字 )
(ipb_topicsread
用 URLencode 解码结果类似 a:1:{i:243xxx;i:1607xxxxxx;}
)
1 | ipb_session_id=69c098ff0097872ff67b9e0f7ac73741; |
收到的回复是 200 ,并转到
https://exhentai.org/?poni={BASE64_ENCODED_2}
在本例中,此 URL 为 https://exhentai.org/?poni=MzI1ODEzNC1jM2Fj9999ZmNkMzVlZDA2YWE5MmQzYTI59999MGRjZC0xNjA3Nzg0NjA1LTAxY2I3MTY29999YmRjNWQ1Z99999JjNmRmNGY3MjdiYTBlOGN9999=
(部分字段替换为 9999 )
BASE64_ENCODED_2
解码为1145140-002d8ff55cb7ab94776198ed5d759986-1607784605-01cb7166ea6bdc5d5d793bc6df4f727ba0e8ce0c
此处第一部分为 ipb_member_id
其后是 ipb_pass_hash
,之后一部分为时间戳,最后的看起来是某种校验码
https://exhentai.org/?poni={BASE64_ENCODED\_2}
对此 URL 的请求会收到 302,并转到 https://exhentai.org
,同时将对 .e-hentai.org
的两个 cookie,以及一个名为 yay
的 cookie,存入 exhentai.org
下
https://exhentai.org/
此时浏览器携两个 exhentai.org
的 cookie
ipb_member_id
ipb_pass_hash
和 yay
对此 URL 的回复是设定名为 igneous
的 cookie
igneous
是 mystery
或者 9 位 的 字母/数字 字符串
浏览器携带 igneous:mystery
cookie 访问 exhentai.org 的除 exhentai.org/favicon.ico 任何页面都会收到空回复,看起来就是白屏
https://exhentai.org/favicon.ico:
这是 igneous 回复的统计情况: https://rentry.co/extest
「有权限」即为能收到不是 mystery
的 igneous
未登录
重复上文:
此处分为 2 种情况
对此 URL 发起请求时未登录,即不带任何在
forums.e-hentai.org
或者.e-hentai.org
的 cookie对此 URL 发起请求时
forums.e-hentai.org
已登陆,即浏览器中有ipb_member_id
和ipb_pass_hash
等 cookie
如果对 https://forums.e-hentai.org/remoteapi.php?ex={BASE64_ENCODED\_1}
的请求没有携带任何 cookie, 会收到 302,并转到
https://exhentai.org/?poni=no
然后再次 302 转到 https://forums.e-hentai.org/remoteapi.php?ex={BASE64_ENCODED\_1}
然后再次收到 302 转到
https://exhentai.org/?poni=no
以上重复多次最后停止。
其他
- 对
exhentai.org
域的所有资源,包括图片和 js 都需要有 cookie 随同请求发送,否则会返回 403.
如何拿到 Sad Panda 图片
exhentai.org 在关站风波之后不再返回 Sad Panda 图片,而是空内容。有一些页面是例外:比如私人 torrent 的 URL,用无效的 cookie 还可以收到 sadpanda.jpg
1 | curl -vL \ |
回复的 Header 中有这么一行Content-Disposition: inline; filename="sadpanda.jpg"
此文件 (体积 9615Byte) 已经上传到 Internet Archive
你可以「右键-另存为」下面这张,注意校验值
1 | sha256sum sadpanda.jpg |
https://ia601407.us.archive.org/33/items/sadpanda_202101/sadpanda.jpg:
Apr 11 更新: 现在已经无法用 torrent url 获取 sadpanda.jpg