官方bilibili
Windows破解入门
Android逆向入门
【网络诊断修复工具】
切换到窄版
帐号 自动登录 找回密码
密码 登录 注册[Register]
只需一步,快速开始
快捷导航
门户
网站
新帖
专辑
排行榜
总版规
爱盘
帮助
原创发布区
精品软件区
逆向资源区
水漫金山区
病毒救援区
福利经验区
脱壳破解区
移动安全区
病毒分析区
编程语言区
动画发布区
安全工具区
站点公告
站点导航
站点总版规
申请专区
招聘求职
违规怎么办
站点帮助
站务处理
搜索
搜索
热搜:
ctf
新手
脱壳
教程
Crackme
吾爱破解 - 52pojie.cn
»
网站
›
【 软件安全 】
›
『脱壳破解区』
›
某网站登录及拼图滑块参数逆向分析
返回列表
查看: 277|回复: 6
[Web逆向] 某网站登录及拼图滑块参数逆向分析 [复制链接]
szh12123
电梯直达
楼主
发表于 2026-6-4 23:09
本帖最后由 szh12123 于 2026-6-4 23:51 编辑
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系作者删除。
每过一段时间就要奖励自己一个逆向分析,分析完这一个网址,感觉自己的逆向水平大概算得上入门了吧,虽然比较费时间,但好在最后是成功了,现在把详细分析过程发出来,相互学习交流;
网址地址:aHR0cHM6Ly9wYXNzcG9ydC56aGlodWlzaHUuY29tL2xvZ2lu
打开浏览器调试,刷新,随便输入账号密码,出现滑块验证,验证成功后,查看数据提交过程,最终锁定了几个关键网址:
https:// xxxxx/api/v2/getconf
https:// xxxxx/v4/j/up
https:// xxxxx /api/v3/get
https:// xxxxx /api/v3/check
https:// passport.xxxxx.com/user/validateAccountAndPassword
###1.先看第一个https://xxxxx/api/v2/getconf
直接搜索关键字getconf很容易找到参数赋值的代码,
打断点调试发现,R就是其中4个参数,这里我直接用这4个参数请求了一下,
[Python] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
8
url = "https://xxxxx/api/v2/getconf"
params = {
"id": "75f9f716460a422f89a628f50fd8cc2b", #initNECaptcha中的预设值captchaId
"ipv6": "false", # 未定义
"runEnv": "10", # 预设值 WEB: 10,
"iv": "5", # 预设值 v.IV_VERSION
}
response = requests.get(url, params=params)
出现了返回值为 callback isinvalid ,然后搜JSONP直接就找到参数生成的位置:
var l,p, f = Math.random().toString(36).slice(2, 9), h = a.prefix ||"__JSONP", d = a.name || h + ("_" + f) + ("_" +i++), v = a.param || "callback", y = a.timeout || 6e3, m = window.encodeURIComponent,g = document.getElementsByTagName("script")[0] || document.head;
简化一下就是d ="__JSONP"+ ("_" + Math.random().toString(36).slice(2, 9)) +("_" + i++) 这里的i是当前网址的请求序号,从0开始,所以取0;
使用python编程:
[Python] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
import random
import string
I = 0
def callbak():
global I
m = ''.join(random.choices(string.ascii_lowercase + string.digits, k=7))
result = "__JSONP" + "_" + m + "_" + str(I)
I += 1
return result
params = {
"id": "75f9f716460a422f89a628f50fd8cc2b", #initNECaptcha中的预设值captchaId
"ipv6": "false", # 未定义
"runEnv": "10", # 预设值 WEB: 10,
"iv": "5", # 预设值 v.IV_VERSION
"callback": callbak() # 随机值
}
直接请求成功:
__JSONP_ztyfoeu_0({"data":{"dt":"W93/vPVL……..net"]},"error":0,"msg":"ok"});
好像不需要referer、zoneId和loadVersion,“referrer”就是网站网站址,“zoneId”为空不用管,
我还是找了一下"loadVersion":"2.5.4", 是预设值代码赋值r.loadVersion= t._captchaConfig.loadVersion;
第一个网址分析到此结束
====================================================================================================
###2.接下来是这个网址 https://xxxxx/v4/j/up
总共5个参数,首先可以看到p在上一个网址请求的结果中,
p = result["data"]["ac"]["pn"],
这里搜up显然不管用,搜yanzhengma也没戏,搜了下vk,很容易找到参数位置,
还原一下代码
[Python] 纯文本查看 复制代码
?
1
2
3
p = a = (h = n["context"])["appId"]
vk = s = h["versionKey"]
v = O = h["sdkVersion"]
O和s感觉像是预设值,然后我根据调用堆栈找了一下源头,发现最开始赋值的位置,
逐一进入函数发现各个参数的赋值:
还原一下看的更清楚,
[JavaScript] 纯文本查看 复制代码
?
01
02
03
04
---
> 原文链接: https://www.52pojie.cn/thread-2111224-1-1.html
> 本文由 AI 采集助手自动生成