解密极验滑块验证码的w参数

一、极验请求分析
滑块测试网站入口

我们首先访问极验滑块验证码测试主页,以便获取后续请求中的url。

滑块验证过程抓包

通过抓包工具分析滑块验证过程,发现与第三代滑块验证码相比,第四代简化了验证过程,加密参数w的生成也变得简单了。

请求详解

adaptive-captcha-demo

请求介绍:极验第四代验证码测试主页,主要获取下个请求中的url。

请求参数:无。

请求响应:通过正则匹配下个请求的url。

adaptive-captcha-demo.js

请求介绍:获取w参数加密所需的参数captchaId。

请求参数:无。

请求响应:通过正则匹配captchaId参数的值。

load

请求介绍:获取验证码信息,包括验证码类型、背景图、滑块图等。

请求参数:captcha_id、challenge等。

请求响应:获取滑块轨迹等信息。

verify

请求介绍:极验验证请求,收集滑动轨迹,加密生成w参数。

请求参数:captcha_id、challenge、lot_number等。

请求响应:验证成功后获取seccode。

二、js破解前准备工作
gcaptcha4.js反混淆

通过AST语法树将混淆的gcaptcha4.js文件还原,以便后续分析。

找到w参数

在进一步分析w参数生成之前,我们需要找到w参数所在的位置,并准备好所需的函数和算法。

三、具体代码实现

from Crypto.Cipher import AES
import base64
import random
import hashlib

# AES解密函数
def decrypt_aes(w, key):
    cipher = AES.new(key, AES.MODE_ECB)
    decrypted = cipher.decrypt(base64.b64decode(w))
    return decrypted.decode('utf-8')

# 外部函数调用解密函数
def get_h(e, t):
    # 外部函数内部实现,需要根据实际情况填写
    pass

# 构造UUID函数
def uuid():
    # UUID生成函数实现,例如通过随机数生成
    return str(uuid.uuid1())

# 加密函数
def encrypt(e, t):
    # 加密函数内部实现,需要根据实际情况填写
    pass

# 获取lot_number
def get_lot_number():
    # 从上个请求响应中获取lot_number值
    return "4b4ef3e583444e0fb..."

# 获取w参数
def get_w(track, captcha_width):
    e = construct_e(track, captcha_width)
    lot_number = e["lot_number"]
    key = hashlib.md5(lot_number.encode()).digest()
    h = get_h(e, key)
    return encrypt(e, h)

# 其他辅助函数和对象构造函数等...

# 使用示例
if __name__ == "__main__":
    # 待解密的参数
    w = "c742e66584e3b20ad523c2ddff..."
    # AES解密所需的密钥,长度必须是16、24或32字节
    key = b"my_secret_key_1234"  # 示例密钥,需根据实际情况更改
    # 调用解密函数
    decrypted_w = decrypt_aes(w, key)
    # 打印解密后的参数
    print("Decrypted w parameter:", decrypted_w)

更多内容访问网站

  • 36
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ABAP 四代增强是指在SAP ABAP代码中使用ABAP对象,进行逐渐增量式的改进和扩展。它是为了满足不断变化的业务需求而引入的。 ABAP 四代增强教程包括以下内容: 1. ABAP对象概览:介绍ABAP对象的基本概念和特性,如类、方法、属性等。通过理解这些概念,可以更好地理解ABAP四代增强的应用和实现。 2. ABAP四代增强的类型:指明了ABAP四代增强的四种类型,分别是扩展、实现、隐式和显式实现。通过学习这些类型,可以了解如何在ABAP代码中实现不同类型的增强。 3. 扩展增强:通过继承一个类并添加新方法或属性来扩展已有类的功能。这种增强方式可以使代码更加模块化和易于理解。 4. 实现增强:通过实现一个接口来增强某个类的功能。这种增强方式可以使类之间的关系更加灵活和可扩展。 5. 隐式增强:在ABAP运行时动态地为一个类添加新属性或方法。这种增强方式可以实现运行时的灵活性和可伸缩性。 6. 显式增强:在ABAP开始时明确为类添加新属性或方法。这种增强方式可以使代码更加清晰和易于理解,在编译时就能发现错误。 ABAP四代增强教程的目的是为ABAP开发人员提供一种灵活的扩展和改进现有代码的方法。通过学习和应用ABAP四代增强,开发人员可以更好地满足不断变化的业务需求,提高代码的可维护性和可扩展性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值