"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html

目标网站

aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi5jbi9sZGp5engvanl4eC9saXN0LnNodG1s

网站分析



经过浏览器抓包,我们可知这个网站会先发出一个412请求,然后附带一个js 然后返回正常的页面。

经过我们代码测试可知



如图所示 这两个cookie是我们所需要的。

抓包分析

然后我们通过fiddler去抓包看看这个412请求究竟返回给我们什么了,以及能否找到其他有用的信息。



结果刚用代理打开 就发现这个网站返回给我们一个崩溃的网站。



但是fiddler依然抓到了包,



流程分析

进过上面的抓包分析和浏览器抓包

我们就有个大题的思路了

然后我们画个思维导图

  • 第一个cookie 直接获取这个set_cookie 获得之即可。

  • 第二个cookie 我们还需要进到那个混淆的Zdrwk9P9he.js然后慢慢分析才能获得。

断点分析

首先进入这个混淆的Zdrwk9P9he.js

这类混淆一般来说底下都有个reload 以此来重载自己的网站

我们滑到最底下 然后打断点慢慢往上走



这个地方好像有点像我们需要的cookie 但是不太确定。

我们看看他的构成 即使不是我们现在的cookie 但感觉一定有点啥关系。

['ts=1682304195962',
'fp=3d50c2ad77e7457692ccfb0fab1b793b',
'ua=TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ…wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMTIuMC4xNzIyLjU4',
'unknown=Y3B1Q2xhc3MsZGV2aWNlTWVtb3J5LGFyZUNvbG9yc0ludmVydGVkLG9zQ3B1']

之后清除cookie 然后把断点打在var m = o[d(1336, "Nuq%")]("&");这个位置

然后发现好像和我们刚刚看到的cookie不一样 说明还经过了一层加密

顺便按断点走



好像这个_0x312d0e(f, m) 就是二次加密的地方

扣代码

分析完毕,我们就开始扣代码了

这个代码在if 流程判断语句中 所以我们只需要看if里面的内容即可



其实在这上面已经暴露出来 o的生成逻辑了 之间扣就行了。

然而这个o 除了时间戳以外 其他写死就行。。。这是本人扣了大半天才发现的。

所以一定要 多测试几遍!!

所以要扣的其实只有_0x312d0e(f, m) 这个函数

如下图所示即是加密逻辑地点。

这里简单说一下

  1. AES加密
  2. 以第一个cookie的value 为 key
  3. cbc模式加密
  4. base64 加密
  5. ...

结果如下:

"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html

JS逆向实战13——某市公共资源交易中心Cookie混淆加密的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. JS逆向之浏览器补环境详解

    JS逆向之浏览器补环境详解 "补浏览器环境"是JS逆向者升职加薪的必备技能,也是工作中不可避免的操作. 为了让大家彻底搞懂 "补浏览器环境"的缘由及原理,本文将 ...

随机推荐

  1. 【Unity】利用C#反射打印类的字段信息

    最近在用protobuf-net序列化功能生成.bytes配置文件时,遇到了需要把.bytes配置文件再另外转成Lua配置文件(Lua配置表内容举例)的需求.Lua配置文件需要记录配置类的各个字段名和 ...

  2. mssql实现Split

    create function Fun_Split( @SourceSql varchar ( 8000 ), @StrSeprate varchar ( 10 )) returns @temp ta ...

  3. 艾思软件app开发公司帮您分析:开发一个APP多少钱?

    首先你要知道你所要开发的APP, 是不是已经成熟的相同的产品, 如果有的话那还是建议直接购买, 这种已经能满足你需求的成品APP价格会很便宜, 总成本一般也就1到2万的级别. 如果没有那就需要定制开发 ...

  4. C++多线程编程之【线程管理】

    1.如何启动线程? 构建std::thread对象即可. 直接传函数名(地址) 创建一个类并创建伪函数. 构建对象(实例化),将对象作为参数传入thread对象实例化. 2.为什么要等待线程? 首先必 ...

  5. redis单机搭建

    1.获取redis wget http://download.redis.io/releases/redis-6.2.7.tar.gz tar -xvf redis-6.2.7.tar.gz 2.安装 ...

  6. python selenium 操作文件上传,并发操作时,文件选择窗口混乱解决方案

    上传文件 使用的是 python + autoit 模块,这种方式有一个问题,当出现多条任务同时选择文件上传的时候,无法判断那个文件选择窗口的归属,从而出现上传了错误的文件! 解决方法: 要上载文件而 ...

  7. c++中文编码格式

    c++程序中涉及到中文字符的输入输出以及其他操作经常会出现乱码.乱码主要是由于程序的源文件编码.可执行文件编码以及程序运行环境的编码不匹配导致.比如,c++源程序文件编码为GB18030, 在源程序中 ...

  8. Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口编程 + 程序打包成Windows软件

    Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始.信号与槽 Qt 学习笔记 - 第二章 - 添加图片.布局.界面切换 [本章]Qt 学习笔记 - 第三章 - Qt的三驾马车之一 ...

  9. Redis6.0.9集群搭建

    前提条件: Redis版本:6.0.9(因为5.0之前创建用的是redis-trib,还需要ruby,ruby-gem) 安装环境: Centos7 1. 准备配置文件 一个是通用文件:redis-c ...

  10. 使用cmd命令行安装 windows系统

    条件:Microsoft WindowsPE 或其他第三方 WindowsPE 1. 使用 diskpart 分区: list disk:列出所有磁盘 select disk  编号:选择某块磁盘 c ...