mirror of
https://github.com/shmilylty/OneForAll.git
synced 2026-08-26 12:57:50 +08:00
添加函数说明
This commit is contained in:
+15
-12
@@ -33,13 +33,13 @@ class Module(object):
|
|||||||
self.records = dict() # 存放子域解析记录
|
self.records = dict() # 存放子域解析记录
|
||||||
self.results = list() # 存放模块结果
|
self.results = list() # 存放模块结果
|
||||||
self.start = time.time() # 模块开始执行时间
|
self.start = time.time() # 模块开始执行时间
|
||||||
self.end = None
|
self.end = None # 模块结束执行时间
|
||||||
self.elapsed = None # 模块执行耗时
|
self.elapsed = None # 模块执行耗时
|
||||||
|
|
||||||
def check(self, *apis):
|
def check(self, *apis):
|
||||||
"""
|
"""
|
||||||
简单检查是否配置了api信息
|
简单检查是否配置了api信息
|
||||||
|
|
||||||
:param apis: api信息元组
|
:param apis: api信息元组
|
||||||
:return: 检查结果
|
:return: 检查结果
|
||||||
"""
|
"""
|
||||||
@@ -221,7 +221,7 @@ class Module(object):
|
|||||||
"""
|
"""
|
||||||
将各模块结果保存为json文件
|
将各模块结果保存为json文件
|
||||||
|
|
||||||
:return: 保存与否
|
:return: 是否保存成功
|
||||||
"""
|
"""
|
||||||
if not config.save_module_result:
|
if not config.save_module_result:
|
||||||
return False
|
return False
|
||||||
@@ -242,8 +242,10 @@ class Module(object):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def gen_result(self):
|
def gen_result(self):
|
||||||
results = list()
|
"""
|
||||||
if not len(self.subdomains): # 一个子域都没有发现的情况
|
生成结果
|
||||||
|
"""
|
||||||
|
if not len(self.subdomains): # 该模块一个子域都没有发现的情况
|
||||||
result = {'id': None,
|
result = {'id': None,
|
||||||
'url': None,
|
'url': None,
|
||||||
'subdomain': None,
|
'subdomain': None,
|
||||||
@@ -261,8 +263,7 @@ class Module(object):
|
|||||||
'source': self.source,
|
'source': self.source,
|
||||||
'elapsed': self.elapsed,
|
'elapsed': self.elapsed,
|
||||||
'count': 0}
|
'count': 0}
|
||||||
results.append(result)
|
self.results.append(result)
|
||||||
self.results = (self.source, results)
|
|
||||||
else:
|
else:
|
||||||
for subdomain in self.subdomains:
|
for subdomain in self.subdomains:
|
||||||
url = 'http://' + subdomain
|
url = 'http://' + subdomain
|
||||||
@@ -284,15 +285,17 @@ class Module(object):
|
|||||||
'source': self.source,
|
'source': self.source,
|
||||||
'elapsed': self.elapsed,
|
'elapsed': self.elapsed,
|
||||||
'count': len(self.subdomains)}
|
'count': len(self.subdomains)}
|
||||||
results.append(result)
|
self.results.append(result)
|
||||||
self.results = (self.source, results)
|
|
||||||
|
|
||||||
def save_db(self):
|
def save_db(self):
|
||||||
|
"""
|
||||||
|
将模块结果存入数据库中
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
lock.acquire()
|
lock.acquire()
|
||||||
db = Database()
|
db = Database()
|
||||||
db.create_table(self.domain)
|
db.create_table(self.domain)
|
||||||
source, results = self.results
|
db.save_db(self.domain, self.results, self.source)
|
||||||
# 将结果存入数据库中
|
|
||||||
db.save_db(self.domain, results, source)
|
|
||||||
db.close()
|
db.close()
|
||||||
lock.release()
|
lock.release()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# coding=utf-8
|
# coding=utf-8
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
import ipaddress
|
import ipaddress
|
||||||
@@ -218,6 +219,13 @@ def save_data(path, data):
|
|||||||
|
|
||||||
|
|
||||||
def check_response(method, resp):
|
def check_response(method, resp):
|
||||||
|
"""
|
||||||
|
检查响应 输出非正常响应返回json的信息
|
||||||
|
|
||||||
|
:param method: 请求方法
|
||||||
|
:param resp: 响应体
|
||||||
|
:return: 是否正常响应
|
||||||
|
"""
|
||||||
if resp.status_code == 200 and resp.content:
|
if resp.status_code == 200 and resp.content:
|
||||||
return True
|
return True
|
||||||
logger.log('ALERT', f'{method} {resp.url} {resp.status_code} - '
|
logger.log('ALERT', f'{method} {resp.url} {resp.status_code} - '
|
||||||
@@ -266,15 +274,21 @@ def remove_string(string):
|
|||||||
|
|
||||||
def check_value(values):
|
def check_value(values):
|
||||||
for i, value in enumerate(values):
|
for i, value in enumerate(values):
|
||||||
# Excel文件中单元格值长度不能超过32767
|
|
||||||
if value is None:
|
if value is None:
|
||||||
continue
|
continue
|
||||||
if isinstance(value, str) and len(value) > 32767:
|
if isinstance(value, str) and len(value) > 32767:
|
||||||
|
# Excel文件中单元格值长度不能超过32767
|
||||||
values[i] = value[:32767]
|
values[i] = value[:32767]
|
||||||
return values
|
return values
|
||||||
|
|
||||||
|
|
||||||
def export_all(format, datas):
|
def export_all(format, datas):
|
||||||
|
"""
|
||||||
|
将所有结果数据导出到一个文件
|
||||||
|
|
||||||
|
:param format: 导出文件的格式
|
||||||
|
:param datas: 待导出的结果数据
|
||||||
|
"""
|
||||||
format = check_format(format, len(datas))
|
format = check_format(format, len(datas))
|
||||||
dpath = check_dpath()
|
dpath = check_dpath()
|
||||||
timestamp = get_timestamp()
|
timestamp = get_timestamp()
|
||||||
@@ -303,3 +317,7 @@ def get_timestamp():
|
|||||||
|
|
||||||
def get_classname(clsobj):
|
def get_classname(clsobj):
|
||||||
return clsobj.__class__.__name__
|
return clsobj.__class__.__name__
|
||||||
|
|
||||||
|
|
||||||
|
def python_version():
|
||||||
|
return sys.version
|
||||||
|
|||||||
Reference in New Issue
Block a user