Python开发爆破字典
这里只是分享一下Python如何生成爆破字典
关于爆破工具编写我会在下一篇提到
其实有了爆破字典的话,直接使用Burp,Hydra等一些工具就可以做爆破了!
Burp的使用在我以前的博客中有写过,至于Hydra工具就更简单了,百度即可
实例1:
如果我知道某个账户的密码一定是数字并且只有4位(其实这种情况也不少见)
那么我就可以开发一个0000-9999的字典:
# -*-coding:utf-8 -*- # 生成密码字典:0000-9999 chars = [
'', '', '', '', '', '', '', '', '', '',
]
f = open("dict.txt", 'w')
base = len(chars)
end = len(chars) ** 4
for i in range(0, end):
n = i
ch0 = chars[n % base]
n /= base
ch1 = chars[n % base]
n /= base
ch2 = chars[n % base]
n /= base
ch3 = chars[n % base]
f.write(ch3 + ch2 + ch1 + ch0 + '\n')
f.close()
运行后就可以在当前目录生成一个dict.txt字典
实例2:
如果我想暴力破解一个Web后台
那么我会想到:密码信息通常和这个网站的域名有所关联
比如https://www.cnblogs.com/xuyiqing
假设它存在后来管理密码,那么很大可能会结合xuyiqing,cnblogs
如果再配合一些常见的弱密码比如:admin,root,manager
再加上一些特殊字符,比如!@#,那么生成的字典将会是一个高精度,有针对性的
这里需要用一个Python的第三方库:
exrex
官方解释:Irregular methods for regular expressions
这里简单:pip install exrex

