"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html文章来源地址https://www.toymoban.com/news/detail-423768.html
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
- 网站: aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi5jbi9sZGp5engvanl4eC9saXN0LnNodG1s
- 目标: 获取cookie
网站分析
经过浏览器抓包,我们可知这个网站会先发出一个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
除了时间戳以外 其他写死就行。。。这是本人扣了大半天才发现的。
其实 fp
和unknown
基本上永远不会变。
但是UA 其实是浏览器的UA头信息,随着你浏览器的改变 这个加密数据也会改变,但是你写死也不会影响。
所以不要被迷惑了。
所以一定要 多测试几遍!!
- f是
第一个cookie的value
- m是
用"&".join方法拼接出来的o
- 所以要扣的其实只有
_0x312d0e(f, m)
这个函数
如下图所示即是加密逻辑地点。
这里简单说一下
- AES加密
- 以第一个cookie的value 为 key
- 加密上文中的o o的值除了时间戳以外都是定死的。
- cbc模式加密
- base64 加密
- ...
结果如下:
文章来源:https://www.toymoban.com/news/detail-423768.html
"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html
到了这里,关于JS逆向实战13——某市公共资源交易中心Cookie混淆加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!