首页 > 编程语言 >js逆向·找到登录时目标网站的加密算法的几种方式

js逆向·找到登录时目标网站的加密算法的几种方式

时间:2023-10-21 19:46:41浏览次数:40  
标签:逆向 加密 网站 js 相关 断点 加密算法

js逆向·找到登录时目标网站的加密算法的几种方式

为什么要去找到目标网站的加密密码方法:

为了要把我们的payload正确的带入目标网站的服务器进行逻辑验证,那么就需要知道对方使用的什么加密或者编码规则来处理数据的,比如说我们输入的密码被base64编码了,然后发送给后端,后端会进行解码过后再带入逻辑验证中去判断你输入的密码账号正确与否,那我们要测试有没有安全问题,输入一些恶意参数的话自然也需要把我们输入的payload进行同样的base64编码,这样在发送给服务器时,服务器才能正确的进行解码然后进行逻辑验证,如果你不用同样的编码规则的话,服务器无法正确解码,那逻辑验证就更不可能成功了。所以要记住一点,如果目标网站有加密或者编码数据的情况,一定要找出它然后同它保持一致。

前置知识:

作用域:简单来说就是程序运行起来时相关的数据值有哪些

调用堆栈:调用堆栈里的程序意思就是发起此请求时有哪些程序参与其中;这里面的程序执行顺序是从下到上的

1697883145501

XHR:全称 XML HTTP Request

分析调试方法:

-文件流程断点

-代码全局搜索

-XHR提交断点

本文只介绍通过这三种方法找到加密算法的点;自己愿意用哪种就用哪种,反正学这三个的目的都只有一个。即找到目标网站的加密方法

  1. 第一种方法:文件流程断点

    • 点击登录之后,查看相关的数据包,可以在负载里发现我们输入的数据都被加密了;原本输入的明文手机号被加密成不认识的东西1697883920181

    • 也可以在发起程序的选项卡里查看,发起此数据包时有哪些相关的程序参与其中​1697884075845

      在相关的程序里选择一个你觉得最有可能是跟加密算法函数沾边的那个文件,然后点击进去查看(根据经验判断的,实在不行就一个个检查吧)我觉得最有可能的就是login.js文件了,所以我点击login那个js文件,跳转至相关代码上去了​​57ffe4b180e40479af2d6b427cfcec4​​

      一看好多跟加密相关的东西那应该是找对了,找到关键的加密函数这,下一个断点在附近,然后再去点击一遍登录,让程序跑起来卡在这,然后再去控制台验证一下加密函数。

    • (为什么要断点后再去控制台进行验证呢?:因为如果不打断点的话程序一下就执行完成了,创建的变量啊,相关的数据也会直接在内存空间销毁,到时候你再去使用相关的函数方法,涉及到的变量什么的都已经不存在了,会报错提示你未定义相关函数或者变量,所以我们要设置断点让程序运行起来又不至于直接结束,趁相关方法还存在于内存当中的时候使用目标网站的相关函数达到目的)​1697885769682

      这样就可以保证我们的payload跟目标网站使用相同的加密算法来加密数据了

  2. 第二种方法:全局代码搜索

    • 按住ctrl+shift+f在搜索里面去搜索关键字,什么加密啊,密码啊,password啊pass等关键字,快速定位到关键的相关代码上去,同样可以找到login.js这个加密文件,加密的函数方法也就在这个文件里面。怎么使用这个加密函数?同上面那个断点一样

      ​​1697886207720​​

  3. 第三种方法:XHR提交断点

    • 在网络选项卡里找到此数据包请求的路径是哪个,然后把这个路径复制下来,到源代码选项卡里添加进去。

      16978864502901697886536104添加完成后再次点击登录,就可以达到一个目的,即如果在运行程序的过程当中,如果URL涉及到你添加进去的路径时,程序会停下来。如下图:1697886769126

      那就跟上面的一样了,在涉及的相关程序里找到你觉得跟加密方法相关的js文件,点进去找就行了。同样可以找到login.js 这个文件

最后再补充一点:​1697886995406

上面说过作用域里面的值,就是程序运行到这一步时涉及到的相关的变量啊什么的此时的值。意思就是我刚才在网站输入的数据手机号啊,密码啊等明文数据,到这一步的时候,已经被加密成了密文了,那说明加密的动作也就在此之前了。找加密函数的时候也就该往上看了,或者就在附近。

