js逆向,破解企名片网站的加密参数

19 篇文章 1 订阅
3 篇文章 1 订阅

打开网站–企名片

主要是破解企业数据列表的加密,红框圈起来的
链接:企名片
在这里插入图片描述
直接请求网站,response 响应的信息里面没有想要的数据,那应该就是js动态加载的数据,所以直接点击 XHR 你就会看到
在这里插入图片描述
这两个请求响应的信息里面都有一个超长的加密字符串,所以大胆猜测一下,应该就是我们需要的数据,其他的点进去啥也没有。
在这里插入图片描述
然后怎么去解析这个参数呢?

解析加密数据 encrypt_data

最简单,直接的就是直接根据 encrypt_data 这个键直接去 js 中搜索,最后会在下图中找到
在这里插入图片描述
下面就是打断点,刷新页面,一步一步去找到这个在 js 中是怎样解析的。这是最直接的办法,下面说一下正常的流程,因为是 post 请求,所以就可以打 XHR 断点,怎么打这个断点呢
在这里插入图片描述
在 source 中选择 XHR BreakPoint,点击它右上角的加号,在框内填入要打断的 URL,或者唯一的关键词就行,我填的 productListVIP, 然后刷新页面, 一步一步去运行,找到解密的位置,直接抠出 js 执行 js 而不用去纠结它具体是咋解密的,只需要结果。

打断点找位置

在这里插入图片描述
打断点的时候最好在object前也打个断点,不然有时候就直接结束了,没有进入断点。
刷新,点击下一步
在这里插入图片描述
会找到这个方法,找到这基本就差不多了,可以看到方法中调用了一个 s 方法,s 方法中6个参数, 有5个是固定的,所以这就更简单了。只需要去找一下这个decode 方法
在这里插入图片描述
找到了,只需传一个t ,而这个t 就是我们加密字符串
在这里插入图片描述
再回头找好 s 方法,直接将这几个 js 抠出来,使用 Python 执行 js 的库,执行 js 就 OK 了
o 方法返回的是一个 object 对象,在 Python 中不能正确接受,所以将其转换为 base64 返回。
所以需要稍微改一下

function my_o(t) {
   return new Buffer(s("5e5062e82f15fe4ca9d24bc5", mydecode(t), 0, 0, "012345677890123", 1)).toString("base64")
}

改成这样,其他的不变

function mydecode(t) {
   var c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
   var f =  /[\t\n\f\r ]/g;
   var e = (t = String(t).replace(f, "")).length;
   e % 4 == 0 && (e = (t = t.replace(/==?$/, "")).length),
   (e % 4 == 1 || /[^+a-zA-Z0-9/]/.test(t)) && l("Invalid character: the string to be decoded is not correctly encoded.");
   for (var n, r, i = 0, o = "", a = -1; ++a < e;)
       r = c.indexOf(t.charAt(a)),
           n = i % 4 ? 64 * n + r : r,
       i++ % 4 && (o += String.fromCharCode(255 & n >> (-2 * i & 6)));
   return o
}

s 方法就不贴了,太长了,使用 execjs 执行js, 完成
在这里插入图片描述
结束!

详细代码可以添加微信公众号回复1获取

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裸睡的雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值