论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
js逆向·找到登录时目标网站的加密算法的几种方式 ...
js逆向·找到登录时目标网站的加密算法的几种方式 ...
光之使者
金牌会员
|
2023-11-12 23:10:27
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
872
|
帖子
872
|
积分
2616
js逆向·找到登录时目标网站的加密算法的几种方式
为什么要去找到目标网站的加密密码方法:
为了要把我们的payload正确的带入目标网站的服务器进行逻辑验证,那么就需要知道对方使用的什么加密或者编码规则来处理数据的,比如说我们输入的密码被base64编码了,然后发送给后端,后端会进行解码过后再带入逻辑验证中去判断你输入的密码账号正确与否,那我们要测试有没有安全问题,输入一些恶意参数的话自然也需要把我们输入的payload进行同样的base64编码,这样在发送给服务器时,服务器才能正确的进行解码然后进行逻辑验证,如果你不用同样的编码规则的话,服务器无法正确解码,那逻辑验证就更不可能成功了。
所以要记住一点,如果目标网站有加密或者编码数据的情况,一定要找出它然后同它保持一致。
前置知识:
作用域:简单来说就是程序运行起来时相关的数据值有哪些
调用堆栈:调用堆栈里的程序意思就是发起此请求时有哪些程序参与其中;这里面的程序执行顺序是从下到上的
XHR:全称 XML HTTP Request
分析调试方法:
-文件流程断点
-代码全局搜索
-XHR提交断点
本文只介绍通过这三种方法找到加密算法的点;自己愿意用哪种就用哪种,反正学这三个的目的都只有一个。即找到目标网站的加密方法
第一种方法:文件流程断点
点击登录之后,查看相关的数据包,可以在负载里发现我们输入的数据都被加密了;原本输入的明文手机号被加密成不认识的东西
也可以在发起程序的选项卡里查看,发起此数据包时有哪些相关的程序参与其中
在相关的程序里选择一个你觉得最有可能是跟加密算法函数沾边的那个文件,然后点击进去查看(根据经验判断的,实在不行就一个个检查吧)我觉得最有可能的就是login.js文件了,所以我点击login那个js文件,跳转至相关代码上去了
一看好多跟加密相关的东西那应该是找对了,找到关键的加密函数这,下一个断点在附近,然后再去点击一遍登录,让程序跑起来卡在这,然后再去控制台验证一下加密函数。
(为什么要断点后再去控制台进行验证呢?:因为如果不打断点的话程序一下就执行完成了,创建的变量啊,相关的数据也会直接在内存空间销毁,到时候你再去使用相关的函数方法,涉及到的变量什么的都已经不存在了,会报错提示你未定义相关函数或者变量,所以我们要设置断点让程序运行起来又不至于直接结束,趁相关方法还存在于内存当中的时候使用目标网站的相关函数达到目的)
这样就可以保证我们的payload跟目标网站使用相同的加密算法来加密数据了
第二种方法:全局代码搜索
按住ctrl+shift+f在搜索里面去搜索关键字,什么加密啊,密码啊,password啊pass等关键字,快速定位到关键的相关代码上去,同样可以找到login.js这个加密文件,加密的函数方法也就在这个文件里面。怎么使用这个加密函数?同上面那个断点一样
第三种方法:XHR提交断点
在网络选项卡里找到此数据包请求的路径是哪个,然后把这个路径复制下来,到源代码选项卡里添加进去。
添加完成后再次点击登录,就可以达到一个目的,即如果在运行程序的过程当中,如果URL涉及到你添加进去的路径时,程序会停下来。如下图:
那就跟上面的一样了,在涉及的相关程序里找到你觉得跟加密方法相关的js文件,点进去找就行了。同样可以找到login.js 这个文件
最后再补充一点:
上面说过作用域里面的值,就是程序运行到这一步时涉及到的相关的变量啊什么的此时的值。意思就是我刚才在网站输入的数据手机号啊,密码啊等明文数据,到这一步的时候,已经被加密成了密文了,那说明加密的动作也就在此之前了。找加密函数的时候也就该往上看了,或者就在附近。
但是我们在测试的时候需要测试的payload实在太多,一个一个这么试吗?显然是不太合适的。那就需要结合一些其它工具来批量实现了。这篇虽然简单,但是太长了,打算下一章再说。可以自己去了解一下
jsEncrypter
插件还有
phantomjs-2.1.1-windows
这两个东西,前者是burp的插件,后者是一个配合这个插件使用的可执行程序
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
光之使者
金牌会员
这个人很懒什么都没写!
楼主热帖
〖Python接口自动化测试实战篇⑥〗- 接 ...
100 行代码搞定了 RPC 原理,大家随便 ...
HarmonyOS之分布式软总线
Python3,2行代码,多种方法,直接把网 ...
Python每日一练——第5天:闰年问题升 ...
PyTorch nn.RNN 参数全解析
【Linux篇】第十八篇——网络套接字编 ...
[SWPUCTF 2021 新生赛]PseudoProtocols ...
c++ 存储区
Vue 和 Django 实现 Token 身份验证 ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表