【JS逆向系列】某海关公示平台分析

2023-10-12 17:30

本文主要是介绍【JS逆向系列】某海关公示平台分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【JS逆向系列】某海关公示平台分析

    • 1.样本地址
    • 2.反调试
    • 3.页面分析
    • 4.算法分析

1.样本地址

aHR0cDovL2NyZWRpdC5jdXN0b21zLmdvdi5jbi9jY3Bwd2Vic2VydmVyL3BhZ2VzL2NjcHAvaHRtbC9kZWNsQ29tcGFueS5odG1s

2.反调试

使用无痕窗口,打开f12后打开网页。发现自己在断点处停下了

在这里插入图片描述
在调用堆栈网上找,这种格式的混淆就是使用的ob混淆,首先使用ast把【SwCaHu_p.js】和【menuManger.js】这两个文件进行反混淆。反混淆的方法在前面的AST系列文章有说到,这里就跳过了。

反混淆完成后,使用Fiddler.exe抓包并自动响应这两个js文件,再尝试打开网页。

在这里插入图片描述

3.页面分析

反混淆之后就不会出现无限debugger的情况了,但是这时出现了滑块。先在网页手动滑一次

在这里插入图片描述

滑块通过的话,code为0,这时得到【csessionid】和【value】。那这两个值进行下一步接口请求,正常情况下会有一个307的响应,这时会得到一个【acw_sc__v3】的cookie值,此时再请求接口,就可以得到加密的数据

在这里插入图片描述

通过调用堆栈,找到请求成功时的回调函数,并设断点,然后刷新

在这里插入图片描述

在这里插入图片描述
往下调试可以看到,通过loadAESDecryptStr方法后,就可以得到明文,跟入这个方法

在这里插入图片描述
最后是调用的MuData_KXC方法

在这里插入图片描述

4.算法分析

看到这里有isPadding、mode、sk。猜测是sm4算法,并且存在一句【_0x3ca6b6[‘sk’] = _0x3ca6b6[‘sk’]“reverse”】。这是密钥轮换后,在解密是需要对密钥得到的sk进行反转,那就可以确定,CaData_KXC是sm4加密函数,MuData_KXC是sm4解密函数。

但是使用标准sm4进行解密,发现解密得到的是一堆乱码。仔细查看代码,发现进行了一些魔改,包括初始化数值和算法细节

在这里插入图片描述
复制gmssl库中的sm4代码,并且按照js的代码进行魔改

在这里插入图片描述
在这里插入图片描述
最后尝试进行解密,可以解出明文了

在这里插入图片描述

这篇关于【JS逆向系列】某海关公示平台分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/197337

相关文章

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例