当前位置:网站首页>亚马逊登录参数metadata1,encryptedPwd逆向分析
亚马逊登录参数metadata1,encryptedPwd逆向分析
2022-07-29 20:37:00 【久见Bug了】
声明:本文只作学习研究,禁止用于非法用途,否则后果自负。如果侵权到了您的权益,请立即联系我删除!
前言
每月一水,亚马逊的登录参数逆向分析,metadata1,encryptedPwd,一个密码,一个实时变化的参数
目标网站:不用我多说了吧
一、metadata1
进入网页,打开控制台,选取标签,一气呵成,发现这个玩意每2-3s更新一次
右键打上dom断点,断住之后来到这个js中(断不住就刷新再来一次),如图所示
如图所示,ast就懒的写了,比较繁琐,直接硬看,这里通过 t[_$Z[4]]()执行得到最终参数,跟入函数内,在return处打断点,放开dom断点,断在此处后发现,经过该函数返回的有非常多的参数,其中包括了参与加密的环境等等,在大环境对象返回之后,下一次来到该断点即为参数加密后的结果,这里写个小小的判断,方便调试
ok,从这里就开始一步一步往下跟,点步往下走,发现最终结果 this[_lI11[8]][_lI11[12]](this[_lI11[2]][_lI11[13]](t)),t为我们返回的大环境数组的字符串,经过this[_lI11[2]][_lI11[13]]函数之后,在前面与后面,分别加了点盐值
后面为版本号没什么可说的,而且经过测试是不会变化的,前面的盐值是每次都不相同,所以我们先进入this[_lI11[2]][_lI11[13]]函数,寻找盐值来源,进入方法后,c为添加版本号的操作,忽略掉, e[_ss[1]]固定为# 忽略掉,this[_ss[4]][_ss[2]](this[_ss[0]][_ss[6]](c))中this[_ss[0]][_ss[6]](c)计算了一个数字,需要跟进去看看
进入之后就是一个纯算法函数,缺啥补啥就行,注意的就是这个数组,其实经过测试也是不会变的,写死就行,
继续单步执行来到我们将数字转换成参数的函数中,这里也是纯算法,需要注意的是这里不能只扣 A[_OOO[1]][_OOO[3]],需要把B一整个扣出来
盐值弄完之后,来到最终加密的函数,单步进入,直接断在最里层的return处,外层都是一些异步导出操作,可以不用管,打印查看,前面的为定值,不会变,不用管
r为加盐之后的字符,t[_LL[9]]为固定数组,全局搜索,在该js文件中的下方定义,不会变,可以写死,不放心的可以每次请求正则提取,经过this[_LL[6]]函数之后,返回一堆乱码,该乱码再经过this[_LL[3]][_LL[1]]之后返回我们最终的结果,说到这里也没啥技术含量的东西,剩下就是把这俩个函数扣出来就行,就像这样
环境也有一些小细节,需要注意一下,万一检测了呢(*´◡`*)
二、encryptedPwd
对于登录密码加密来说,一般是会使用对称加密来处理,这样服务端也好去解密,最多加点盐,于是就先尝试搜了一下AES,RSA之类的字眼,好家伙好几十个,又搜了一下encrypt,好家伙好几百个,然后尝试直接搜索加密参数名encryptedPwd,全局只有一个,定位到该位置,点击登录,发现目标
取标签的值,通过elements选取发现,参数已经被赋值上去,于是查看堆栈,找了一圈啥也没发现
想用其他办法解决,于是先使用了dom断点的方法,可惜失败了,又想着hook一下input标签的赋值,或者创建,可惜也失败了
断点在这里,直接开始f11大法,在不知道过了多久之后,到了这个地方,这个e就是转码后的密码了,继续单步进入
t.encrypt,这个呢就是加密的函数了,最终的参数也会从这里完成到99%,整个的流程其实就是promise对象返回,在执行,一个套一个,再加上继承,原型链的一些东西,魔改方法等等
然后就是一直跟啊跟,扣啊扣,嗖的一下,2200行的代码就出来结果了
加密的主要核心其实在于最后的10%的流程中,前面的都是一些来回跳转,小的数据改变,但是又不能没有,任何一个传入的promise都会用到,还有很多的promise来源于登录密码页面刷新执行,需要注意一下,也尝试过全扣,补环境,但是最后放弃了
写好代码测试,这个302代表什么,搞过登录的应该不用我多说了吧,哈哈
到此为止,下机!
总结
之前很少去碰这类的异步逆向,这次算长见识了,一个密码加密还能这么玩?有需求可私信( •̀ ω •́ )*
边栏推荐
猜你喜欢

MySQL数据查询 - 简单查询

优惠券系统设计思想

Analysis of Crypto in Pi 2

mos管闩锁效应理解学习

Dry goods!Cooperative Balance in Federated Learning
![[ACTF2020 新生赛]Exec 1](/img/1e/a3c19d514207e6965d09c66b86e519.png)
[ACTF2020 新生赛]Exec 1

分布式限流 redission RRateLimiter 的使用及原理

干货!联邦学习中的合作均衡

R language for airbnb data nlp text mining, geography, word cloud visualization, regression GAM model, cross-validation analysis

C#笔记 之 Oracle.ManagedDataAccess包的安装及配置
随机推荐
微信小程序 31 分包机制
初识网络的简单概念
940. 不同的子序列 II
MySQL数据查询 - 联合查询
Come in now!!!Take you to know the basic data types of C language
怎么实现您的个人知识库?
OneNote 教程,如何在 OneNote 中做笔记?
Oracle问题: ORA-01882: 未找到时区
A dish hold up valuations billions of mt. Pickled fish, can move beyond the edge food safety?
系列(jupyter自动保存失败)
WPF 实现抽屉菜单
Samba server configuration (when a server is required)
VR直播营销需求增加,数据模块为我们铺路
容器网络硬核技术内幕 (26) 知微知彰,知柔知刚 (下)
The Ministry of Human Resources and Social Security announced that "database operation administrator" has become a new occupation, and OceanBase participated in the formulation of occupational standar
手写dialog弹框
Kotlin - Coroutine Scope CoroutineScope, Coroutine Builder CoroutineBuilder, Coroutine Scope Function CoroutineScope Functiom
MySQL - Design game user information table
Internship: use easypoi to import and export excel table data
博世集团启动量子数字孪生计划