天津滑块验证码

目标网址

aHR0cDovLzYwLjI5LjIwMi44Njo4MDkwLyMvVmlld0JzZHRReUpieHhMaXN0

分析

  1. 进入网站后,captcha/get 获取验证码
  2. 滑动滑块后,captcha/check 校验验证码,这里返回一个 secondKey
  3. 请求的时候带上 secondKey 就可以正常访问

加密点

直接请求后,源代码中搜索 pointJson 加密关键词,即可找到加密点
image.png
进入加密函数后,找到是一个标准的AES加密
image.png

滑块

滑块使用opencv进行识别

import cv2
def get_x(bg_img: str, tp_img: str, save_img=None) -> int:
    bg_img = cv2.imread(bg_img)  # 背景
    tp_img = cv2.imread(tp_img)  # 滑块
    bg_edge = cv2.Canny(bg_img, 100, 200)

    tp_edge = cv2.Canny(tp_img, 100, 200)

    res = cv2.matchTemplate(bg_edge, tp_edge, cv2.TM_CCOEFF_NORMED)

    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
    print(min_val, max_val, min_loc, max_loc)
    if save_img: # 对滑块进行校验,保存到本地查看结果
        bg_img = cv2.imread(save_img)
        cv2.rectangle(bg_img, (0, 0), (max_loc[0], 200), (0, 0, 255), 1)
        cv2.imwrite('3.png', bg_img)  # 保存在本地

    return max_loc[0]
    
bg_name = "bg.png" # 背景图片
tp_name = "tp.png" # 滑块
xx = get_x(bg_name, tp_name) # 获取到xx,为滑动的距离

构建加密参数

data = {
        "captchaType": "blockPuzzle", # 为固定值
        "pointJson": result, # 距离加密后的参数
        "token": token, # 验证码返回的token
    }

使用这个参数进行正常访问

js加密部分

// js 加密库中,直接用填充方式就行了
CryptoJS = require("crypto-js")

function run(text,secretKey) {
  k = CryptoJS.enc.Utf8.parse(secretKey)
  srcs = CryptoJS.enc.Utf8.parse(text)
  var en = CryptoJS.AES.encrypt(srcs, k, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  console.log(en.toString())
  return en.toString()
}
text = '{"x":114.7,"y":5}'
secretKey = "JnVdVHxGJgxFz4EI"
run(text,secretKey)

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
滑块验证码是一种常见的验证码形式,旨在验证用户是否为人类。PyTorch是一个开源的深度学习框架,可以用它来实现滑块验证码识别系统。 滑块验证码通常由两个部分组成:滑块图片和背景图片。滑块图片上有一个滑块,用户需要通过拖动滑块将其放到正确的位置,以完成验证。 要实现滑块验证码的识别,可以按照以下步骤进行: 1. 数据准备:收集大量的滑块验证码图片,并将其划分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。 2. 特征提取:使用PyTorch加载滑块验证码图片,并对其进行预处理。可以使用卷积神经网络(CNN)来提取图片的特征。 3. 训练模型:使用PyTorch构建一个深度学习模型,可以选择使用已经预训练好的模型作为基础模型,如ResNet、VGG等。然后,将提取的特征输入到模型中,通过反向传播来优化模型的参数。 4. 模型评估:使用测试集对训练好的模型进行评估,计算准确率、精度等指标,判断模型的性能。 5. 模型应用:将训练好的模型部署到实际的滑块验证码系统中,用户在登录或注册时需要完成验证码验证。用户拖动滑块,系统会根据用户的操作判断是否为真实用户。 通过使用PyTorch深度学习框架,我们可以方便地实现滑块验证码的识别。它提供了丰富的工具和算法,可以帮助我们构建高性能的滑块验证码识别系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值