# sm 滑块
# 受害对象网址: 滑块验证 (xiaohongshu.com)
# STEP1 网站请求分析:
加载内容如下:
- 加载 HTML (这一部分会 set-cookie 发送 304 请求),加载一部分 js、css
- 发送第一个 web?callback 请求
- 发送 conf?callback 请求
- 在加载一部分 js
- 发送 register 请求
这里发送 register 请求后就拿到了滑块背景以及滑块、同时观察,貌似只有个携带时间戳的参数,以及 organization,
经测试,register 请求可以直接请求,但是每次请求返回的结果都不一样,
# STEP2 滑块分析
这里采用倒推分析的方式,对网站进行分析。
从流程上来看,fverify 是通过一系列参数,返回了一个 success, 然后 captcha 这个请求,返回了一个 fail,因为我们这里是刻意的滑的失败的,那么可以推断出这个接口是对滑块的判断。但是观察 fverify 的请求,里面返回了一个 reject,是拒绝的意思,同时通过堆栈分析,我们发现这个参数其实就 fail 其实一开始貌似就返回了。无论如何,这玩意都指向了 captcha 这段被混淆的 js 文件中。
# STEP3 AST 反混淆
放入在线网站解析,随便解一下就可以看了。
# STEP4 参数分析
params = { | |
# 动 | |
"rid": "20220225200442d1ad44e138bff05707", | |
"callback": "sm_1645791947136", | |
# 定 | |
"je": "J95iyFR+B34=", | |
# 定 | |
"vm": "z7pjc00My60=", | |
# 定 | |
"organization": "eR46sBuqF0fdw7KWFLYa", | |
# 动 | |
"ub": "mc4K3qTht9Q=", | |
# 定 | |
"zj": "YXtzSGH4Kx4=", | |
# 定 | |
"tb": "jbIXAuW9ClU=", | |
# 定 | |
"fp": "7syw7ja705o=", | |
# 定 | |
"ox": "AfC9Zsyz+qQ=", | |
# 定 | |
"rr": "yYCBEY0C7PQ=", | |
# 定 | |
"cn": "4gX7HfzFoIE=", | |
# 定 | |
"ostype": "web", | |
# 动 | |
"zs": "wV0WZb+HzwwOdciC2PHUjh3F4Z88m1vszY3VkYNhbGI=", | |
# 定 | |
"tq": "O5y0Gz8bnDY=", | |
"act.os": "web_pc", | |
"rversion": "1.0.1" | |
} |
经过分析,上述参数只有 rid,ub,zs 是变化的。
- rid: 上一个命令返回