news 2026/8/20 3:50:46

弋阳县某gov -伪造的cf 盾逆向分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
弋阳县某gov -伪造的cf 盾逆向分析
url = aHR0cDovL3d3dy5qeHl5Lmdvdi5jbi95eXhmZ3cvcHpmd3h4L3l5endna194eGdrbGlzdC5zaHRtbA==

打开这个网站,首先会出现这个界面,搞的和那个盾太像了,其实并不是。观察发现请求了两次这个html页面,第一次返回412的状态码,第二次携带了4个cookie,再请求这个页面,返回了200的状态码。这怎么和那个瑞某数这么像,我们需要逆向分析的就是这4个cookie

cookies = { 'CT_6eadf26c': 'nPlu0mEJ3YbpIa5lC+7BIELYF7jPGiLF1Sc4mPg8LknEskN7AAPAhMQGgrCvHwLK', 'CT_f7ba0eb8': '2114d6e32c72366f5c0e95a02e69b988', 'CT_e6tzab00': 'ZM7u/0oalOwFLidXMQNq0elOImHTyUfigcHNcJEzROo=', 'CT_rqu7ab01': 'AxI0rjsUNTji1WN7FWNyT5MgH+IXBnx0i3GR6RvLUdc=', }

这里直接hook

(function () { 'use strict'; var cookieTemp = ''; Object.defineProperty(document, 'cookie', { set: function (val) { if (val.indexOf("CT_6eadf26c") !== -1) { debugger; } console.log('Hook捕获到cookie设置->', val); cookieTemp = val; return val; }, get: function () { return cookieTemp; }, }); })();

这里打中了后,向上跟栈发现,就是在这里设置了cookie在这里打上断点,刷新界面,断到这里,发现第一次是设置CT_6eadf26c这个cookie,观察发现这个_0x3c7522值是前面一个函数返回的,往上面再看一个栈。这里就找到了这个值的生成位置看到这种混淆其实是很头痛的,我开始的思路是把这个代码全部拿下来,补环境然后再通过document.cookie获取这个值,这样就不用写AST解混淆了,其实不解也可以,就是分析起来不方便,补环境的时候,发现这个有格式化检测,然后还检测了一堆的环境,补到一半,还是分析代码吧。

回到上面,发现是这个_0x49b683函数,加密了字符串_0x42aa0c,生成了CT_6eadf26c,进入这个函数,

function _0x49b683(_0x108654, _0x3647d8, _0x2c5631, _0x4e50b2) { (_0x2c5631 = _0x47f5ff()[_0xce7da6(-0x23f, -0x311, -0x9e, -0xf0)](_0x2c5631), 'url' == _0x4e50b2) && (/[\x00-\x1F\x7F\u0080-\uFFFF]/['test'](_0x108654) && (_0x108654 = encodeURI(_0x108654))); _0x108654 = _0x47f5ff()[_0xce7da6(-0x2f2, -0x2be, 0x72, -0xf0)](_0x108654), _0x3647d8 = _0x47f5ff()[_0xce7da6(-0xef, -0x2de, -0x2fd, -0xf0)](_0x3647d8); var _0x2f3939 = _0x56a4f7['Hzvgv'](_0x100665)['encrypt'](_0x108654, _0x3647d8, { 'iv': _0x2c5631, 'padding': _0x31e175() }); function _0xce7da6(_0x43483a, _0x3e5d97, _0x3a5521, _0x397f09) { return _0x19a28a(_0x397f09 - -0x53d, _0x3e5d97 - 0x1c4, _0x3a5521, _0x397f09 - 0x3f); } return _0x56a4f7['iQEMw'] == _0x4e50b2 ? encodeURIComponent(_0x2f3939['toString']()) : _0x2f3939[_0xce7da6(0x34c, 0x314, 0x120, 0x2cc)](); }

发现这里有iv和padding,有发现这个类似于这个key的'8a08ebf29x^*xO53',这里其实可以猜测这个就是AES加密了,后面测试了一下,发现果然就是的,是标准的AES-CBC。

这里的CT_6eadf26c,CT_e6tzab00,CT_rqu7ab01都是走了这个方法,就是加密的字符串不一样,然后key和iv也不一样,这里自己去分析一下。

最后就是这个CT_f7ba0eb8,32位长度的,猜测是MD5加密,继续断点往上再看一个栈,这里就非常清楚了

标准的MD5,加密了环境,这个_0xd0d237里面就是我们游览器的环境,转字符串,然后进行加密,这个是标准的算法,自己去试一下就知道了。

最后看一下纯python实现的效果若有侵权,联系删除文章!!!

若有侵权,联系删除文章!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 6:51:39

构建软件测试中的伦理风险识别与评估体系

在人工智能与大数据技术蓬勃发展的今天,软件测试已从单纯的功能验证转向更广阔的责任疆域。根据Gartner 2024年预测,到2027年,未能建立系统化伦理风险评估机制的企业将面临30%以上的合规处罚风险。软件测试从业者作为产品质量的重要把关者&am…

作者头像 李华
网站建设 2026/8/19 2:47:25

OpenBoardView终极指南:快速掌握电路板文件查看技巧

OpenBoardView终极指南:快速掌握电路板文件查看技巧 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 想要高效查看和分析电路板设计文件吗?OpenBoardView作为一款功能强大的开源软件…

作者头像 李华
网站建设 2026/8/19 17:49:55

X-AnyLabeling完整使用指南:从零开始掌握AI数据标注

X-AnyLabeling完整使用指南:从零开始掌握AI数据标注 【免费下载链接】X-AnyLabeling Effortless data labeling with AI support from Segment Anything and other awesome models. 项目地址: https://gitcode.com/gh_mirrors/xa/X-AnyLabeling X-AnyLabelin…

作者头像 李华
网站建设 2026/8/18 4:59:04

【码道初阶】【Leetcode105106】用遍历序列还原二叉树:前序+中序、后序+中序的统一套路与“先建哪边”的坑

【Leetcode105&106】用遍历序列还原二叉树:前序中序、后序中序的统一套路与“先建哪边”的坑二叉树的遍历序列题,特别像“看上去是模板题,但真正拉开差距的是细节”。很多时候不是不会写,而是写着写着就把“顺序”弄反&#x…

作者头像 李华