js逆向——RSA实战案例讲解

受害者网站:http://www.15yunmall.com/pc/login/index

检查超时,这个我们不管他

直接分析参数,有2处加密位置,分别为password和csrftoken

只要是能够跟栈的,一律先在send的位置下断 

很快就跟栈找到加密数据的位置

RSA分析的重点:

1、new RSA(); //反正必须要new一个对象

2、setPublicKey; 一定要调用一个方法设置公钥(名称无所谓),需要有公钥和mode(一般为10001)

3、加密; 必须用到BigInt大数的运算

RSA扣取代码平均2000行左右,行数一定要大致对的上

把关键代码扣取出来,检查上面提到的new;setkey;publickey,mode是否都全面了!!!

var public_key="00bdf3db924714b9c4ddd144910071c282e235ac51371037cf89fa08f28b9105b6326338ed211280154c645bf81bae4184c2b52e2b02b0953e7aa8b25a8e212a0b";
var public_length="10001";
var rsa = new RSAKey();
rsa.setPublic(public_key, public_length);

一、RSA四件套测试

首先测试RSA必备的4件套(new,setkey,mode,publickey)能否正确得到了!!

注意一定要新开一个空白页面!!

提示:RSAKey is not defined,我们再次返回刚刚的界面去寻找RSAKey的定义,然后把代码扣取下来

我们在new RSAKey()上面打上断点

算法单独使用一个文件来实现,一共也就100多行,直接全部扣取下来

新扣取的代码一律放到最上面, 再次运行,报错:BigInteger is not defined

于是就再次回到之前的网页下断点分析 BigInteger的来源

发现又是一个500行左右的单独文件

直接全部复制下来,放到脚本的头部

再次运行就没问题了,注意脚本的命名要使用英文!

否则会报错:由于此 URI 格式不正确,因此在工作区尝试绑定“snippet:///%u5300%u52A0%u901F%u5546%u57CE”时失败。

二、RSA加密测试

尝试使用我们自己扣取的RSA算法来加密文本"123456"

结果报错,我们就继续缺啥补啥

同样把单独文件全部扣取下来

然后又报错:rng_psize is not defined

直接搜索rng_psize的定义位置

再次运行发现已经可以在浏览器的环境下正确进行RSA加密了

三、本地运行RSA代码

尝试使用js调试工具在本地运行代码,结果报错:navigator 未定义

本地一般都是确实浏览器的环境所导致的!!!

补环境主要2点:补/删(需要读逻辑)

删:删除的代码不参与最后的计算(只是一个逻辑判断)

补:参与本地计算/需要提交到服务器

对于数量不多的情况,可以考虑删除代码

直接在你不确定是否执行的代码前面打上debugger(本地脚本)

结果没用断下来,说明可以直接删除 

为了严谨起见,我们在fd中把相关代码注释掉

再次加载代码

一个分支语句到底走哪一个?我们在流程的最前面加上一个debugger看看到底进入哪一个流程

if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {BigInteger.prototype.am = am2;dbits = 30;
}else if(j_lm && (navigator.appName != "Netscape")) {BigInteger.prototype.am = am1;dbits = 26;
}
else { // Mozilla/Netscape seems to prefer am3BigInteger.prototype.am = am3;dbits = 28;
}

这样前面的2条分支语句就可以注释掉了

再次在fd当中加载代码,这次成功了

然后我们尝试执行加密函数,也是顺利得到了加密结果

补充知识点:

函数返回undefined说明函数没用返回值,但是也有可能在函数的内部a.param.key=xxx这样赋值

ok,今天的你就到此为止吧,see you tomorrow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/416376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《JavaEE进阶》----4.<SpringMVC①简介、基本操作(各种postman请求)>

本篇博客讲解 MVC思想、及Spring MVC(是对MVC思想的一种实现)。 Spring MVC的基本操作、学习了六个注解 RestController注解 RequestMappering注解 RequestParam注解 RequestBody注解 PathVariable注解 RequestPart注解 MVC View(视图) 指在应⽤程序中…

我用 GPT 学占星

最近对占星赶兴趣,但是看到星盘中好多名词,不懂是什么意思?所以直接问 gpt , 发现回答的真的很棒🎉 ! 假如我想知道各个状态的具体是根据什么数据来显示的? 分分钟解决了我的问题; 我…

docker Desktop报错 error pulling image configuration 处理

问题描述 在 docker 拉数据 出现以下错误 error pulling image configurarion: 这个问题 主要是 可能应该某些原因不能网络无法连上镜像 原因分析: 1。 2024年 5月以后 国内很多IP都 。。。懂的都懂,很多 VPN 也是。。。 懂的都懂&#x…

7种常见排序

1 直接插入排序 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为 止&#xff0c;得到一个新的有序序列 。 void InsertSort(int* a, int n) {for (int i 0; i < n - 1; i){//划分区间【0&#xff0c;end】int en…

Ubuntu 24.04 安装 英特尔工具包 Intel® Toolkits

目录 1.采用用户界面 GUI 安装英特尔基本工具包 Intel oneAPI Base Toolkit 1.1 下载离线英特尔基本工具包 1.2 安装英特尔基本工具包 1.3 英特尔基本工具包 Intel oneAPI Base Toolkit 环境设置 2.安装英特尔高性能计算工具包 Intel HPC Toolkit 2.1 下载离线英特尔高性…

模型从 HuggingFace 转存到 ModelScope

