news 2026/4/23 13:16:22

弋阳县某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/4/23 9:51:47

【C#】ScottPlot的Refresh()

源码会随 ScottPlot 大版本变化。 Refresh(bool lowQuality false, bool skipIfCurrentlyRendering false)这基本就是 ScottPlot 4.x 的 WinForms ScottPlot.FormsPlot 那套实现。 ScottPlot 4.x:FormsPlot.Refresh() 源码大意 在 ScottPlot 4.x 的 WinForms 控…

作者头像 李华
网站建设 2026/4/23 11:33:08

企业差旅报销平台有哪些?2025年主流服务商深度解析

企业差旅报销平台有哪些?这是许多企业管理者在优化差旅管理流程时首先思考的问题。随着数字化转型的加速,传统纸质报销模式已无法满足现代企业的效率需求,专业差旅报销平台正成为企业降本增效的重要工具。据2025年企业数字化支出管理调研显示…

作者头像 李华
网站建设 2026/4/18 7:05:21

Kotaemon吞吐量提升秘籍:批量推理与并行处理

Kotaemon吞吐量提升秘籍:批量推理与并行处理 在企业级智能对话系统日益复杂的今天,一个常见的挑战浮出水面:当数十甚至上百个用户同时发起咨询时,系统是否还能保持毫秒级响应?传统逐条处理的AI服务架构往往在高并发下迅…

作者头像 李华
网站建设 2026/4/23 11:34:31

py-webrtcvad终极指南:Python语音检测实战技巧大揭秘

py-webrtcvad终极指南:Python语音检测实战技巧大揭秘 【免费下载链接】py-webrtcvad Python interface to the WebRTC Voice Activity Detector 项目地址: https://gitcode.com/gh_mirrors/py/py-webrtcvad 还在为语音识别项目中的背景噪音困扰吗&#xff1…

作者头像 李华
网站建设 2026/4/23 3:30:19

ConvertToUTF8终极指南:一键解决Sublime Text编码乱码问题

ConvertToUTF8终极指南:一键解决Sublime Text编码乱码问题 【免费下载链接】ConvertToUTF8 A Sublime Text 2 & 3 plugin for editing and saving files encoded in GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS, etc. 项目地址: https://gitcode.com/gh_mirrors/co…

作者头像 李华