使用python暴力破解验证码 |
您所在的位置:网站首页 › 暴力破解网页密码工具 › 使用python暴力破解验证码 |
一、需求介绍
今天遇到一个棘手的问题,就是之前注册某网站的手机号码已经被我弃用了,我也忘记了密码,而改密码需要验证码,验证码发送之后,却接受不到。所以我需要暴力破解。 二、破解思路验证码是六位数字,所以一共有100万种可能,我想采用暴力法进行破解,先人肉破解,大概分成以下几个步骤: 点击验证码输入框退格键删除之前错误的验证码输入新的验证码点击提交按钮依次循环,直到验证码正确打开网站。人肉输入显然太累了,所以我们需要脚本 三、python模拟鼠标和键盘操作我Baidu了一下,发现python中有pymouse和pykeyboard这两个库,于是兴奋的我就迫不及待的开始了尝试,然而编程的道路永远是波澜曲折,在安装时就会遇到问题,具体的问题我就不展开了,参考这篇博客可以解决No module named 'windows’的问题;再参考这篇博客,我们可以得到这两个库的常见使用方法。因为验证码是字符串,所以我们还需要把数字转换为头部补零的字符串,这个操作可以参考这篇博客。 四、具体代码有了这些知识,再加上一些随机函数,我们就可以把代码写出来了,具体代码如下: from pymouse import PyMouse # 模拟鼠标 from pykeyboard import PyKeyboard # 模拟键盘 import time import random def get_time_interval(): return random.random()*0.1+0.1 def get_waiting_time(): return random.random()*1+4 # 定义实例 mouse = PyMouse() keyboard = PyKeyboard() time_interval = 0.1 for i in range(106,1000000): vericode = '{:0>6d}'.format(i) print(vericode) mouse.click(800,530,button=1,n=1)#button=1表示左键,n=1表示单击 time.sleep(get_time_interval()) keyboard.tap_key(keyboard.backspace_key,n=6) time.sleep(get_time_interval()) keyboard.type_string(vericode) mouse.click(1000,940,button=1,n=1) time.sleep(get_waiting_time())运行之后,我们就看到这样的效果: 接下来就是蛮长的等待了,毕竟100万个码,要等到猴年马月了。[捂脸] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |