PenetrationTestingScripts/Weak_Password/Fuxi-Scanner/fuxi/views/settings.py

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"