京东滑块登录

声明:
该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!

前言

这次会讲解某东滑块登录的逆向分析流程,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可私信我。

js逆向步骤:

    通过接口获取两张验证码图片 ——>  处理图片 ——>  通过cv2 或者ddddocr计算出缺口的距离 ——>  模拟封装滑块的轨迹参数  ——>  逆向加密轨迹的参数 ——>  加密并请求验证接口----登录接口参数分析。 

一、分析请求流程。

1.滑块的请求流程

a.https://iv.jd.com/slide/g.html
输入账号密码后,会触发滑块,可在https://iv.jd.com/slide/g.html接口看到跟滑块背景图相关的信息。
参数:appId,e这两个参数需要填写,appId可以固定

params = {
   
   
        "appId": appId,
        "scene": "login",
        "product": "click-bind-suspend",
        "e": e,  # 检测浏览器指纹的,同一台电脑浏览器指纹相同,所以暂时可以固定,这个值是根据这个(https://gia.jd.com/fcf.html?)接口返回的,这个接口就是检测浏览器指纹,暂时不分析。
        "j": "",
        "lang": "zh_CN",
        "callback": "jsonp_0914357298388242"
    }

在这里插入图片描述根据图片知道,返回的重要的数据有:(bg,patch)滑块相关的图片,challenge 后面滑块请求需要用到。

b.https://iv.jd.com/slide/s.html:滑块请求验证接口。
参数:
d:轨迹加密。
c:g接口获取到的数据challenge,
appId:跟该接口相同,固定
e:跟该接口相同,可以暂时固定
s:接口https://seq.jd.com/jseqf.html?bizId=passport_jd_com_login_pc&platform=js&version=1返回,这里不去分析。
o:登录的账号

 params = {
   
   
        'd': d,
        'c': challenge,
        'w': '242',#'278',
        'appId': appId,
        'scene': 'login',
        'product': 'click-bind-suspend',
        'e': e,
        'j': '',
        's': s,
        'o': '123',
        'o1': '0',
        'u': 'https://passport.jd.com/new/login.aspx?',
        'lang': 'zh_CN',
        'callback': 'jsonp_04201456052783201',
    }

在这里插入图片描述

2.登录的请求流程

1.登录首页分析:https://passport.jd.com/new/login.aspx
在这里插入图片描述
图片中标注处,是后面接口要用到的参数。
2.https://seq.jd.com/jseqf.html:这个接口返回的数据是登录接口中生成参数aksParamsB的参数seqSid。
在这里插入图片描述
3.https://passport.jd.com/publicKey/init:返回的数据,是后面登录接口参数的加密密钥。
在这里插入图片描述
4.https://passport.jd.com/uc/loginService?登录接口:
在这里插入图片描述
参数:aksParamsU,aksParamsB。

2.整体分析

二、分析接口参数。

根据前面的分析,主要要分析的参数有轨迹加密d、登录参数分析:aksParamsU,aksParamsB。

1.参数d分析。

通过堆栈分析得到轨迹加密的地方
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

'd': a['getCoordinate'](b),

b就是轨迹。进入到getCoordinate函数,分析具体是怎么加密的。
加密文件,加密函数:
在这里插入图片描述
把这个加密文件整体复制出来,缺啥补啥。

2.参数:aksParamsU,aksParamsB。
进入堆栈找到参数加密的地方。
在这里插入图片描述
参数生成的位置:
在这里插入图片描述
根据堆栈往上分析:this.url,this.data是什么。
在这里插入图片描述
通过上图得知,
this.url:

loginUrl + "?uuid=" + uuid + "&" + location.search.substring(1) + "&r=" + Math.random() + "&version=2015",

实际是:

 url = "/uc/loginService" + "?uuid=" + uuid + "&" + '' + "&r=" + Math.random() + "&version=2015";

