问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

滑动验证码破解新花样,小心被“滑”了!

创作时间:
2025-01-21 19:31:02
作者:
@小白创作中心

滑动验证码破解新花样,小心被“滑”了!

滑动验证码作为一种常见的人机验证方式,广泛应用于各大网站和应用程序中。然而,随着技术的发展,黑客们也找到了新的破解方法,通过自动化工具和高级算法,他们能够轻易地绕过这一防线。了解这些破解技术并采取有效的防范措施变得尤为重要。让我们一起看看有哪些最新的破解手法,以及如何保护自己免受这些威胁吧!

01

滑动验证码的基本原理

滑动验证码通过用户拖动滑块至指定位置完成验证,验证的关键在于验证参数的正确性。通常,验证参数包括 challenge、gt、w 等,其中 challenge 是每次验证生成的唯一标识,gt 是滑动验证码的 ID,而 w 是校验通过与否的核心参数。

02

最新的破解技术

滑动验证码的破解主要涉及到几个关键参数的破解,包括 challenge、gt、w、c、s 等。其中 challenge 是验证的唯一标识,gt 是滑动验证码的 ID,而 w 是校验通过与否的核心参数。而 c 和 s 则是用于加密生成 w 参数的重要参数。

滑动验证码的破解过程可以分为以下几个关键步骤:

  1. 获取核心 JS 文件链接:通过请求获取滑动验证码的核心 JS 文件链接,以便后续的破解过程中使用。

  2. 执行无感验证:执行无感验证的过程中,收集浏览器信息并上报,其中 c 和 s 是比较关键的参数,后续的请求会用到它们。

  3. 构造滑动轨迹:根据滑块的移动轨迹,生成相应的滑动轨迹数组,用于后续的参数生成。

  4. 破解 w 参数:根据滑动轨迹数组、challenge、c 和 s 等参数,构造 w 参数的值,从而实现滑动验证码的破解。

下面是一个示例代码,演示了滑动验证码破解的实现过程:

// 计算 w 参数
export function calculateW(challenge: string, c: string, s: string, trace: number[][]): string {
const leftPart = calculateLeftPart(challenge, c, s, trace);
const rightPart = calculateRightPart();
return leftPart + rightPart;
}
// 计算 w 参数的左半部分
function calculateLeftPart(challenge: string, c: string, s: string, trace: number[][]): string {
const o = {
lang: 'zh-cn',
userresponse: generateUserResponse(trace, challenge),
passtime: trace[trace.length - 1][2],
imgload: Math.floor(Math.random() * 50 + 30),
aa: generateAA(trace, c, s),
ep: {
v: '7.8.8',
$_BIQ: false,
me: true,
tm: -1,
td: -1,
},
};
return encrypt(stringify(o), getRandomText());
}
// 计算 w 参数的右半部分
function calculateRightPart(): string {
let e = new U().encrypt(getRandomText());
while (!e || 256 !== e.length) e = new U().encrypt(getRandomText(true));
return e;
}
// 生成滑动轨迹数组
function generateSlideTrace(distance: number): number[][] {
// 根据滑动距离生成滑动轨迹数组
// ...
}
// 生成用户响应参数
function generateUserResponse(trace: number[][], challenge: string): string {
// 根据滑动轨迹数组和 challenge 生成用户响应参数
// ...
}
// 生成 aa 参数
function generateAA(trace: number[][], c: string, s: string): string {
// 根据滑动轨迹数组、c 和 s 生成 aa 参数
// ...
}

AI 破解方面,可以使用 ddddocr 或 OpenCV 进行图像处理和目标检测,通过模板匹配方式在背景图上查找目标位置。

03

实际安全事件

滑动验证码虽然能有效防止简单自动化攻击,但高级自动化脚本仍可能破解,因此常与其他验证机制结合使用。

04

防范措施

  1. 多因素认证:结合短信验证码、邮箱验证等多种方式,增加破解难度。

  2. 行为分析:通过分析用户操作行为,识别异常操作,如过快的滑动速度等。

  3. 动态验证码:定期更新验证码的样式和算法,增加破解成本。

  4. 限制尝试次数:对频繁失败的验证请求进行限制,防止暴力破解。

  5. 使用更高级的安全服务:如 Google reCAPTCHA 等,它们通常具有更先进的反作弊机制。

滑动验证码的安全性虽然面临挑战,但通过合理的防范措施,仍然可以有效保护系统安全。作为用户,我们也应该提高警惕,注意保护个人信息,避免在不安全的环境中进行敏感操作。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号