ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

【JS逆向】最新版小某书web端逆向分析

【JS逆向】最新版小某书web端逆向分析 目录一、基本信息二、初步分析1.接口分析2.参数分析三.思路分析1.x-s参数分析2.x-s-common分析3.x-t分析四、最后结论一、基本信息网站小某书目标笔记推荐接口的X-S、X-T、X-S-COMMON参数。二、初步分析1.接口分析每次下滑页面都会返回一个homefeed可以看到所有信息都是在这个接口给我们传过来的并且没有进行加密处理过的数据我们只需要向这个接口发送请求就可以拿到数据。复制到工具库生成Python代码测试一下。可以看到访问成功了。2.参数分析我们可以看到参数密密麻麻的有很多个但是有很多固定的参数我们可以进行逐个注释运行进行排除看看哪些参数是必须带上的。我们发现最重要的参数是x-s不带就拿不到数据。我们也可以在浏览器中把cookie信息删掉重新访问网站可以看到x-t和x-s-common都是变化的但是这两个参数没那么重要我们这里着重分析x-s这个参数。三.思路分析1.x-s参数分析我们直接在控制台搜索x-s可以看到就三个能匹配到并且只有第一个是真正的x-s我们点击进去查看。可以看到他这里只是把P赋值为X-s并且X-t也在这里。我们往下面看可以发现在a.headers[P] U(V, m)进行的x-t的赋值。我们把关键代码进行分析首先V是获取当前api路径然后U是赋值为seccore_signv2这个方法了。然后是如果U存在或为true执行括号里面的也就是X-sX-t的赋值。var P X-s , M X-t , V getRealUrl(c, l, _) , U seccore_signv2; U (a.headers[P] U(V, m), a.headers[M] new Date )可以看到X-s是调用了U这个方法也就是seccore_signv2并且传入了V和m。我们在这里打上断点进行调试。进入到seccore_signv2这个方法里面。这里有个细节就是要注意断住的是哪个api接口传过来的因为这里不止homefeed这一个你可以用条件断点也可以手动断。如果不是homefeed这个接口传过来的话a值就不一样了。我们可以看到函数最后返回的就是x-s的值。在控制台输出检测一下没有问题。我们分析一下代码首先把R 进行一个字符串的转换然后进行G.lz函数处理断点到这个位置看一下这个函数进行了什么操作。可以看到这是对R转换为字符串的值以后进行了一个字符串编码。可以直接拷贝下来这个方法。字符串编码以后右进行了一个G.xE方法处理我们继续进入到方法查看可以看到是进行了一个b64的编码也可以复制过去直接使用。这里决绝以后我们来看R值怎么生成的。可以看到里面的值都是固定的只有x3赋值的w为变化的可以在控制台输出检测。所以x-s主要就是处理掉这个w就完成了看上面可以发现wwindow.mnsv2(l, _, m)是这个函数进行生成的。l是e赋值过来的而e就是请求的apivar _ (0,G.Pu)([l].join()),前面已经分析过了G.Pu处理过了进入函数查看。发现有点像MD5加密在控制台输出检验一下,发现是对的。这就好办了只需要解决window.mnsv2(l, _, m)就能拿到x-s的值了。进入到函数内部可以分析进入到了一个JSVMP混淆的vm文件。有两种方法可以完成这个参数的解密第一种就是直接复制这区别的代码然后结合前面的代码进行补环境就能得到x-s的值。我们说第二种代码比较简略点。可以看到这个文件主要就是glb[_0xe762c0(0x73)]这个函数我们在这个函数打上断点看看谁来激活执行他的。经过跟栈发现是由signV2Init里面的eval来激活执行的。我们只需要把这个函数复制出来就好了复制出来以后运行会报错templateObject_1不存在这个值就在上面声明的我们把上面的也复制出来。2.x-s-common分析这个比较简单前面已经找到了他的入口位置进行搜索x-s的时候就出现3个符合的另外两个就是这个的点击进去以后这几个方法前面都已经说过了我们这只需要都打上断点以后看他进入哪个方法但是最终还是要et对象值et里面的值又有et.x1-x12,12值但是有很多固定的因为太简单不进行逐个分析了。3.x-t分析这个更加简单了前面已经定位到了这个参数位置跟x-s一起的。就是获取了一个时间戳把这串代码复制过去也行。四、最后结论通过Proxy进行补环境要注意原型链的检测。最后成果这些值我已经拿去试验过了没有问题。
返回列表