图书馆挠痒大作战请求参数分析,MurmurHash3、HMAC-MD5、反调试

js逆向

本次测试全部在本地或授权环境中进行,内容仅用于学习、技术参考与交流讨论。严禁将本文所述方法或技术用于任何非法用途。

文中提及的所有漏洞均已上报并完成修复。若读者进行类似测试,务必确保所有操作在合法、合规且获得授权的前提下进行。

如有读者因使用本文内容从事危害网络安全的行为,相关后果由其自行承担,原作者不承担任何责任。

本文为原创内容,未经授权,禁止任何形式的转载、复制或引用。如需使用,请联系作者获取授权。

图书馆挠痒大作战

aHR0cHM6Ly94aWFvbW14LmNuL25vLXVzZS9saWJyYXJ5LWl0Y2g=

创作者小毛毛熊丶制作并上线的“图书馆挠痒大作战”网页小游戏,玩家需在学习中抓痒躲避诬告,获取学习点并参与全网排名。

先看成果

Snipaste_2025-08-13_13-27-30

Snipaste_2025-08-13_13-26-36

过控制台检测

打开AntiDebugBreaker,勾选「Hook table」「Hook clear」

Snipaste_2025-08-13_13-35-37

第一次请求start-session

点击开始挑战,查看请求,发现存在三个参数需要逆向,直接搜索即可

Snipaste_2025-08-13_13-38-02

X-Timestamp

Snipaste_2025-08-13_13-43-40

o为当前时间戳/60000

Snipaste_2025-08-13_13-42-52

X-Auth-Hash

ue|t|o|s|l拼接而来

Snipaste_2025-08-13_13-46-00

e为请求方法

t为请求URL

o为当前时间戳/60000

l为空

st(),就在上方,t()会保存在localStorage中需要清空缓存获取,获取后可写死

Snipaste_2025-08-13_13-48-03

Snipaste_2025-08-13_13-49-52

跟进去看一下,会获取一些参数,不用管,重点看一下w()

Snipaste_2025-08-13_13-51-11

跟进去看一下

Snipaste_2025-08-13_13-52-31

看不懂没关系,发给AI分析一下,得到是MurmurHash3「第一次见」

MurmurHash3功能简介

  • 这是一个返回 无符号 32 位整数的哈希函数
  • 接受两个参数:
    1. o:字符串(要计算哈希的内容)
    2. u:初始种子值(seed)
  • 输出是一个稳定的哈希值(相同字符串 + 相同种子,结果恒定)

输出结果不会改变,所以拿到结果即可

Snipaste_2025-08-13_13-55-59

好了,t()也获取到了,可拼接u

看下go()是什么,跟进去

Snipaste_2025-08-13_13-58-58

交给AI分析一下是HMAC-MD5,密钥是bo,也就是x

Snipaste_2025-08-13_14-02-04

Snipaste_2025-08-13_14-02-14

结果一致

X-Fingerprint

也就是t()

发送请求可以获取到token

第二次请求submit-score

X-Auth-Hash

l为学习点数+token+时间

Snipaste_2025-08-13_14-09-06

其他不变,继续拼接进u进入go()计算

请求体

请求体也为l

直接封装进行拼接即可