文章总结: 本文详细介绍了在渗透测试中使用jsrpc工具逆向处理加密网站接口的实操方法。作者通过具体案例演示了如何定位加密函数、建立jsrpc连接、编写Python调用代码,并分享了调试技巧和常见问题解决方案。关键发现是该工具能直接调用网页加密函数,避免繁琐的代码逆向过程,提高测试效率。文档还总结了完整的工作流程:客户端通过JSRPC服务器加密请求数据,发送至目标API,再解密响应密文。 综合评分: 78 文章分类: 渗透测试,WEB安全,安全工具,红队,代码审计
渗透中的逆向工具-jsrpc实操手记
原创
小湫泥 小湫泥
不怎么安全
2025年6月8日 19:34 北京
在小说阅读器读本章
去阅读
前言
在渗透测试过程中,有些网站的接口参数是加密的。对于逆向小菜鸡的我来说,遇到这种网站总是束手无策,不能修改其中的参数,也就无法进行下一步的测试。偶然间发现一款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实操手记》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论