#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import logging
import argparse
import queue
import requests
import threading
import os
import time
import random
from html.parser import HTMLParser
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
# disable InsecureRequestWarning
# 由于目标站点使用的证书过期了,导致我在使用requests库请求时将verify设置为FALSE,同时配置了proxies(指向本地Burp)。而requests依赖的底层库urllib3总是报Warning,所以使用上面语句disable掉这个Warning。可以参考如下链接:
# https://stackoverflow.com/questions/27981545/suppress-insecurerequestwarning-unverified-https-request-is-being-made-in-pytho
logging.basicConfig(level=logging.WARNING) # 用logging,避免调试时满篇的print.(但本脚本中基本没怎么用。。。)
# general settings
target_url="https://mail.xxx.com/UserLogin.aspx"
writeFileLock = threading.Lock() # 创建文件锁,避免写文件冲突。
threadLock = threading.Lock() #创建线程锁,避免对显示效果的影响。
# 保存爆破结果
def saveFile(message,outfilePath):
with open(outfilePath, 'a+', encoding = 'utf8') as f: # 以追加的方法结果写入文件
f.write(message[0]+"\t")
f.write(message[1]+"\n")
# 自定义一个Exception类,用于显示自定义的异常。
class validcodeException(BaseException):
def __init__(self,mesg=" @@@@@@@@@@@@@@@ valid code is wrong!!!!!!!"):
print(mesg)
# 解析响应报文,主要用户提取服务器响应回来的表单字段,顶