渗透中的逆向工具-jsrpc实操手记
前言
在渗透测试过程中,有些网站的接口参数是加密的。对于逆向小菜鸡的我来说,遇到这种网站总是束手无策,不能修改其中的参数,也就无法进行下一步的测试。偶然间发现一款js逆向工具jsrpc,它可以直接调用网页加密函数,免去繁琐的扣代码步骤。
实操
构造方法
这里以该网站为例,如图所示,请求体和响应体皆为加密字符串

直接在js中找“encrypt(”关键字,发现有点多

直接使用xhr进行断点(原理是触发/login请求处断点),往前几行找到请求体中param的传参及加密加密方法

加密处再次进行断点,发现加密的参数如下

这里继续往前找secret的生成位置

此处加密的参数为m,m的值如下这里前面部分皆可由js中自动获取,后面部分为传入的用户名密码

至此整个加密的代码片段如下

在加密处进行断点,并将整个加密代码片段构造提升为有参的全局方法

构造后调用,放掉后若与数据包一致则为成功

解密方法也是如此,这里不过多赘述


至此已将加解密代码提升为全局的有参方法
建立连接
在控制台中输入jsrpc所需代码(jsrpc项目中的js文件代码)

打开jsrpc监听

按照jsrpc使用文档中所述,构造方法,建立jsrpc连接

代码调用
编写python的调用代码


运行如下

调试小技巧及避坑
小技巧
可以在注册全局方法的时候,将怀疑出问题的地方插入打印代码console.log(),后续jsrpc在进行调用该方法的时候就可以在控制台进行打印

坑点
python将json格式(如a='{"password":"1212","username":"1212"}')传到控制台时,会变成var param={"password":"1212","username":"1212"},此时输出会发现,这里变成了Object类型,拼接后会变成[object Object]

解决方法是在构造方法时,将传入的参数使用JSON.stringify()进行处理
param=JSON.stringify(param);

总结
总体工作流程如下
1、客户端(本程序)将原始请求数据通过JSRPC服务器(本地)加密
2、客户端将加密数据发送给目标API
3、目标API返回响应密文
4、客户端将响应的密文通过JSRPC服务器解密,得到原始响应

渗透中的逆向工具-jsrpc实操手记的更多相关文章
- Hive中的数据类型以及案例实操
@ 目录 基本数据类型 集合数据类型 案例实操 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它 ...
- 实时采集MySQL数据之轻量工具Maxwell实操
@ 目录 概述 定义 原理 Binlog说明 Maxwell和Canal的区别 部署 安装 MySQL准备 初始化Maxwell元数据库 Maxwell进程启动 命令行参数 配置文件 实时监控Mysq ...
- Python中 sys.argv[]的用法实操
使用sys.argv[]首先要调用模块sys import sys 通俗说,这个东西就是取代了input的功能,input是用pycharm上,而argv[]是用在命令行上 也就是window 上的小 ...
- CS内网横向移动 模拟渗透实操 超详细
@Webkio 前言: 最近在跟朋友搞一些项目玩,所以最近没怎么更新内容接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白.本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自 ...
- 性能测试工具 jmeter 分布式压力测试实操
性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布 ...
- 数据转换工具DBT介绍及实操
一.什么是DBT dbt (data build tool)是一款流行的开源数据转换工具,能够通过 SQL 实现数据转化,将命令转化为表或者视图,提升数据分析师的工作效率.dbt 主要功能在于转换数据 ...
- 72 个网络应用安全实操要点,全方位保护 Web 应用的安全
原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...
- 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了
引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中? 本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中 ...
- SBT实操指南
参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...
- HDFS集群PB级数据迁移方案-DistCp生产环境实操篇
HDFS集群PB级数据迁移方案-DistCp生产环境实操篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 用了接近2个星期的时间,终于把公司的需要的大数据组建部署完毕了,当然,在部 ...
随机推荐
- Oracle使用Impdp导入dmp文件的详细过程
这一天为了导入这个Oracle的dmp文件,简直就是血泪史,因本人对Oracle并不是很会,随意踩了很多小白会踩的坑,因此特意记录一下过程,防备下次的使用. 1.首先将你需要的dmp文件准备好,将其放 ...
- 推荐2款docker可视化管理面板
1.portainer portainer算是比较知名的开源docker管理工具,功能上比较齐全,不过只有英文版本,没有中文,不过这并不影响他的使用. 官方地址:https://www.portain ...
- 从零开始开发一个 MCP Server!
大家好!我是韩老师. 最近,在 AI 开发领域,MCP (Model Context Protocol) 是越来越火了! 前几天,我我也开发了一款 Code Runner MCP Server: Co ...
- css标签名
标签 功能介绍 p 标签选择器 #id id选择器 .class class选择器 * 通用选择器 p,a 多个标签选择器 p a 后代选择器 p>a 子代选择器 p+a 紧挨着p后面的a选择器 ...
- Golang 301永久重定向
比如我要把www.taadis.com永久重定向到taadis.com //main.go package main import ( "log" "net/http&q ...
- mongo db集群故障选举分析
转载请注明出处: 一.MongoDB集群基础架构 1. 副本集(Replica Set)核心原理 节点角色: Primary:唯一可写节点,处理所有写操作和默认读请求 Secondary:异步复制Pr ...
- python,循环中通过判断条件中止循环的方法(braek 语句)
直接对下方代码进行解析 for a in range(5): print(a) if a == 2: break 依次读取range内的数字,并答应出来.当读取出来的数字是2时,结束循环,执行后入下图 ...
- HTML用JS导出Excel的五种方法,无需js-xlsx库
原文地址:https://blog.csdn.net/aa122273328/article/details/50388673 这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器( ...
- [VulnHub]DC-1靶场全过程
DC-1 借鉴我们OnePanda-Sec团队的文章 https://mp.weixin.qq.com/s/BbPkmDiZ-cRleiCqmj114w 靶场搭建 先导入DC-1靶场,并将连接改为NA ...
- Multisim14.0安装包免费获取,超详细中文安装步骤助你快速上手!
Multisim14.0简介 Multisim14.0是由美国国家仪器公司(NI)推出的专业电子设计自动化](EDA)工具,广泛应用于电路设计.仿真验证.教学实验及科研开发领域.其核心功能是通过虚拟仿 ...