首页
社区
课程
招聘
[原创]Python 阿里云盾滑块验证
发表于: 2022-4-23 02:29 24699

[原创]Python 阿里云盾滑块验证

2022-4-23 02:29
24699

<table><tr><td bgcolor=orange>本文仅供学习交流使用,如侵立删!</td></tr></table>

最近在做中国庭审公开网数据分析的时候发现每次打开一个新的页面都会触发滑块验证,就长下面这个样子
在这里插入图片描述
本以为使用selenium定位到滑块元素拖动即可,满心欢喜开始写代码,测试后发现还是高兴太早了~~~

请添加图片描述
貌似有点东西,原以为是因为检测到了selenium的原因,添加防检测代码

后陆续尝试过,降低chrome版本,修改chromedriver驱动文件,均不成功。
现在看来是真的有点东西!!!正在一筹莫展时,直到看到了这个
在这里插入图片描述
经过分析网页源码发现原来是使用了阿里云盾的人机效验,详细介绍请参考官方产品文档:阿里云验证码产品文档
在这里插入图片描述
分析了一波效验规则及原理,搞明白原理就好办了

请添加图片描述
完美解决

https://download.csdn.net/download/qq_38154948/85204671

<table><tr><td bgcolor=orange>本文仅供学习交流使用,如侵立删!</td></tr></table>

 
# 最新版本谷歌浏览器 绕过检测
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
# 最新版本谷歌浏览器 绕过检测
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
def __init__(self):
    chrome_options = Options()
    # 最新版本谷歌浏览器 绕过检测
    chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
    chrome_options.add_argument('--disable-blink-features=AutomationControlled')
    self.driver = webdriver.Chrome('./config/chromedriver.exe', options=chrome_options)
    self.wait = WebDriverWait(self.driver, 10, 1# 设置隐式等待时间
    self.driver.maximize_window()
 
def run(self):
    """程序入口"""
    print(f'打开首页:http://tingshen.court.gov.cn/preview')
    self.driver.get('http://tingshen.court.gov.cn/preview')
 
    # 拖动到指定位置
    # 将鼠标拖动到指定的坐标;duration 的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数
    pyautogui.dragTo(1086, 340, duration=1)
 
    # 按方向拖动
    # 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟
    pyautogui.dragRel(260, 0, duration=0.5# 第一个参数是左右移动像素值,第二个是上下
def __init__(self):
    chrome_options = Options()
    # 最新版本谷歌浏览器 绕过检测
    chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
    chrome_options.add_argument('--disable-blink-features=AutomationControlled')
    self.driver = webdriver.Chrome('./config/chromedriver.exe', options=chrome_options)
    self.wait = WebDriverWait(self.driver, 10, 1# 设置隐式等待时间
    self.driver.maximize_window()
 

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-4-26 13:33 被拉灯的小手编辑 ,原因:
收藏
免费 4
支持
分享
最新回复 (15)
雪    币: 613
活跃值: (2469)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么简单就破解了?不需要随机化移动速度和路径吗?或者更进一步训练一个神经网络对抗吗?
2022-4-26 09:38
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谈不上破解,可以仔细阅读下阿里云盾的触发机制,这种只是触发了验证后的补救措施,真正检测不到不触发验证才是大成
2022-4-26 13:32
0
雪    币: 5492
活跃值: (3317)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
阿里js里面判断了鼠标事件是否真实 如果是模拟的消息点击会被识别到  想要不触发可以通过中间人劫持技术修改js中判断真实状态的代码 伪造鼠标消息为真即可 就不会触发滑块机制 总体来说阿里的检查不复杂 整体也很容易处理
2022-4-27 15:55
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
尐进 阿里js里面判断了鼠标事件是否真实 如果是模拟的消息点击会被识别到  想要不触发可以通过中间人劫持技术修改js中判断真实状态的代码 伪造鼠标消息为真即可 就不会触发滑块机制 总体来说阿里的检查不复杂  ...

大佬能否详细指点一下

最后于 2022-4-28 03:03 被拉灯的小手编辑 ,原因:
2022-4-28 00:43
0
雪    币: 4164
活跃值: (2504)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
腻害呀,向大佬学习
2022-4-28 09:01
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
tb也是这个滑块不
2022-4-29 15:05
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mb_dttyhgbp tb也是这个滑块不
具体可以看一下调用的js文件,如果是调用的ali云盾就是这个
2022-4-29 15:37
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
liyqxtu 腻害呀,向大佬学习[em_63]
相互学习
2022-4-29 15:53
0
雪    币: 5492
活跃值: (3317)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
拉灯的小手 尐进 阿里js里面判断了鼠标事件是否真实 如果是模拟的消息点击会被识别到 &nbsp;想要不触发可以通过中间人劫持技术修改js中判断真实状 ...
通过中间人劫持将js内容修改 对他的函数每个函数都加入cosole.log进行打印 然后对比手动输入和自动化时的流程 就能定位出不一样的地方 然后对其不一样的地方进行分析 查看函数流程 就能找到其判断鼠标事件的地方 然后修改js代码将其判断的逻辑修改 这样模拟事件也会走正确流程 阿里系列基本都是同一款 所以做一个也就通杀了整个系列
2022-4-29 16:30
0
雪    币: 5492
活跃值: (3317)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
拉灯的小手 尐进 阿里js里面判断了鼠标事件是否真实 如果是模拟的消息点击会被识别到 &nbsp;想要不触发可以通过中间人劫持技术修改js中判断真实状 ...
当然别的环境也要先处理好 否则轮不到这个就已经出滑块了
2022-4-29 16:31
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
尐进 当然别的环境也要先处理好 否则轮不到这个就已经出滑块了
好的,大佬学习了
2022-4-29 17:02
0
雪    币: 182
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
居然没检测selenium,让你逃过一劫
2022-5-9 21:24
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
komany 居然没检测selenium,让你逃过一劫
检测了,不可能有侥幸的,绕过了检测
2022-5-10 00:45
0
雪    币: 2
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
   # 最新版本谷歌浏览器 绕过检测
    chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
    chrome_options.add_argument('--disable-blink-features=AutomationControlled')

光这两行代码应该过不了检测,我用了 selenium 手动滑动也不行
2022-5-20 10:48
0
雪    币: 2784
活跃值: (2559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
meixin # 最新版本谷歌浏览器 绕过检测 chrome_options.add_experimental_option('excludeSwitches', ['enable-automati ...
最新版可以的,实测过,关键点不是这两行代码。
2022-5-20 13:17
0
游客
登录 | 注册 方可回帖
返回
//