首页 > 其他分享 >JS逆向实战11——某金属集团动态cookie加密

JS逆向实战11——某金属集团动态cookie加密

时间:2023-02-21 11:12:47浏览次数:47  
标签:11 函数 JS cookie 随机数 var 我们

本文作者:ZiCh
本文链接:https://www.cnblogs.com/zichliang/p/17083105.html
版权声明:未经作者允许严禁转载

目标网站

aHR0cDovL3d3dy50bm1nLmNvbS5jbi9pbmZvcm1hdGlvbi9pbmZvX3h3enguYXNweD9jbGFzc2lkPTMx

分析

此网站根据cookie加密 如cookie无效则返回 412 有点像某数。

根据抓包分析 可知 这个

Cookie: ASP.NET_SessionId=irftqluvfywztp3nhmfqsgab; ASP.NET_SessionId_NS_Sig=oenCV6mdwHx26gTo; eFKuN5wtW89D006=K7vHE8llNk_GHoH63eOhtYf6Tr3vg0boafQPv9qOVyQRtO6M6rtkgWprfZrRt11Vr_OchRw__wmXgj2B9B70eMsA6XWIrwQ4BmwLUu23eXBog
这些cookie 是我们所传的参数。

定位函数入口

根据hook 确定 cookie加密的未知

然后我们一步一步追栈进入


这部分就是函数入口,我们在控制调用函数看看

由此可见 这就是cookie生成的入口了

耐心扣代码

我们找到了cookie生成的位置 接下来就是慢慢扣代码了
函数R\(ih()和R\)ff.R$aK();由我们多次试验可知 这是一个定值(如果不确定调用函数也行 这两个函数扣起来比较简单。)
所以我们可以改写一下

var R$aZ = 'eFKuN5wtW89D006'
var R$jZ = "K"
var R$ma = R$lA(); // 32位随机数
var R$jy = R$jn(); // 16位随机数
var R$fX = R$ke(); // 43位随机数
var R$gQ = R$jZ + R$jP(R$jy["concat"](R$jt(R$fX, R$ma)));

接下里就是扣这三个数组随机数了
R$lA()



由此可见这是cookey
但是生成的地方我们暂时不知道
所以我们可以先扣其他地方 这个地方暂时写死好了
R$jn();

同理 这个随机数也是一样的。
R$ke();
然后我们扣这个函数

这里有个坑


在扣R$lr();这个函数的时候,我们会发现很多selenium webdriver


这种情况要伪装的参数太多了,而且往里面越扣就越多,索性我们直接写死写成个定值
反正也只是一大堆环境检测。
其他顺着慢慢扣就好了。

执行JS

本文来自:来自: https://www.cnblogs.com/zichliang/
然后我们执行我们的JS

发现可以运行。
我们放到Python中运行,发现还是不行。

解决服务器动态生成问题。

那肯定是我们刚刚写的定值不对。唯一值得怀疑的点 就是那个"cookieKey"还有"blackBlock"
但是这两个值怎么追栈都找不到,
所以我们反复hook
会发现有有些值可能是服务器生成的。
所以我们只要找到这个函数入口函数即可。

实验多次,我们找到了这个函数。
然后我们只要把这个cookieKey 和 blackBlock提取出来即可。
我们后续只需要

用正则把这个值提取出来就能正常爬取了。

运行验证

可以正常运行~~

本文作者:ZiCh
本文链接:https://www.cnblogs.com/zichliang/p/17083105.html
版权声明:未经作者允许严禁转载

标签:11,函数,JS,cookie,随机数,var,我们
From: https://www.cnblogs.com/zichliang/p/17138431.html

相关文章

  • JS中的this指向
    this的概念:在js中,this是一个指针型变量,它动态指向当前函数的运行环境。在不同的场景中调用同一个函数,this的指向也可能会发生变化,但是它永远指向其所在函数的真实调......
  • python、js实现WGS84、高德(火星)、百度坐标转换
    在日常工作学习中常会涉及到WGS84、高德(火星/谷歌)、百度三种空间坐标系的坐标转换,本文将通过python、js两种语言实现坐标系的转换。坐标系说明:wgs84:为一种大地......
  • 11 使用自由风格发布k8s项目
    一背景说明新版的jenkins由于一些k8s插件发现没了,没法使用之前的方法发布了,这次不使用任何插件,直接使用自由风格发布。jenkins是使用docker启动的,k8s环境是基于1.23版本......
  • IC FPGA XC7A200T-1FFG1156I/XC7A200T-2FFG1156I参数 引脚图
    ICFPGAXC7A200T-1FFG1156I/XC7A200T-2FFG1156I引脚图型号:XC7A200T-1FFG1156I、XC7A200T-2FFG1156I类型:FPGA-现场可编程门阵列系列:XC7A200T逻辑元件数量:215360L......
  • 0-1VAC/0-5VAC转4-20mA/0-10V导轨安装DIN11交流电压隔离放大变送器
    概述:导轨安装DIN11交流电压隔离变送器,能将输入的交流信号按比例转换成4~20mA标准信号,输入交流电压信号;输出为4~20mA直流电流信号或0~5VDC直流电压信号。实现辅助电源和输......
  • C++ json库jsoncpp 吐槽
    Explain   最近在做游戏接入SDK时用到C++的json库jsoncpp,jsoncpp 是一款优秀的json库,但恶心的一点是它采用Assert作为错误处理方法,而assert在linux下通过调用abort......
  • js double bitwise not ~~ All In One
    jsdoublebitwisenot~~AllInOnejs双非位运算~~0vsNaNconstarr=[];//[]~~arr.pop();//0+arr.pop();//NaNconstarr=[];//[]consta=ar......
  • js---弹框提示和确认提示
    最近在开发PC端项目的时候,涉及到前后端交互,需要有一个弹框提示和一个确认弹框的提示,当然使用浏览器的alert和confirm就能够解决这个问题,但是这个的样式太丑了,不好看,考......
  • 【YBT2023寒假Day11 A】海妖沙龙(计算几何)
    海妖沙龙题目链接:YBT2023寒假Day11A题目大意平面上有n个点,然后对于一个排列,如果按顺序走对于的点,会形成若干个线段组成的路径,然后你从前一个线段走到下一个线段端点......
  • spring中处理json
    1.使用fastJson2.controller层@PostMapping("")@ResponseBodypublicBaseResponsejsonFunction(@RequestBodyStringjsonData){BaseResponsebaseResponse=ne......