js逆向-某网站cookies生成逻辑分析_2025-03-08

本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负! 如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!

网站

aHR0cDovL2FwcC55eHguZ292LmNuL3lvbmd4aW5nL3p3Z2svNTU0NjUvNTU0NjYvNTU2MzEvNTU2NTUvNTU5NzIvaW5kZXguaHRt

加密参数分析

接口数据平平无奇,但是不携带cookies请求就会返回412。通过经验分析这个状态码大概率是瑞数的标志,但是本文的这个案例不是,一个常规AES加密。

代码分析

cookies加密可以才用油猴脚本hook相关的内容。
但是需要注意一下hook的时机,本案例在document刚开始加载的时候就要注入。

重新清除网站的cookies内容,可以发现hook已经生效了。


向上跟栈,

发现此处用已经将cookie赋值,整个js文件使用ob混淆,不是很复杂,才用手动解混淆比较方便。

继续向上跟栈,发现是_0x3c8d7e函数生成了cooke的参数。

其他所需参数都在该函数附近,手动解混淆。

第一个是时间戳,_0x5acce9是从第一个cokie中取值。l是组合参数在一个数组中。
中间的一段for循环是在判断属性,没什么说的,继续向下。


I永远是一个定值-1,继续向l数组添加元素,将所需的数据都放进去,然后使用join方法将数组变成字符串。

这一串就是cookie加密的第二个值。

继续向下看。


D下方,p这个地方进行了一个短路运算,获取了32位的密钥。

D = _0x3c8d7e(p, D),这一步将秘钥和待加密字符串放入函数,完成加密,cookie也就完成了加密。

进入函数。


还是一个比较简单的控制流,只需要将混淆部分解一下,逻辑还是比较清晰的。
大致效果如下:


其中_0x55139e对象是一个标准的AES对象。

根据这些特征能够知道使用了aes-js库。

npm install aes-js // 安装即可

因为是AES cbc加密,还必须有一个iv的值,此处的iv是一个16位的随机字符串。

验证

可以发现已经没有任何问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值