由于 HuggingFace 网络访问比较慢&#xff0c;国内通常会使用魔搭下载模型&#xff0c;如果魔搭上还没有&#xff0c;需要从 HuggingFace 准存一下&#xff0c;本文将通过 Colab AliyunPan 的方式下载模型并进行转存。 登录Colab 并运行一下命令 安装依赖包&#xff0c;Hugg…

最新项目管理软件排行榜,90%大厂项目经理都在用!

本文是主流的热门项目管理软件排行榜&#xff0c;助力企业选型&#xff01; 项目管理软件排行榜就如同企业管理的指南针&#xff0c;能为企业在众多项目管理工具中找到最适合的那一款。 对于企业来说&#xff0c;如果没有好用的项目管理软件&#xff0c;就像航海者失去了罗盘&…

Python 数据分析笔记— Numpy 基本操作(上)

文章目录 学习内容&#xff1a;一、什么是数组、矩阵二、创建与访问数组三、矩阵基本操作 学习内容&#xff1a; 一、什么是数组、矩阵 数组&#xff08;Array&#xff09;&#xff1a;是有序的元素序列&#xff0c;可以是一维、二维、多维。 array1 [1,2,3] 或[a, b, c, d…

智能工厂监控升级:Sovit2D大屏展示和ARM计算机的完美搭档

在当今科技飞速发展的时代&#xff0c;智能工厂和环境监测领域对于高效、精准的监控系统的需求日益增长。Sovit2D 组态软件与 ARM 工业计算机的结合&#xff0c;为这些领域带来了全新的解决方案。 走进智能工厂的监控室&#xff0c;一台台 ARM 工业计算机正稳定地运行着 Sovit2…

Echarts可视化

echarts是一个基于javascripts的开源可视化图表库 画图步骤&#xff1a; 1.引入echarts.js文件 <script src" https://cdn.jsdelivr.net/npm/echarts5.5.1/dist/echarts.min.js"></script> 也可将文件下载到本地通过src引入。 2. 准备一个呈现图表的…

828华为云征文|华为云Flexus X实例docker部署harbor镜像仓库

828华为云征文&#xff5c;华为云Flexus X实例docker部署harbor镜像仓库 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定不要错…

Django+Vue二手交易平台的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作者&…

Having trouble using OpenAI API

题意&#xff1a;"使用OpenAI API遇到困难" 问题背景&#xff1a; I am having trouble with this code. I want to implement AI using OpenAI API in my React.js project but I cannot seem to get what the issue is. I ask it a question in the search bar in…

string详解

Golang详解string 文章目录 Golang详解stringGolang中为什么string是只读的&#xff1f;stirng和[]byte的转化原理[]byte转string一定需要内存拷贝吗&#xff1f;字符串拼接性能测试 Golang中为什么string是只读的&#xff1f; 在Go语言中&#xff0c;string其实就是一个结构体…

实验报告: lookie-lookie 项目测试与分析

目录 一、实验目的 二、实验环境 三、实验步骤 1. 下载与准备项目 1.1 从 GitHub 获取项目 1.2 查看项目文件结构 2. 运行项目 2.1 启动项目 2.2 浏览器设置 3. 项目体验 3.1 功能测试 3.2 运行截图 4. 文件结构分析 4.1 总体结构 4.2 主要文件和目录说明 5. 数…

09-03 周二 ansible部署和节点管理过程

09-03 周二 ansible部署和节点管理过程 时间版本修改人描述2024年9月3日10:08:58V0.1宋全恒新建文档&#xff0c; 简介 首先要找一个跳板机&#xff0c;来确保所有的机器都可以访问。然后我们围绕ansible来搭建环境&#xff0c;方便一键执行所有的命令&#xff0c;主要的任务是…

SQL语言的规则和规范

规则 是什么呢&#xff0c;规则就是我们最基本&#xff0c;每时每刻都要遵守的比如人行道靠右&#xff0c;不能逆行&#xff0c; 规范 呢就是锦上添花&#xff0c;如果你不这么做&#xff0c;是不那么道德&#xff0c;不那么好的&#xff0c;就像小学生见到老师要问好&#…

机器学习:opencv图像识别--图片运算、边界、阈值处理、平滑处理

目录 一、图片运算 1.加法 1. 2.add 3.加权相加 2.减法 二、图片边界 三、图像阈值处理 四、图像平滑处理 1.生成椒盐噪声 2.滤波器 1.均值滤波 2.方框滤波 3.高斯滤波 4.中值滤波 一、图片运算 1.加法 1. 直接将图片上每个像素点的值加上给定值或者两张图片…

wpf image source绑定相对路径方法

当使用image source绑定相对路径图片资源时&#xff0c;出现问题&#xff1a;未能找到路径C:\windows/System32…路径的一部分 解决方法&#xff1a; 将文件放到指定文件夹中包含在当前项目中 具体绑定语句为&#xff1a; <Image Stretch"Fill" x:Name"imgT…

(计算机论文)基于SpringBoot和Vue的台球赛事服务网站的设计与实现

毕业设计&#xff08;论文&#xff09; 博主可接毕设论文&#xff01;&#xff01;&#xff01; 基于SpringBoot和Vue的台球赛事服务网站的设计与实现 摘 要 在快速发展的信息时代&#xff0c;体育竞赛作为群众文化娱乐的一部分&#xff0c;已日益受到广泛关注。台球&#xff…