JS逆向 -- 硬扣SHA256(黑猫投诉)

摘要:JS逆向是一个积累的过程,就例如此次所演示的例子,如果你就SHA256的经验,那么对于这个问题,分分钟几行代码就能解决,反之,可能被里面的代码逻辑带着团团转。

首先,先来看看问题。

图一
我们的任务就是获取到相关投诉信息,页面一直往下滑动,就会出现更多的相关信息,最多展示100投诉信息

进行一个简单的抓包,可以看到相关信息。

在这里插入图片描述
不断向下翻页,发现每一页的signature参数不同,这就是此次我们爬取任务所需要的关键点。
F12,search,signature,找到signature的位置。

在这里插入图片描述

定位到关键点,在其上次寻找相关联线索。 所代码逻辑看,所需参数都是根据已知相关JS代码生成,观点在于s这个方法,调试跟进s这个方法。

在这里插入图片描述
由图,可看出根据上面先关JS代码生成t,在经过init,finalize,来个方法最后生成所需的signature值。
难点,在于方法逻辑容易搞混,反复跟进,注意其中相关参数的生成逻辑,最后,可得出结果。

在这里插入图片描述

跟进过程中,看到此关键点,就清楚的猜出这应该是SHA256方法。

在这里插入图片描述
手动扣出相关参数,经过测试可以访问。

在这里插入图片描述
附上Python直接掉用SHA256实例:out1 = hashlib.sha256(string).hexdigest(),string是上面相关JS代码生成的t参数,但是值得注意的是最终的signature,需要与ts、rs,保持一致,否则访问不超过。

手动扣出来的JS代码,部分参数写死,调用方法abc(页数):

function getresult(c) {
   
for (var t = c,
r = 32,
n = [], i = 0; i < r; i++) {
   
    var a = t[i >>> 2] >>> 24 - i % 4 * 8 & 255;
    n.push((a >>> 4).toString(16)),
    n.push((15 & a).toString(16))
}
return n.join("")
}

function abc(page) {
   
var un = (new Date).getTime(),
d = function(e, t, r) {
   
    var n = "",
    i = t,
    a = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值