首页 > 其他分享 >JS逆向

JS逆向

时间:2023-09-21 19:12:16浏览次数:37  
标签:逆向 插件 加密 请求 phantomjs js JS

场景:登录时账号或密码被加密而无法爆破或Fuzz的情况,如果是前端加密可以尝试js逆向,搭配phantomjs(JavaScript API)和bp插件JSEncryptr进行爆破

一、https://my.sto.cn/

1.点击登录,可见发送了一个数据包LoginResult,地址是/Vip/LoginResult

image
image

image

2.ctrl+shift+f全局查找/Vip/LoginResult进行定位

image

image

3.在控制台测试一下,这里123就通过加密方式输出了加密后的内容
image

`断点调试法`

1.登录找到请求

image

2.下断点重新请求,即可看见请求明文以及加密后的结果

image

3.查看加密算法来源JS文件

image

XHR分析法

1.请求地址类型为XHR

image

2.获取请求路径

image

3.XHR提取,点击登录后分析,它会在遇到这个路径的时候停止

image

JS逆向结合burp插件进行爆破

场景:https://account.hpc.sjtu.edu.cn/#/login

准备:
1. 下载phantomjs并设置环境变量	是一个javascript api,可以模拟用户发送请求
https://phantomjs.org/download.html
2. 下载burp插件—jsEncrypter	前端加密Fuzz插件
https://github.com/c0ny1/jsEncrypter

image
image

3.找到发送地址

image

4.通过XHR搜索地址,点击提交跳转至请求加密方式中
(ctrl+shift+f、启动器找不到可以尝试xhr进行捕获)

image

5.代码分析下载负责加密的js文件

image

6.将下载好的加密js文件存放至jsEncrypter同级目录,修改phantomjs_server.js中的引用脚本名以及解密代码

image

7.运行修改好的js文件
phantomjs phantomjs_server.js

image

8.抓包爆破,list需要与插件一致,然后设置processing调用burp插件jsEncrypter即可

image
image

可以看到对每个payload加密后爆破

image

标签:逆向,插件,加密,请求,phantomjs,js,JS
From: https://www.cnblogs.com/chengliuxiang/p/17720685.html

相关文章

  • 一些H5对接微信JSSDK的问题记录
    这里给大家分享我在实际生活中总结出来的一些知识,希望对大家有所帮助一.SDK引入这里提供两套引入流程,一套是vue2.0及其他h5项目,一套是vue3.0的引入流程不懂的也可以看我之前的一篇详细流程记录--微信调用jssdk全流程详解1.js引入直接在你的页面里引入js文件就行<scriptsr......
  • Swagger生产nodejs后台代码(nestia框架)
    Swagger文档生产nestia框架代码#SETUPGLOBALLYnpminstall-g@nestia/migrate#DOMIGRATEnpx@nestia/migrateswagger.jsonoutput_directoryNPM是一个Node包管理器,NPX是一个Node包执行器。npm查看全局安装的包npmls-g......
  • Windows 下更新 node.js
    一、node.js更新(一)查询node.js版本node-v(二)查询node.js安装位置wherenode(三)官网下载安装包https://nodejs.org/dist/下载对应版本的msi文件(四)安装到原位置,覆盖旧版本如:D:\ProgramFiles\nodejs\二、npm更新(一)查看版本npm-v(二)更新版本npmup......
  • js,格式化long类型日期封装
    /***扩展date函数*author:c3gen*/Date.prototype.format=function(format){varo={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":......
  • JS 对象(Object)和字符串(String)互转
    利用原生JSON对象,将对象转为字符串1.varjsObj={};2.jsObj.testArray=[1,2,3,4,5];3.jsObj.name='CSS3';4.jsObj.date='8May,2011';5.varstr=JSON.stringify(jsObj);6.alert(str);从JSON字符串转为对象1.varjsObj={};2.jsObj.......
  • js触发事件备忘
    一般事件事件浏览器支持描述onClick: 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击onDblClick: 鼠标双击事件onMouseDown: 鼠标上的按钮被按下了onMouseUp: 鼠标按下后,松开时激发的事件onMouseOver: 当鼠标移动到某对象范围的上方时触发的事件onMouseMove:......
  • web开发:详细讲解jsp的内置对象
    1.request对象   客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。序号方法说明1objectgetAttribute(Stringname)返回指定属性的属性值2EnumerationgetAttributeNames()返回所有可用属性名的......
  • js 应用点滴
    [web编程]document对象详解document文挡对象-JavaScript脚本语言描述---------------------------------------------------------------------注:页面上元素name属性和JavaScript引用的名称必须一致包括大小写   否则会提......
  • js select 应用
    js 代码//1.判断select选项中是否存在Value="paraValue"的ItemfunctionjsSelectIsExitItem(objSelect,objItemValue){varisExit=false;for(vari=0;i<objSelect.options.length;i++){if(objSelect.o......
  • js语法备忘
    一.js的数据类型和变量JavaScript有六种数据类型。主要的类型有number、string、object以及Boolean类型,其他两种类型为null和undefined。String字符串类型:字符串是用单引号或双引号来说明的。(使用单引号来输入包含引号的字符串。)如:“Thecowjumpedoverthemoon......