代码部分也不难:
我这里只是一个抛砖引玉的效果,具体的可以根据自己的需求进行修改:
create_dic.py:
# -*-coding:utf-8 -*-
import exrex
import sys # 过滤关键字
web_white = ['com', 'cn', 'org', 'edu', 'gov', 'www'] def host_para(host):
"""
根据输入网址得到域名等特征信息
例如输入:https://www.cnblogs.com/xxx
得到结果:www.cnblogs.com.xxx
:param host: 输入URL
:return: 特征字符串
"""
if '://' in host:
host = host.split('://')[1]
if '/' in host:
host = host.replace('/', '.')
return host def dic_create(host):
"""
生产密码字典
:param host:经过处理的URL
:return: None
""" # 比如传入www.cnblogs.comxxx
# 得到[www,cnblogs,comxxx]
web_dics = host.split('.') # 读取正则规则
f_rule = open('rule.ini', 'r')
rule = ""
for i in f_rule:
if '#' != i[0]:
rule = i # 创建字典文件
f_dic = open('dic.txt', 'w')
f_dic.close() for web_dic in web_dics:
if web_dic not in web_white:
# 读取参考密码进行组合
f_pass = open('pass.txt', 'r')
for dic_pass in f_pass:
dics = list(exrex.generate(rule.format(web_dic=web_dic, dic_pass=dic_pass.strip('\n'))))
for dic in dics:
# 过滤过于简单的密码
if len(dic) > 4:
f_dic = open('dic.txt', 'a+')
f_dic.write(dic + "\n")
f_dic.close()
print dic.strip('\n') if __name__ == '__main__':
if len(sys.argv) == 2:
dic_create(host_para(sys.argv[1]))
sys.exit()
else:
print "[*]Usage:python create_dic.py [URL]"
它用到了一个参考字典:
pass.txt:存放一些常见的弱密码,用来进行组合
我这里随意加入了一些:
admin
administrator
root
guest
manage
manager
还有一个文件rule.ini存放正则表达式进行匹配:
对域名信息web_dic和参考字典dic_pass进行匹配,再加入一些特殊字符!@#
如果有需求,可以把特殊字符修改为姓名电话号码等等
最后就是年份的匹配,我这里匹配的是2014-2019
实际也可以匹配其他的一些字符
#字典生产程序的配置文件
#规则:{web_dic}[!@#]{dic_pass}
(|{web_dic})(|!|@|#)(|{dic_pass})(|!|@|#)(|201[456789]|)
使用:

回车即可在当前目录生成字典文件
Python开发爆破字典的更多相关文章
- Python开发爆破工具
上一篇讲到了如何用Python开发字典,而当我们手里有了字典 就可以进一步去做爆破的任务了,可以用现成的工具,当然也可以自己写 接下来我就要一步一步来写爆破工具! 爆破MySQL: 想要爆破MySQL ...
- python开发笔记-字典按值排序取前n个key值
场景举例: 假如我们有某个班级的语文成绩数据,格式为字典,其中字典key为学生姓名,value为学生成绩: 那么,如何获得单科成绩排名前3的学生姓名? 代码如下:--数据样例,方便测试 def dic ...
- python开发学习-day01 (python安装与版本、字符串、字典、运算符、文件)
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- Python开发(二):列表、字典、元组与文件处理
Python开发(二):列表.字典.元组与文件处理 一:列表二:元组三:字典四:文件处理 一:列表 为什么需要列表 可以通过列表可以对数据实现最方便的存储.修改等操作.字符串是不能修改的,所以无法 ...
- Python 开发轻量级爬虫07
Python 开发轻量级爬虫 (imooc总结07--网页解析器BeautifulSoup) BeautifulSoup下载和安装 使用pip install 安装:在命令行cmd之后输入,pip i ...
- Python开发【前端】:JavaScript
JavaScript入门 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...
- Python开发【前端】:HTML
HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏 ...
- python基础_字典_列表_元组考试_day4
1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...
- Python开发最常犯错误总结10种
不管是在学习还是工作过程中,人都会犯错.虽然Python的语法简单.灵活,但也一样存在一些不小的坑,一不小心,初学者和资深Python程序员都有可能会栽跟头.本文是Toptal网站的程序员梳理的10大 ...
随机推荐
- textarea下高度自适应
1,背景:textarea的高度不会随内容的增加而自适应,会出现滚动条 解决方案: 1)使用div模拟textarea 使用h5的属性 <div contenteditable=&quo ...
- 在Linux系统上安装Compose
在Linux上,您可以从GitHub上的Compose存储库发行页面下载Docker Compose二进制文件.按照链接中的说明进行操作,该链接涉及curl在终端中运行命令以下载二进制文件.这些分步说 ...
- rabbit基本原理 转
https://www.cnblogs.com/jun-ma/p/4840869.html
- Django学习笔记(进阶篇)
Django学习笔记(进阶篇):http://www.cnblogs.com/wupeiqi/articles/5246483.html
- [JavaScript] 弹出编辑框
效果:单击图片copy,双击图片或者点Edit都会打开编辑窗口 Style <style> .black_overlay{ display: none; position: absolut ...
- hadoop_随笔二_参数
1) dfs.datanode.handler.count : datanode上用于处理RPC的线程数.默认为3,较大集群,可适当调大些,比如8.需要注意的是,每添加一个线程,需要的内存增加. 2) ...
- js跳转到页面指定元素
var scrollDistance = $("#设置了的overflow元素").scrollTop() + $('#' + 当前屏幕元素).offset().top; $(&q ...
- 非root用户安装cuda和cudnn
1.根据自己的系统在官网下载cuda (选择runfile(local)) https://developer.nvidia.com/cuda-downloads 2.进入下载目录,并执行 sh cu ...
- nohup 运行后台程序
写了个程序,大概就是日志文件快写满的时候自动删日记.然后 java -jar log_delete.jar & 跑起来.过两天ps发现程序没有了, 网上一查明白是因为:通过终端(shel ...
- C++实现文件内字符数、单词数、行数的统计
先给出github上的代码链接以及项目需求 1. 项目简介 这个项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处 ...