但是我们在测试的时候需要测试的payload实在太多,一个一个这么试吗?显然是不太合适的。那就需要结合一些其它工具来批量实现了。这篇虽然简单,但是太长了,打算下一章再说。可以自己去了解一下jsEncrypter插件还有phantomjs-2.1.1-windows这两个东西,前者是burp的插件,后者是一个配合这个插件使用的可执行程序

标签:逆向,加密,网站,js,相关,断点,加密算法
From: https://www.cnblogs.com/xrzxyyds/p/js-reverse-find-several-ways-of-encryption-algorithm-on

相关文章

  • php js + laravel + mysql开发的手术麻醉临床信息系统源码
    手术麻醉临床信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流程,实现麻醉手术过程的信息数字化,自动生成麻醉的各种医疗文书,完成共享HIS、LIS、PACS和EMR等手术患者信息,从而提......
  • js 大文件切片,中止上传,上传进度,断点续传
    大文件切片上传背景介绍:当涉及大文件上传时,一种有效的方法是将大文件分割成小切片并逐个上传。这种技术不仅可以减轻服务器的负担,还可以避免上传过程中的中断和内存问题。本文将介绍如何使用JavaScript实现大文件切片上传,并解释如何处理断点续传、并发控制以及上传取消等问题,用到......
  • java项目实践-jsp-finter-监听器-day19
    目录1.jsp2.过滤器3.listener监听器1.jspservle逻辑处理方便html页面表现麻烦jsp页面表现方便但是逻辑处理麻烦JSP是一种页面技术JSP本质上是servlet类通过JSP引擎翻译成servletjsp约等于java+html注意:jsp不是访问静态的html文件index.jsp修改成如下代码:<%-......
  • json序列化数据超出最大值(maxJsonLength)
    https://www.cnblogs.com/ellafive/p/13704301.html 1、序列化:以下代码在对象过大时会报错:进行序列化或反序列化时出错。字符串的长度超过了为maxJsonLength属性设置的值。//jsonObj比较大的时候会报错varserializer=newJavaScriptSerializer();returnserializer.Ser......
  • The JSON value of length n is too large and not supported
    https://github.com/dotnet/runtime/issues/39953 I'mreferringtothisissue #30746 thatwasclosedwithlimitof125MBstayingfixedopposedtobeingconfigurable.Itwasarguedthattherewouldbenocommoncaseshittingthe125MBlimit.Suchcases......
  • 使用.Net6中的System.Text.Json遇到几个常见问题及解决方案
    前言以前.NetCore是不内置JSON库的,所以大家都用Newtonsoft的JSON库,而且也确实挺好用的,不过既然官方出了标准库,那更方便更值得我们多用用,至少不用每次都nuget安装Newtonsoft.Json库了。不过日常开发使用中会有一些问题,本文记录一下解决方法,欢迎交流~字符编码问题默认的 System......
  • thinkPHP5.0返回的接口返回 json数据,用了json_encode不生效,却返回的却是text/html格
    如何让返回的数据完全是json1、用SoapUI来测试借口,Content-Type不是json,而是text/html;2、自己的接口,最后的数据用了json_encode,也是不管用的;3、用header来设置Content-Type也没有效果;4、而改框架的配置default_return_type为json,这也是不可取的,整站是网站需要返回的还是te......
  • 基于Vue.js和Spring Boot的口罩自助售卖系统:设计、实现与技术深度解析
    本文介绍了一种基于Vue.js和SpringBoot的口罩自助售卖系统的设计与实现。该系统通过前端Vue.js框架和后端SpringBoot框架的结合,实现了用户注册登录、口罩浏览购买、订单管理等功能。通过详细的代码示例和技术深度的解析,读者能够全面了解系统的设计思路和实现方法。1.引言随着全......
  • MySql Json字段部分查询语法
    模糊匹配jsonObject字段select*fromtableNamewherecolumnName->'$.xx'like'%xx%'精确匹配jsonObject类型字段select*fromtableNamewherecolumnName->'$.xx'='xx'模糊匹配jsonArray字段select*fromtableNamewh......
  • Vue.js设计与实现 pdf电子版 霍春阳
    Vue.js设计与实现pdf电子版霍春阳作者: 霍春阳出版年: 2022-2-10ISBN: 9787115583864连接提取码:yfji干货密度极高,作者写技术文章确实有一套。既有API设计的背景分析,又有规范级别的细节讲解,看完后基本能从头写一个Vue3出来了。......