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 值也会显示验证错误,所以大家复现的时候最好自己测试下图片的位置是否正确识别,网站错误不一定是你代码写错了哦。

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


相关文章
|
PHP Python
矩阵制度三三复制直销系统模式开发详解 | 矩阵制度三三复制直销系统开发源码demo示例
矩阵制度三三复制模式是一种常见的直销模式,也被称为三三复制模式。该模式限制了前排的数量,只能填满3个位置,奖金则是按照固定的深度来进行领取的。在该模式中,每个参与者都可以推荐其他人加入,如果成功推荐,就可以获得相应的奖金。具体来说,如果推荐一个参与者,可以获得20美元的奖金;如果推荐两个参与者,可以获得10美元的奖金;如果推荐三个参与者,可以获得4美元的奖金。此外,该模式还有一些其他的奖金制度,如培育奖金、扣税等。
|
6月前
|
机器学习/深度学习 人工智能 搜索推荐
一区9.3分top刊|多组学SNF数据融合的正确打开方式
这篇研究文章聚焦于多组学在揭示胎盘功能障碍中的作用,发表于2023年9月的《BMC Medicine》,IF为9.3。研究通过整合转录组学、蛋白质组学和代谢组学数据,鉴定出与常见产科综合征(如先兆子痫、胎儿生长受限和自发性早产)无关的胎盘集群。使用人工智能的无偏相似性网络融合(SNF)方法,分析发现四个不同的胎盘簇,其中早发性先兆子痫的簇显示强烈的功能障碍模式,而以自发性早产为主的簇则较弱。研究结果增加了对病理过程的理解,可能促进个性化干预措施的发展。
166 0
|
定位技术
ArcGIS:如何进行缓冲区分析(以市区选择住房位置为例)?
ArcGIS:如何进行缓冲区分析(以市区选择住房位置为例)?
1041 0
|
存储 区块链 数据库
普瑞缇Protradex系统开发(案例详细)丨Protradex普瑞缇系统开发(源码方案)/玩法规则
 什么是DAPP?DAPP是Decentralized Application的缩写,中文叫分布式应用/去中心化应用。通常来说,不同的DAPP会采用不同的底层技术开发平台和共识机制,或者自行发布代币
vue+echarts实现疫情(全国新增趋势、境外输入省市TOP5)
vue+echarts实现疫情(全国新增趋势、境外输入省市TOP5)
139 0
vue+echarts实现疫情(全国新增趋势、境外输入省市TOP5)
|
存储 定位技术 开发工具
使用 ES 实现疫情地图或者外卖点餐功能(含代码及数据)
使用 ES 实现疫情地图或者外卖点餐功能(含代码及数据)
使用 ES 实现疫情地图或者外卖点餐功能(含代码及数据)
|
数据可视化
PIE-engine APP 教程 ——基于PIE云平台的城市生态宜居性评价系统——以京津冀城市群为例
PIE-engine APP 教程 ——基于PIE云平台的城市生态宜居性评价系统——以京津冀城市群为例
398 0
PIE-engine APP 教程 ——基于PIE云平台的城市生态宜居性评价系统——以京津冀城市群为例
|
数据库 Android开发 数据库管理
Android 天气APP(二十)增加欢迎页及白屏黑屏处理、展示世界国家/地区的城市数据
Android 天气APP(二十)增加欢迎页及白屏黑屏处理、展示世界国家/地区的城市数据
184 0
Android 天气APP(二十)增加欢迎页及白屏黑屏处理、展示世界国家/地区的城市数据
盒子综合案例——德云社十八愁与宠物知识栏
盒子综合案例——德云社十八愁与宠物知识栏
144 0
盒子综合案例——德云社十八愁与宠物知识栏
|
数据采集 自动驾驶 定位技术
第17家图商名落宽凳,正式获导航电子地图制作甲级资质
宽凳即将成为我国第17家真正意义上的“图商”。
609 0