—
逆向目标
—
逆向过程
之前文章有简单分析过拉勾的参数加密以及返回值解密,其中有个注意的地方就是aes的key是随机字符串生成的,但是经过测试发现它有很明显的时效性并且与请求头中的X-Ss-Req-Header绑定的
aesKey的生成在下面
, Wt = function(t, e) {
sessionStorage.setItem(t, e)
}
, Jt = function(t) {
return sessionStorage.getItem(t)
}
其中rt 和 wt分别是从sessionStorge中进行读写操作的函数,然后aesKey的生成时下面的函数
var t = function(t) {
for (var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", r = "", n = 0; n < t; n++) {
var i = Math.floor(Math.random() * e.length);
r += e.substring(i, i + 1)
}
return r
}(32);
这边就要引出文章要分析的地方了,既然key时随机字符串生成的又存在时效性,服务器时如何知道aes的key的呢?
其实往上会看到一个很可疑的地方
它会把sessionStorge中的rsaEncryptData发送给服务器,每隔60000s就会进行操作
因此整个流程就是这样的
一:生成一个随机字符串 写到sessionStorge aeskey
// PEhA6Dvi6QP0ebxapUICZpncgP1r8W0b
二:把生成的随机字符串rsq写到sessionStorge rsaEncryptData
三:拿着rsaEncryptData post给服务器,返回secretKeyValue,也就是请求头
中的X-Ss-Req-Header
随机字符串aesKey可以写死,我们只要把rsaEncryptData定期post到服务器,拿到新的返回值secretKeyValue就可以了
效果:
—
算法还原
原文始发于微信公众号(爬虫逆向小林哥):【逆向案例】拉gou招聘x-ss-req-header
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论