首页 > 其他分享 >js逆向-某天下房地产验证码

js逆向-某天下房地产验证码

时间:2023-12-21 17:00:48浏览次数:30  
标签:逆向 轨迹 加密 函数 滑块 验证码 js 参数

声明

本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!

如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!

前言

目标网站:aHR0cHM6Ly9wYXNzcG9ydC5mYW5nLmNvbS8=``

接口:短信验证码登录接口

在此特别感谢k哥的文章及本人的指导。 【验证码逆向专栏】房某下登录滑块逆向分析

在这里插入图片描述

流程分析

目标很明确,滑块验证码的识别,使用算法还原。 打开网站,输入手机号后点击【获取短信验证码】后就会弹验证码。 流程如下: 在这里插入图片描述

在这里插入图片描述

滑块划到缺口校验成功后就会发送验证码。

打开F12查看这两部分内容发包情况。

在这里插入图片描述 第一个包会返回chanllengegt,这两个参数十分关键,是整个流程的重中之重。

接下来就是将滑块的图片返回回来。 在这里插入图片描述

将url进行一下拼接进行请求就可以得到背景图和滑块图。需要注意的是在做距离识别时需要查看图片大小,然后进行图片的缩放或者轨迹的缩放。 在这里插入图片描述 实际大小和渲染大小比例大概是1:0.9375

接下来就是滑动提交滑块的接口,分别对应三个状态。

状态码 含义
100 成功并且发送敦信
101 参数错误
102 滑动距离错误

参数分析

请求加密的地方只有后端校验滑块的接口。 在这里插入图片描述

其中ca为固定参数,可以写死。start是滑块滑动的开始时间,end则对应的是结束时间,i是浏览器环境的加密,t是轨迹的加密。 gtchallenge在之前就已经获取了。

直接搜索i:就可以定位到加密点。 在这里插入图片描述 可以清楚的看到加密函数是x.compress,参数是一个自执行函数,里面有大量的环境。环境的话尽量还是补全,防止后面出现问题。

跟进函数可以将整个对象都拿下来,因为在加密中都会使用到,直接一步到位 在这里插入图片描述

然后就是直接调用函数,将剩下需要的一些参数和所缺函数扣下来即可调用。 至此,参数i就已经拿下了。 在这里插入图片描述

继续看参数t

ti相邻,直接就能看到。 在这里插入图片描述 老规矩将函数整体复制下来,然后自己改改就可以了。

函数的开头和结尾打上断点,关注一下入参和结果即可。

在这里插入图片描述 参数e是一个转换后的轨迹数组,传入之后返回了加密轨迹。 在这里插入图片描述 加密的函数逻辑

function (e) {
    for (var t = "", n = e.length / 6, r = 0; r < n; r += 1)
        t += E.charAt(f.parseInt(e.slice(6 * r, 6 * (r + 1)), 2));
    return t
}(l)

逻辑并不复杂,k哥的文章也有讲到。

接下来就是寻找轨迹转换的地方了(这个地方还是看了大佬的文章才找到的,只能说还是太菜了,哈哈) 在这里插入图片描述 后知后觉才发现在哪里。 在这里插入图片描述 参数e就是轨迹函数。

该站点对于轨迹校验不算太严格,本地调用成功率大概在75%还需要继续优化。 image.png

最后

很多小伙伴关心的轨迹生成,我这里找的是github上开源的,可以参考使用。 链接:python_ghost_cursor 如果有能力手写的小伙伴也可以分享私信博主,万分感谢~

标签:逆向,轨迹,加密,函数,滑块,验证码,js,参数
From: https://blog.51cto.com/u_16330819/8925397

相关文章

  • 人民银行js逆向新增参数wzwsinfos
    人民银行js逆向新增参数wzwsinfos1、参数代码varO={    "hostname":'www.pbc.gov.cn',    "scheme":'http',    "verify":verify };//verify是原代码中的d值(变量名会变),类似这样的一长串"307120e6b56965c91a89103d9d1617a1ebacf......
  • vue3 + xlsx 实现 excel 导入web页面解析成json数据
    vue3+xlsx实现excel导入web页面并解析成json数据fileIipt动态创建的标签,一定要用户点击事件触发,不然文件选择框的弹出会被拦截,无法弹出。意思就是下面这段关键代码要用一个事件区触发执行,不能主动执行(比如:vue的钩子)import*asXLSXfrom'xlsx'//v:"^0.18.5"letfil......
  • SheetJs 导出数据
    1.Excel数据导出根据后端数据导出数据源样式list=[  {code:'610230',name:'长尺',num:2,price:3.5,amount:7,type:1,status:2},  {code:'610230',name:'圆规',num:6,price:5,amount:30,type:1,status:1},  ......
  • SheetJs 导入数据
    html<a(click)="import()">导入</a><input#importExcelInput[hidden]="true"type="file"(change)="onFileChange($event)"multiple="false"/>tsimport(){letinput=this.importE......
  • Json.NET Converting between JSON and XML
      Json.NETsupportsconvertingJSONtoXMLandviceversausingthe XmlNodeConverter.Elements,attributes,text,comments,characterdata,processinginstructions,namespaces,andtheXMLdeclarationareallpreservedwhenconvertingbetweenthetwo.......
  • 使用Newtonsoft.Json进行Json与XML相互转换
    XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析好像没啥难度。今天突然发现Newtonsoft.Json中有关于Json和XML互转的方法,所以顺带记录总结一下。一、关于Newtonsoft.JsonNewtonsoft.Json(Json.Net)是一款.NET中开源的Json序列化和反序列化类库。Json.Net是一个读写Json效......
  • Json.Net Deserialize a Collection from BSON
    DeserializeaCollectionfromBSON(newtonsoft.com)Thissamplesets ReadRootValueAsArray to true sotherootBSONvalueiscorrectlyreadasanarrayinsteadofanobjectanddeserializesBSONtoacollection.SampleTypesCopypublicclassEv......
  • [转]CryptoJS-中文文档
    原文地址:CryptoJS-中文文档-掘金原始文档:code.google.com/archive/p/c…介绍CryptoJS是一个JavaScript的加解密的工具包。它支持多种算法:MD5、SHA1、SHA2、SHA3、RIPEMD-160的哈希散列,以及进行AES、DES、Rabbit、RC4、TripleDES加解密。散列算法MD5MD5是一种广泛使......
  • cjson 用法
     1、修改字典的值cJSON_SetValuestring(objectItem,value)//先获取objectTempPtr=cJSON_GetObjectItem(TempPtr,"nm");//修改该object的值cJSON_SetValuestring(TempPtr,"guxiangdehai");2、删除数组里面的值cJSON_DeleteItemFromArray(Array,index);//Array要......
  • fastjson2
    什么是JSONJSON是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构是的JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON语法使用大括号......