私募pp网-私募排行js逆向

在数据采集的学习过程当中,发现了一个有意思的网站,所以记录一下,仅供学习交流,用于其他用途与作者无关。

目标:私募基金当中的列表页数据

一、抓包环节

省略
接口:https://sppwapi.simuwang.com/sun/ranking/fundRankV3
在这里插入图片描述
一个xhr的请求类型。

二、逆向分析

在这里插入图片描述
这里可以看到的是数据是被加密了,一般如果返回这样的样式的可以搜索一下Json.parse看看是否能够搜索到解密的地方(混淆了搜索不到)

1、观察请求体、请求参数

请求体:
在这里插入图片描述
这里翻页然后再pycharm当中重新请求,但是没有携带cookie,发现是可以请求成功也有返回结果的,实践步骤略(可以自己实现)

请求参数:
在这里插入图片描述
这里看到的请求参数发生变化的事pageUSER_ID这两个参数,page是对应的页面的页码,USER_ID则是登录该网站之后的,是不会发生变化的。

2、跟栈找到加密位置

添加xhr断点
在这里插入图片描述
在这里插入图片描述
这里是fetch所以要选择单步调试,随后就是更具栈来找到解密位置
在这里插入图片描述
这里可以看到条件控制流走"json",跟进去
在这里插入图片描述
可以发现数据有了,是加密之后的数据,现在就是要看数据在哪里解密的。
在这里插入图片描述
这里可以看到是把数据传递到了g函数当中控制台输出一下看看是否解密了
在这里插入图片描述
这里发现没有解密,那就继续往下看
在这里插入图片描述
这里看一下c.options.onResponse是什么操作,因为刚才的控制流可以看到,我们需要的数据现在是在c这个变量当中的
在这里插入图片描述

3、确认解密参数

在这里插入图片描述
进来了看下参数
在这里插入图片描述
这里明显的看到了有个decrypt关键字,盲猜看看是不是在这个里面做了解密,但是还是需要看看在当前的函数当中是怎么走的。
跟着函数执行可以发现,其实就是两步

e._data.data = JSON.parse(e._data)
e._data.data = decrypt(e._data.data)

随后跟进decrypt当中看看
在这里插入图片描述
在入口和结束的地方打断看看,中间的可以随便打一两个,毕竟第一遍是看看是否印着了猜想
在这里插入图片描述
直接按照断点运行就会发现,在最后的过程当中数据被解密了
所以肯定解密的地方就是在这个函数之内了
在这里插入图片描述
最后放过断点,重新翻页再来到该函数里,随后就是对该函数的分析了,这里就不贴图了,简单的说一下

let script = document[__Ox11208b[9]](__Ox11208b[8]);
script[__Ox11208b[10]] = data[__Ox11208b[11]],
document[__Ox11208b[13]][__Ox11208b[12]](script);

这三行代码对解密没有什么用,应该是网页添加一些元素,所以可以删除,然后后面发现在判断条件的时候都是走的

else if (data && data[__Ox11208b[0]]) {

这一行。
扣下来会发现这些按照本地的调用的话是不太全,所以要补全,需要导入crypto-js,将MD5,AES,UTF8这些替换成本地crypto-js的写法
替换完成的代码如下:

const CryptoJS = require("crypto-js")

function get_result(data){
   
   
	ar __Ox11208b = ["encode", "aes", "wxSign", "data", "atob", "parse", "slice", "decrypt", "script", "createElement", "text", "key", "appendChild", "body", "window.", "id", "", "join", "reverse", "split", "length", "charCodeAt", "fromCharCode", "undefined", "log", "删除", "版本号,js会定", "期弹窗,", "还请支持我们的工作", "jsjia", "mi.com"];

    if (data && data[__Ox11208b[0]] === __Ox11208b[1]) {
   
   
        const e = CryptoJS.MD5(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值