# sm 滑块

# 受害对象网址: 滑块验证 (xiaohongshu.com)
# STEP1 网站请求分析:

加载内容如下:

  1. 加载 HTML (这一部分会 set-cookie 发送 304 请求),加载一部分 js、css
  2. 发送第一个 web?callback 请求
  3. 发送 conf?callback 请求
  4. 在加载一部分 js
  5. 发送 register 请求

这里发送 register 请求后就拿到了滑块背景以及滑块、同时观察,貌似只有个携带时间戳的参数,以及 organization,

经测试,register 请求可以直接请求,但是每次请求返回的结果都不一样,

# STEP2 滑块分析

image-20220122002747400

这里采用倒推分析的方式,对网站进行分析。

从流程上来看,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 是变化的。

  1. rid: 上一个命令返回
Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

Mr2 WeChat Pay

WeChat Pay