this.data:

 var d = {
   
   
            uuid: $("#uuid").val(),
            eid: $("#eid").val(),
            fp: $("#sessionId").val(),
            _t: $("#token").val(),
            loginType: $("#loginType").val(),
            loginname: $("#loginname").val(),
            nloginpwd: getEntryptPwd($("#nloginpwd").val()),
            authcode: b,
            pubKey: $("#pubKey"
在 Azure Kubernetes Service (AKS) 的配置中,通常不会直接出现名为 `aksParamsB` 和 `aksPublicKey` 的参数或配置项。这些名称可能是对 AKS 中某些功能或配置的误解或混淆。以下是与 AKS 配置、密钥管理和身份验证相关的常见设置和概念,可能与用户意图相关的内容: ### 3.1 AKS 配置中的密钥管理 在 AKS 集群的部署和管理过程中,涉及多个与安全性和身份验证相关的组件。其中,最接近用户提到的 `aksPublicKey` 的可能是用于 SSH 访问节点的公钥。在创建 AKS 集群时,可以指定一个 SSH 公钥,以便能够通过 SSH 登录到节点进行调试或管理操作。该公钥可以通过 Azure CLI 或 Azure 门户提供,格式通常为 OpenSSH 格式[^2]。 例如,使用 Azure CLI 创建 AKS 集群并指定 SSH 公钥的命令如下: ```bash az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --ssh-key-value ~/.ssh/id_rsa.pub ``` ### 3.2 密钥保管库集成(Azure Key Vault) 若涉及敏感信息(如证书、密码、API 密钥等)的管理,AKS 支持与 Azure Key Vault 的集成。通过使用 `Azure Kubernetes Service` 的托管标识或服务主体,可以安全地从 Key Vault 中检索机密信息,并在 Pod 中使用。这种集成通常通过 `secrets-store-csi-driver` 或 `Azure Policy` 实现[^1]。 ### 3.3 AKS 集群配置参数(Cluster Configuration Parameters) 在 AKS 的配置中,有一些常见的参数用于定义集群的行为和功能。例如: - `--node-count`:指定节点池中的节点数量。 - `--node-vm-size`:指定节点的虚拟机大小。 - `--kubernetes-version`:指定 Kubernetes 的版本。 - `--network-plugin`:指定网络插件(如 `kubenet` 或 `azure`)。 - `--service-principal` 和 `--client-secret`:指定用于 AKS 与 Azure 资源交互的服务主体和客户端密钥。 这些参数可以在使用 Azure CLI 创建 AKS 集群时指定,例如: ```bash az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 3 \ --node-vm-size Standard_DS2_v2 \ --kubernetes-version 1.25.6 \ --network-plugin azure \ --service-principal myServicePrincipalID \ --client-secret myClientSecret ``` ### 3.4 服务主体(Service Principal)与身份验证 AKS 集群通常需要一个服务主体,用于与 Azure 平台的其他资源进行交互。服务主体包含一个客户端 ID(Application ID)和客户端密钥(Secret)。这些信息在创建集群时可以指定,也可以由 Azure 自动生成。服务主体的权限可以通过 Azure Active Directory (AAD) 进行管理,并且可以分配特定的角色(如 `Contributor` 或 `Network Contributor`)以确保 AKS 集群能够正确访问相关资源[^2]。 此外,AKS 支持与 Azure AD 集成,以便为用户和应用程序提供基于角色的访问控制(RBAC)。这种集成可以增强集群的安全性,并确保只有授权用户才能执行特定操作。 ### 3.5 网络配置与负载均衡器 在 AKS 中,负载均衡器(Load Balancer)通常用于将流量分发到服务。AKS 支持通过 `loadBalancerSourceRanges` 字段限制来自特定 IP 范围的流量。此字段可以在服务的 YAML 文件中定义,以增强安全性。例如: ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: LoadBalancer loadBalancerSourceRanges: - 192.168.0.0/24 - 10.0.0.0/16 ports: - port: 80 selector: app: my-app ``` 此配置将限制负载均衡器仅接受来自 `192.168.0.0/24` 和 `10.0.0.0/16` 子网的流量[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值