本文来自:来自: https://www.cnblogs.com/zichliang/

目标网站

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()
![](https://img2023.cnblogs.com/blog/2721529/202302/2721529-20230221103011518-671063045.png)
![](https://img2023.cnblogs.com/blog/2721529/202302/2721529-20230221103143556-1750382652.png)
![](https://img2023.cnblogs.com/blog/2721529/202302/2721529-20230221103155134-2081550246.png)
由此可见这是cookey
但是生成的地方我们暂时不知道
所以我们可以先扣其他地方 这个地方暂时写死好了
R\)jn();



同理 这个随机数也是一样的。

R\(ke();
然后我们扣这个函数
![](https://img2023.cnblogs.com/blog/2721529/202302/2721529-20230221103409606-1930558227.png)
这里有个坑
![](https://img2023.cnblogs.com/blog/2721529/202302/2721529-20230221103440861-1796997938.png)
在扣R\)lr();这个函数的时候,我们会发现很多selenium webdriver



这种情况要伪装的参数太多了,而且往里面越扣就越多,索性我们直接写死写成个定值

反正也只是一大堆环境检测。

其他顺着慢慢扣就好了。

执行JS

本文来自:来自: https://www.cnblogs.com/zichliang/

然后我们执行我们的JS



发现可以运行。

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

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

那肯定是我们刚刚写的定值不对。唯一值得怀疑的点 就是那个"cookieKey"还有"blackBlock"

但是这两个值怎么追栈都找不到,

所以我们反复hook

会发现有有些值可能是服务器生成的。

所以我们只要找到这个函数入口函数即可。



实验多次,我们找到了这个函数。

然后我们只要把这个cookieKey 和 blackBlock提取出来即可。

我们后续只需要



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

运行验证



可以正常运行~~

来自: https://www.cnblogs.com/zichliang/

JS逆向实战11——某金属集团动态cookie加密的更多相关文章

  1. JS逆向实战9——cookies DES加密混淆

    cookie加密 DES 混淆 目标网站:aHR0cHM6Ly90bGNoZW1zaG9wLnlvdXpoaWNhaS5jb20vbWFpbi90ZW5kP05vdGljZUNhdGVJZD0xJk5 ...

  2. JS逆向实战4--cookie——__jsl_clearance_s 生成

    分析 网站返回状态码521,从浏览器抓包来看,浏览器一共对此地址请求了三次(中间是设置cookie的过程): 第一次请求:网站返回的响应状态码为 521,响应返回的为经过 混淆的 JS 代码:但是这些 ...

  3. JS逆向实战3——AESCBC 模式解密

    爬取某省公共资源交易中心 通过抓包数据可知 这个data是我们所需要的数据,但是已经通过加密隐藏起来了 分析 首先这是个json文件,我们可以用请求参数一个一个搜 但是由于我们已经知道了这是个json ...

  4. JS逆向实战8——某网实战(基于golang-colly)

    其实本章算不上逆向教程 只是介绍golang的colly框架而已 列表页分析 根据关键字搜索 通过抓包分析可知 下一页所请求的参数如下 上图标红的代表所需参数 所以其实我们真正需要的也就是Search ...

  5. JS逆向实战7-- 某省在线审批网站params 随机生成

    参数分析 我们首先通过抓包 发现这个就是我们所需要的数据 然后我们通过fidder 发起请求 结果: 通过我们反复测试 发现这个params的参数是每次请求中都会变化的 断点查找 我们通过 这个t参数 ...

  6. JS逆向实战6-- x轴 y轴 过点触验证码

    点触验证码是一种常见的反爬手段 解决方案有两种:一种是直接解决,这需要深度学习机器学习等图像处理技术,以大量的数据训练识别模型,最终达到模型足矣识别图片中的文字提示和应该点击的区域之间的对应关系. 这 ...

  7. JS逆向实战5--JWT TOKEN x_sign参数

    什么是JWT JWT(JSON WEB TOKEN):JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体之间安全传输信息(JSON格式).它是在Web环境下 ...

  8. JS逆向实战2--cookie-AcwScV2加密—某招标信息网

    cookies的获取 首先拿到第一次访问原链接 拿到acw_tc的值,然后放到session中去 再用这个session再次访问原链接拿到js加载的加密的真实数据.用了一些反混淆. 最后获取这个数据中 ...

  9. JS逆向实战1——某省阳光采购服务平台

    分析 其实这个网站基本没有用到过什么逆向,就是简单的图片base64加密 然后把连接变成2进制存成文件 然后用ocr去识别即可 !! 注意 在获取图片连接 和对列表页发起请求时一定要用一个请求,也就是 ...

  10. Koa与Node.js开发实战(2)——使用Koa中间件获取响应时间(视频演示)

    学习架构: 在实战项目中,经常需要记录下服务器的响应时间,也就是从服务器接收到HTTP请求,到最终返回给客户端之间所耗时长.在Koa应用中,利用中间件机制可以很方便的实现这一功能.代码如下所示: 01 ...

随机推荐

  1. 长度最小子数组-LeetCode209 滑动窗口

    力扣:https://leetcode.cn/problems/minimum-size-subarray-sum/ 题目 给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满 ...

  2. jquery操作内容

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 【大数据面试】Flink 02 基本操作:入门案例、Env、Source、Transform、数据类型、UDF、Sink

    二.基本操作 1.入门案例 (1)批处理wordcount--DataSet val env = ExecutionEnvironment.getExecutionEnvironment // 从文件 ...

  4. 使用Java刷评论为平台引流的经历

    场景:需要在一网站中批量评论留言. 分析接口: 列表接口获取idList,返回的是json数据直接用FastJson转就可以,如果返回的是HTML片段,则需要使用Jsoup进行提取,值得一学,常用于爬 ...

  5. TabControl控件的简单使用-添加tab

    1.首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在 ...

  6. SpringBoot 自动装配的原理分析

    关于 SpringBoot 的自动装配功能,相信是每一个 Java 程序员天天都会用到的一个功能,但是它究竟是如何实现的呢?今天阿粉来带大家看一下. 自动装配案例 首先我们通过一个案例来看一下自动装配 ...

  7. ORM数据库查询优化only与defer(select_related与prefetch_related)

    目录 一:数据库查询优化 1.ORM语句特点 2.only 3.defer 4.only与defer区别 5.select_related与prefetch_related 6.select_rela ...

  8. YonBuilder移动开发平台功能大盘点

    YonBuilder是面向企业组织和个人开发者的低代码开发平台,实现无代码.低代码.专业代码开发三种模式.提供元数据驱动和画布构建两种开发方式,通过点击拖拽+自动化代码生成和移动多端编译的技术,与开放 ...

  9. [OpenCV实战]25 使用OpenCV进行泊松克隆

    目录 1 Seamless Cloning实现 1.1 Seamless Cloning实例 1.2 正常克隆(NORMAL_CLONE)与混合克隆(MIXED_CLONE) 1.2.1 Normal ...

  10. OI是什么?

    从OI谈起 提到OI,也许很多人并不清楚这是怎么一回事.对于在学校就学习过数学.物理.化学和生物的同学们来说,"国际五项学科奥林匹克竞赛"中的这四门是相当熟悉了(相对OI来说).而 ...