python生成wifi字典_python web-Django实现的在线字典生成_白帽子技术/思路_i春秋社区-分享你的技术,为安全加点温度....

这篇博客介绍了如何使用Python的exrex模块生成符合正则表达式的字符串,以此创建WiFi字典。通过结合自定义规则和常见弱口令,过滤掉简单口令。此外,还展示了如何在Django框架中集成这个功能,实现一个在线字典生成的Web应用。文章最后给出了实际操作的结果和代码示例。
摘要由CSDN通过智能技术生成

ADO 老师介绍的一个模块:exrex,感觉挺好用的

安装:pip install exrex

项目地址:https://github.com/asciimoo/exrex

常见用法:

dic01.PNG (29.99 KB, 下载次数: 61)

2017-5-6 11:06 上传

exrex.generate()函数里写入的是正则,然后exrex会生成所有符合该正则的字符串,我们就利用这个特性,传入一个与常见弱口令、字符、以及与url相关的字符有关联的正则,然后自动生成大量字典。

核心代码dic_generate.py

[Python] 纯文本查看 复制代码'''

@author: xiaoye

'''

#coding: utf-8

import exrex

'''a = list(exrex.generate('[Pp][a@]ssw[Oo]rd'))

print a'''

dic_bad = ['com', 'www', 'bbs', 'cn', '/', 'org', 'edu', 'xyz', 'top']

filter_list = ['!', '@', '#', '201']

dic_final = []

def url_split(url=''):

if '://' in url:

domain = url.split('://')[1]

else:

domain = url

#print domain

if '/' in domain:

domain = domain.split('/')[0]

#print domain

url_dics = domain.split('.')

#print url_diclist

return url_dics

def dic_create(url_dics):

with open('D:\\django_test\\webtool\\tool\\dic_rule.ini', 'r') as f:

for i in f.readlines():

i = i.strip('\n')

if i[0] != '#':

rule = str(i)

with open('D:\\django_test\\webtool\\tool\\comm_dic.txt', 'r') as f:

comm_dics = f.readlines()

dic_final = []

for url_dic in url_dics:

if url_dic not in dic_bad:

for comm_dic in comm_dics:

dics = list(exrex.generate(rule.format(url_dic=url_dic, comm_dic=comm_dic.strip('\n'))))

for dic in dics:

if (len(dic) > 4) and (dic[0] not in filter_list):

dic_final.append(dic)

#print dic_final

fin = '.'.join(url_dics)

dic_final.append(fin)

return dic_final

#dic_create(url_split())

整体思路是ADO老师的,自己又增加了一些过滤条件,把生成的一些过于简单的口令删去了;

规则写入了一个配置文件dic_rule.ini:

[Python] 纯文本查看 复制代码#example:{url_dic}[!@#]{comm_dic}

#{url_dic}[@#]{comm_dic}

#{url_dic}[#]{comm_dic}

(|{url_dic})(|@|#|!)(|{comm_dic})(|201[4567])

#(|{url_dic})(|@|#|!|!@#)(|{comm_dic})(|201[4567])

可以自增多条规则,将不用的注释掉

然后我们要将它当作模块使用

二、Django集成前篇文章已经写了一些基础,这里不多赘述

首先肯定是在urls.py中增加一个url正则:

[Python] 纯文本查看 复制代码from django.conf.urls import url

from django.contrib import admin

from tool import views as tool_views

urlpatterns = [

url(r'^admin/', admin.site.urls),

#url(r'^tool1/$', tool_views.tool1),

url(r'^tool/ip/$', tool_views.ip_api),

url(r'^tool/dict/$', tool_views.dic),

]

tool/dict/就是我们的增加项,tool_views.dic就是对应于url的视图函数

接着完善dic视图函数,在views.py:

[Python] 纯文本查看 复制代码# -*- coding: utf-8 -*-

from __future__ import unicode_literals

from django.http import HttpResponse

from tool import ipapi

from tool import dic_generate

from django.shortcuts import render

# Create your views here.

def dic(request):

url = request.POST.get('url', '')

url_dics = dic_generate.url_split(url)

dic_final = dic_generate.dic_create(url_dics)

return render(request, 'tool/dic.html', locals())

渲染了一个dic.html:

[HTML] 纯文本查看 复制代码

dic create by xiaoye

{% csrf_token %}

{% for dic in dic_final %}

{{dic}}

{% endfor %}

到这里就差不多了

三、结果展示

[Python] 纯文本查看 复制代码python manage.py runserver 0.0.0.0:8080

dic02.PNG (51.8 KB, 下载次数: 55)

2017-5-6 11:21 上传

当然,真正部署的时候,一般是要用nginx&uwsgi来做的,这里展示,就直接用自带的了

直接进入,会只显示配置好的弱口令,这个是写入一个comm_dic.txt中的:

dic0x.PNG (29.15 KB, 下载次数: 60)

2017-5-6 11:31 上传

dic03.PNG (477.09 KB, 下载次数: 53)

2017-5-6 11:24 上传

在input框里输入http://demo.ichunqiu.com/djf/s 点击按钮

就会显示出很多和url相关的字典了

dic04.PNG (476.8 KB, 下载次数: 63)

2017-5-6 11:26 上传

四、总结

源码已经放置:https://github.com/xiaoyecent/django-webtool

求star^_^

django学的时间不长,不足之处万望指出,感谢表哥们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值