首页 > 其他分享 >JS逆向实战13——某市公共资源交易中心Cookie混淆加密

JS逆向实战13——某市公共资源交易中心Cookie混淆加密

时间:2023-04-24 15:48:13浏览次数:45  
标签:混淆 13 这个 加密 网站 JS cookie Cookie 我们

"本文地址: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

标签:混淆,13,这个,加密,网站,JS,cookie,Cookie,我们
From: https://www.cnblogs.com/zichliang/p/17346860.html

相关文章

  • Movie collection UVA - 1513
    有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟 开2倍数组,"i放置前面"这个操作add(i,-1),add(newi,1)  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingn......
  • web前端pdf.js预览pdf实例创建报错:Array. prototype` contains unexpected enumerable
    使用pdf.min.js是预览pdf文件,但是在实例化时异常报错,下面是实例化的代码varloadingTask=window.pdfjsLib.getDocument(url);console.log(loadingTask);this.pageNum=1;this.pageRendering=false;this.pageNumPending=null;loadingTask.promise.then((pdfDoc_)=>......
  • mysql8存取json
    1、建表CREATETABLE`test`(`id`bigintNOTNULL,`name`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`msg`jsonNULL,PRIMARYKEY(`id`)USINGBTREE)ENGINE=InnoDBCHARACTERSET=utf8mb4COLLATE=utf8mb4_0900_ai......
  • js 工具类
    /*是否带有小数*/functionisDecimal(strValue){varobjRegExp=/^\d+\.\d+$/;returnobjRegExp.test(strValue);}/*校验是否中文名称组成*/functionischina(str){varreg=/^[\u4E00-\u9FA5]{2,4}$/;/*定义验证表达式*/returnreg.tes......
  • json文件不能写注释
    原因分析:json文件不能写注释首先需要了解JSON有两种数据结构:1.名称/值对的集合:key:value;2.值的有序列表:就是Array;而在JSON的文档中说明只要是不符合上面两种结构的都不被支持,并提示错误添加注释//或者/**/在JSON文件中是不允许的。那么JSON如何才能加注释?1.使用key:v......
  • JS高级之手动实现new操作符
    相信大家都很好奇,在js中为什么函数在经过new操作之后会变成一个对象?functionFoot(params){this.name=params}Foot("aa")undefinednewFoot("aa")Foot {name:'aa'}实际上,new是一个语法糖从上面介绍中,我们可以看到new关键字主要做了以下的工作:创建一个新的对......
  • filebeat篇章——解析 json 日志
    解析json日志(Parsingjsonlogs)https://www.elastic.co/guide/en/beats/filebeat/8.7/running-on-kubernetes.html#_parsing_json_logs ItiscommoncasewhencollectinglogsfromworkloadsrunningonKubernetesthattheseapplicationsarelogginginjsonformat......
  • cookie、sessionStorage 和 localStorage
    cookie、sessionStorage和localStoragecookie1.基本概念Cookie是保存在计算机上的一种文件。当我们使用计算机浏览网页时,服务器会生成一个证书并将其返回给我们的计算机。这个证书就是cookie。一般来说,cookie是服务器写给客户端的文件,也可以称为浏览器缓存。简单来说,它可以......
  • JS中在浏览器外推送消息
    //请求显示通知的权限Notification.requestPermission().then(function(permission){if(permission==='granted'){//创建通知对象varnotification=newNotification('哇真的是你呀',{body:'你干嘛哎哟#@!~哈哈amagi',icon:'/......
  • Django4全栈进阶之路13 template模板
    在Django4中,模板是用于生成HTML响应的文件。模板将动态数据和静态HTML组合在一起,以便最终呈现给用户的页面。Django4中的模板使用Django模板语言(DjangoTemplateLanguage,简称DT)编写。DT与HTML类似,但包含一些特殊的标记和语法,用于动态地生成HTML内容。以下是一......