前言

在渗透测试过程中,有些网站的接口参数是加密的。对于逆向小菜鸡的我来说,遇到这种网站总是束手无策,不能修改其中的参数,也就无法进行下一步的测试。偶然间发现一款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实操手记的更多相关文章

  1. Hive中的数据类型以及案例实操

    @ 目录 基本数据类型 集合数据类型 案例实操 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它 ...

  2. 实时采集MySQL数据之轻量工具Maxwell实操

    @ 目录 概述 定义 原理 Binlog说明 Maxwell和Canal的区别 部署 安装 MySQL准备 初始化Maxwell元数据库 Maxwell进程启动 命令行参数 配置文件 实时监控Mysq ...

  3. Python中 sys.argv[]的用法实操

    使用sys.argv[]首先要调用模块sys import sys 通俗说,这个东西就是取代了input的功能,input是用pycharm上,而argv[]是用在命令行上 也就是window 上的小 ...

  4. CS内网横向移动 模拟渗透实操 超详细

    @Webkio 前言: 最近在跟朋友搞一些项目玩,所以最近没怎么更新内容接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白.本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自 ...

  5. 性能测试工具 jmeter 分布式压力测试实操

    性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布 ...

  6. 数据转换工具DBT介绍及实操

    一.什么是DBT dbt (data build tool)是一款流行的开源数据转换工具,能够通过 SQL 实现数据转化,将命令转化为表或者视图,提升数据分析师的工作效率.dbt 主要功能在于转换数据 ...

  7. 72 个网络应用安全实操要点,全方位保护 Web 应用的安全

    原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...

  8. 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了

    引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中?         本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中 ...

  9. SBT实操指南

    参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...

  10. HDFS集群PB级数据迁移方案-DistCp生产环境实操篇

    HDFS集群PB级数据迁移方案-DistCp生产环境实操篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 用了接近2个星期的时间,终于把公司的需要的大数据组建部署完毕了,当然,在部 ...

随机推荐

  1. Oracle使用Impdp导入dmp文件的详细过程

    这一天为了导入这个Oracle的dmp文件,简直就是血泪史,因本人对Oracle并不是很会,随意踩了很多小白会踩的坑,因此特意记录一下过程,防备下次的使用. 1.首先将你需要的dmp文件准备好,将其放 ...

  2. 推荐2款docker可视化管理面板

    1.portainer portainer算是比较知名的开源docker管理工具,功能上比较齐全,不过只有英文版本,没有中文,不过这并不影响他的使用. 官方地址:https://www.portain ...

  3. 从零开始开发一个 MCP Server!

    大家好!我是韩老师. 最近,在 AI 开发领域,MCP (Model Context Protocol) 是越来越火了! 前几天,我我也开发了一款 Code Runner MCP Server: Co ...

  4. css标签名

    标签 功能介绍 p 标签选择器 #id id选择器 .class class选择器 * 通用选择器 p,a 多个标签选择器 p a 后代选择器 p>a 子代选择器 p+a 紧挨着p后面的a选择器 ...

  5. Golang 301永久重定向

    比如我要把www.taadis.com永久重定向到taadis.com //main.go package main import ( "log" "net/http&q ...

  6. mongo db集群故障选举分析

    转载请注明出处: 一.MongoDB集群基础架构 1. 副本集(Replica Set)核心原理 节点角色: Primary:唯一可写节点,处理所有写操作和默认读请求 Secondary:异步复制Pr ...

  7. python,循环中通过判断条件中止循环的方法(braek 语句)

    直接对下方代码进行解析 for a in range(5): print(a) if a == 2: break 依次读取range内的数字,并答应出来.当读取出来的数字是2时,结束循环,执行后入下图 ...

  8. HTML用JS导出Excel的五种方法,无需js-xlsx库

    原文地址:https://blog.csdn.net/aa122273328/article/details/50388673 这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器( ...

  9. [VulnHub]DC-1靶场全过程

    DC-1 借鉴我们OnePanda-Sec团队的文章 https://mp.weixin.qq.com/s/BbPkmDiZ-cRleiCqmj114w 靶场搭建 先导入DC-1靶场,并将连接改为NA ...

  10. Multisim14.0安装包免费获取,超详细中文安装步骤助你快速上手!

    Multisim14.0简介 Multisim14.0是由美国国家仪器公司(NI)推出的专业电子设计自动化](EDA)工具,广泛应用于电路设计.仿真验证.教学实验及科研开发领域.其核心功能是通过虚拟仿 ...