97 lines
4.0 KiB
Python
97 lines
4.0 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# @Author : jeffzhang
|
|
# @Time : 18-5-15
|
|
# @File : settings.py
|
|
# @Desc : ""
|
|
|
|
from flask import Blueprint, render_template, request
|
|
from lib.mongo_db import connectiondb, db_name_conf
|
|
from fuxi.views.authenticate import login_check
|
|
from instance import config_name
|
|
|
|
settings = Blueprint('settings', __name__)
|
|
config_db = db_name_conf()['config_db']
|
|
|
|
|
|
# system-config
|
|
@settings.route('/system-config', methods=['GET', 'POST'])
|
|
@login_check
|
|
def config_view():
|
|
return render_template("system-config.html")
|
|
|
|
|
|
@settings.route('/advanced-option', methods=['GET', 'POST'])
|
|
@login_check
|
|
def option_view():
|
|
if request.method == "GET":
|
|
config_data = connectiondb(config_db).find_one({"config_name": config_name})
|
|
config_info = {
|
|
"poc_thread": config_data['poc_thread'],
|
|
"discovery_thread": config_data['discovery_thread'],
|
|
"subdomain_thread": config_data['subdomain_thread'],
|
|
"port_thread": config_data['port_thread'],
|
|
"auth_tester_thread": config_data['auth_tester_thread'],
|
|
"subdomain_dict_2": '\n'.join(config_data['subdomain_dict_2']),
|
|
"subdomain_dict_3": '\n'.join(config_data['subdomain_dict_3']),
|
|
"username_dict": '\n'.join(config_data['username_dict']),
|
|
"password_dict": '\n'.join(config_data['password_dict']),
|
|
"discovery_time": config_data['discovery_time'],
|
|
"port_list": ','.join('%s' % port for port in config_data['port_list']),
|
|
}
|
|
return render_template("advanced-option.html", config_info=config_info)
|
|
else:
|
|
# update thread config
|
|
if request.form.get("source") == "thread_settings":
|
|
update_config = {
|
|
"poc_thread": int(request.form.get('poc_thread')),
|
|
"discovery_thread": int(request.form.get('discovery_thread')),
|
|
"subdomain_thread": int(request.form.get('subdomain_thread')),
|
|
"port_thread": int(request.form.get('port_thread')),
|
|
"auth_tester_thread": int(request.form.get('auth_tester_thread')),
|
|
"discovery_time": request.form.get('discovery_time')
|
|
}
|
|
if connectiondb(config_db).update_one({'config_name': config_name}, {"$set": update_config}):
|
|
return "success"
|
|
else:
|
|
return "Warning"
|
|
# update subdomain_dict config
|
|
elif request.form.get("source") == "subdomain_dict":
|
|
update_config = {
|
|
"subdomain_dict_2": request.form.get('subdomain_dict_2').split('\n'),
|
|
"subdomain_dict_3": request.form.get('subdomain_dict_3').split('\n'),
|
|
}
|
|
if connectiondb(config_db).update_one({'config_name': config_name}, {"$set": update_config}):
|
|
return "success"
|
|
else:
|
|
return "Warning"
|
|
# update port_list config
|
|
elif request.form.get("source") == "port_list":
|
|
update_config = {
|
|
"port_list": request.form.get('port_list').split(','),
|
|
}
|
|
if connectiondb(config_db).update_one({'config_name': config_name}, {"$set": update_config}):
|
|
return "success"
|
|
else:
|
|
return "Warning"
|
|
|
|
elif request.form.get("source") == "auth":
|
|
update_config = {
|
|
"username_dict": request.form.get('username_list').split('\n'),
|
|
"password_dict": request.form.get('password_list').split('\n'),
|
|
}
|
|
|
|
if connectiondb(config_db).update_one({'config_name': config_name}, {"$set": update_config}):
|
|
return "success"
|
|
else:
|
|
return "Warning"
|
|
|
|
elif request.form.get("source") == "port_scan":
|
|
update_config = {
|
|
"port_list": request.form.get('port_list').split(','),
|
|
}
|
|
if connectiondb(config_db).update_one({'config_name': config_name}, {"$set": update_config}):
|
|
return "success"
|
|
else:
|
|
return "Warning"
|