13_某市公共资源交易中心Cookie混淆加密

Date
Apr 24, 2023
Created
Mar 2, 2024 02:55 PM
Tags
JS逆向实战

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

目标网站

  • 网站: aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi5jbi9sZGp5engvanl4eC9saXN0LnNodG1s
  • 目标: 获取cookie

网站分析

notion image
经过浏览器抓包,我们可知这个网站会先发出一个412请求,然后附带一个js 然后返回正常的页面。经过我们代码测试可知
notion image
如图所示 这两个cookie是我们所需要的。

抓包分析

然后我们通过fiddler去抓包看看这个412请求究竟返回给我们什么了,以及能否找到其他有用的信息。
notion image
结果刚用代理打开 就发现这个网站返回给我们一个崩溃的网站。 但是fiddler依然抓到了包,
notion image
notion image

流程分析

进过上面的抓包分析和浏览器抓包 我们就有个大题的思路了
然后我们画个思维导图
notion image
  • 第一个cookie 直接获取这个set_cookie 获得之即可。
    • notion image
  • 第二个cookie 我们还需要进到那个混淆的Zdrwk9P9he.js然后慢慢分析才能获得。

断点分析

首先进入这个混淆的
Zdrwk9P9he.js
这类混淆一般来说底下都有个reload 以此来重载自己的网站
我们滑到最底下 然后打断点慢慢往上走
notion image
这个地方好像有点像我们需要的cookie 但是不太确定。 我们看看他的构成 即使不是我们现在的cookie 但感觉一定有点啥关系。
notion image
['ts=1682304195962', 'fp=3d50c2ad77e7457692ccfb0fab1b793b', 'ua=TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ…wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMTIuMC4xNzIyLjU4', 'unknown=Y3B1Q2xhc3MsZGV2aWNlTWVtb3J5LGFyZUNvbG9yc0ludmVydGVkLG9zQ3B1']
之后清除cookie 然后把断点打在var m = o[d(1336, "Nuq%")]("&");这个位置
notion image
然后发现好像和我们刚刚看到的cookie不一样 说明还经过了一层加密 顺便按断点走
notion image
notion image
好像这个_0x312d0e(f, m) 就是二次加密的地方

扣代码

分析完毕,我们就开始扣代码了 这个代码在if 流程判断语句中 所以我们只需要看if里面的内容即可
notion image
其实在这上面已经暴露出来
o
的生成逻辑了 之间扣就行了。
然而这个o 除了时间戳以外 其他写死就行。。。这是本人扣了大半天才发现的。 其实 fpunknown 基本上永远不会变。 但是UA 其实是浏览器的UA头信息,随着你浏览器的改变 这个加密数据也会改变,但是你写死也不会影响。 所以不要被迷惑了。
所以一定要 多测试几遍!!
  • f是第一个cookie的value
  • m是用"&".join方法拼接出来的o
  • 所以要扣的其实只有_0x312d0e(f, m) 这个函数
如下图所示即是加密逻辑地点。
notion image
这里简单说一下
  1. AES加密
  1. 以第一个cookie的value 为 key
  1. 加密上文中的o o的值除了时间戳以外都是定死的。
  1. cbc模式加密
  1. base64 加密
  1. ...
结果如下:
notion image
notion image