Crack Slide | hb省建筑市场监管公共服务平台滑块分析(一个从开始就失败的案例,0.1星)

简介: Crack Slide | hb省建筑市场监管公共服务平台滑块分析(一个从开始就失败的案例,0.1星)

今日网站

aHR0cDovL2djeG0uaHVuYW5qcy5nb3YuY24vZGF0YXNlcnZpY2UuaHRtbA==

今天是中秋佳节,祝各位读者老板中秋佳节人团圆,平安喜乐!万事胜意,中秋节快乐~

这篇文章是某个服务平台的滑块验证代码分析,没有什么难度,是 Crack Captcha 系列文章的一部分

同时也是一篇失败的分析文章,我以为是有点难度的,唉,结果。。。

这个网站的解析应该是一个失败的案例,因为完全没有可以值得思考和分析的点,整个流程下来都是按图索骥,没有太多难点,希望之后能给大家带来更多有深度的文章。。

抓包分析

刷新页面,可以看到页面直接加载了一个滑块验证,如下

通过滑块验证之后才可以获取到列表页数据

看过页面展示的效果之后,我们进一步看一下在抓包层面需要分析的内容

在没有滑动前可以看到以下网络请求

我上面是请求了 3 次,可以看到上述图片中重复了 4 个请求

自上往下分别为

1、获取缺口图和滑块图的请求

2/3、缺口图和滑块图

4、验证失败的请求

在第 1 步中同步获取了第 4 个请求中要携带的 verifyid

现在只要获取到第四个请求中的moveX就可以正常请求列表页了

参数分析

通过上面的请求,可以知道缺口图的获取是通过http://xxx/xxx/xxx.ashx?method=GetVerifyImg这个请求获取到的

所以先看下请求出来的图片

像这样简单的滑块图片一般是不经过切片混淆的所以我们看到的图片就是一个带缺口的图片

这样我们只需要通过 openCV 就可以分析出缺口的位置

并且通过抓包部分可以看到

滑块图就是贴着图片边缘的所以不需要做偏移,opencv 识别出来的结果就是最终的结果

缺口识别

opencv 的代码我网上随便抄了一份,我们先试试看,这样是否可行(csdn 上的)

测试效果非常拉垮

opencv 识别代码:

import cv2
def identify_gap(bg, tp, out):
    '''
    bg: 背景图片
    tp: 缺口图片
    out:输出图片
    '''
    # 读取背景图片和缺口图片
    bg_img = cv2.imread(bg)  # 背景图片
    tp_img = cv2.imread(tp)  # 缺口图片
    # 识别图片边缘
    bg_edge = cv2.Canny(bg_img, 100, 200)
    tp_edge = cv2.Canny(tp_img, 100, 200)
    # 转换图片格式
    bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB)
    tp_pic = cv2.cvtColor(tp_edge, cv2.COLOR_GRAY2RGB)
    # 缺口匹配
    res = cv2.matchTemplate(bg_pic, tp_pic, cv2.TM_CCOEFF_NORMED)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)  # 寻找最优匹配
    # 绘制方框
    th, tw = tp_pic.shape[:2]
    tl = max_loc  # 左上角点的坐标
    br = (tl[0] + tw, tl[1] + th)  # 右下角点的坐标
    cv2.rectangle(bg_img, tl, br, (0, 0, 255), 2)  # 绘制矩形
    cv2.imwrite(out, bg_img)  # 保存在本地
    print(tl[0])
    # 返回缺口的X坐标
    return tl[0]
if __name__ == '__main__':
    identify_gap('bg.png','tp.png','out.png')

这里使用的背景图是下面这个

识别出来是这样的。。

能画到天边去,还是自己写一个,没有用 opencv

原理大概就是判断色差是否符合我们的要求,识别结果如下

长度是一样的,其实到这里后面就没有难度了

直接模拟代码的提交就完事了

恶心的点在于这个网站的滑块时不时会抽筋,正常提交正确的 x 值也会显示验证错误,所以大家复现的时候最好自己测试下图片的位置是否正确识别,网站错误不一定是你代码写错了哦。

这个网站的解析应该是一个失败的案例,因为完全没有可以值得思考和分析的点,整个流程下来都是按图索骥,没有太多难点,希望之后能给大家带来更多有深度的文章。


目录
打赏
0
0
0
0
8
分享
相关文章
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
25566 18
DBeaver如何连接一个数据库
【10月更文挑战第27天】DBeaver 是一款功能强大的通用数据库管理工具,支持多种主流数据库。本文介绍了使用 DBeaver 连接数据库的基本步骤,包括下载安装、创建新连接、选择数据库类型、配置连接参数、测试连接以及最终连接到数据库。详细的操作指南帮助用户轻松管理和操作数据库。
1861 9
阿里云首批卓越级通过中国信通院超低延时直播性能分级评估
近期举办的2024“可信云大会”上,中国信通院正式发布了2024年上半年音视频领域最新评估结果。阿里云超低延时直播,以首批卓越级,通过中国信通院超低延时直播性能及服务质量分级测试。
阿里云首批卓越级通过中国信通院超低延时直播性能分级评估
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
256 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
"揭秘数据质量自动化的秘密武器:机器学习模型如何精准捕捉数据中的‘隐形陷阱’,让你的数据分析无懈可击?"
【8月更文挑战第20天】随着大数据成为核心资源,数据质量直接影响机器学习模型的准确性和效果。传统的人工审查方法效率低且易错。本文介绍如何运用机器学习自动化评估数据质量,解决缺失值、异常值等问题,提升模型训练效率和预测准确性。通过Python和scikit-learn示例展示了异常值检测的过程,最后强调在自动化评估的同时结合人工审查的重要性。
233 2
强化学习:从游戏到机器人的技术之旅
【6月更文挑战第14天】强化学习是智能体通过与环境互动学习决策策略的方法,已在游戏(如AlphaGo和OpenAI Five)和机器人技术中展现出巨大潜力。在机器人领域,它应用于控制、动作学习和交互沟通,帮助机器人适应复杂环境和任务。尽管面临挑战,但随着技术发展,强化学习有望在更多领域发挥关键作用。
大模型时代的人工智能+大数据平台,加速创新涌现
2023年10月31日,2023云栖大会上,阿里云副总裁、阿里云计算平台事业部负责人汪军华宣布阿里云人工智能+大数据平台升级发布,以服务大模型时代下各行各业的业务创新。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问