打算写一点小脚本,记录一下过程,辅助记忆,希望也可以提供给你一点便利。 在工作中我们可能会需要编写一些小工具来辅助我们的测试,这篇文章记录的是关于字典的脚本,脚本可能写的不够好,大佬勿喷,或请指导!感谢!
生成字典
有的时候,譬如爆破验证码,简单的用户名密码爆破都会用到字典,虽然说burp已经继承了intruder,但是!@#¥!#%!@#¥,嗯嗯,这个也可以用)
""" 字典生成脚本"""
__author__="JE2Se"
import itertools as its
import os
words = "123456789" #字符可自行设置
password= its.product(words,repeat=8) #repeat代表着你要创建的密码位数 dic = open("pass.txt","a") #创建一个txt文本
for i in password: #遍历插入
dic.write("".join(i))
dic.write("".join("\n"))
dic.close()
这样,简单的字典就生成了
加密字典生成
测试时,虽然存在验证码绕过,暴力破解的风险,但是抓取到的密码存在加密,对于一些简单的加密,我们可以使用加密脚本去进行构造。下面我举几个小的例子,仅为我碰到过的,其他的酒暂时不写了,随遇到,随更新。
sha512
可以利用hashlib模块。模块内可使用md5,sha512.256等进行加密。以下的例子我使用的是256加密
__author__="JE2Se"
import hashlib
import os
file1 = open(r"字典位置")
file2 = open("2.txt","w")
for line in file1.readlines():
line=line.strip('\n')
file2.writelines(hashlib.sha256(line.encode("utf-8")).hexdigest()+'\n')
file1.close()
file2.close()
sha1(salt+pass)
__author__="JE2Se"
import os
from hashlib import sha1
#解密后口令信息:je2se.com.cn:123456
#加盐加密后sha1:24360aac566c1da65014ee1abbfec43b9b49395e
file1 = open(r"pwd.txt")
file2 = open("enpwd.txt","w")
for line in file1.readlines():
line = line.strip('\n')
salt = "je2se.com.cn:"
newpwd =salt+line
s1 = sha1()
s1.update(newpwd.encode())
result = s1.hexdigest()
print(result)
file2.writelines((str(result)) + '\n')
file1.close()
file2.close()
base64(salt+pass)
__author__="JE2Se"
import os
import base64
file1 = open(r"pwd.txt")
file2 = open("enpwd.txt","w")
for line in file1.readlines():
line=line.strip('\n')
salt = "99879094ddeee"
file2.writelines(str(bytes.decode(base64.b64encode((salt+line).encode('utf-8')))) + '\n')
file1.close()
file2.close()
md5
import hashlib
import os
__author__="JE2Se"
file1 = open(r"字典位置")
file2 = open("2.txt","w")
for line in file1.readlines():
line=line.strip('\n')
file2.writelines(hashlib.md5(line.encode(encoding='UTF-8')).hexdigest()+'\n')
file1.close()
file2.close()
随碰到随更新~脚本虽小,只是为了留存。
ps:来自一个想学好python的狗!
文章评论