예제 #1
0
파일: app.py 프로젝트: yq1320/sec-admin
def query_task():
    res = mapper.list_task(page_size, request.args.get('next', 1),
                           request.args.get('target', ''),
                           request.args.get('state', ''),
                           request.args.get('result_state', ''),
                           request.args.get('handle_node', ''))
    return result.ok(__eval_page(res))
예제 #2
0
파일: app.py 프로젝트: yq1320/sec-admin
def cancel_tasks():
    task = json.loads(request.data)
    items = mapper.list_all_task(task.get('target', ''), task.get('state', ''),
                                 task.get('result_state', ''),
                                 task.get('handle_node', ''))
    for item in items:
        mapper.cancel_task(item.task_name, item.handle_node, item.state)
    return result.ok()
예제 #3
0
파일: app.py 프로젝트: yq1320/sec-admin
def add_dict():
    _dict = json.loads(request.data)
    try:
        mapper.add_dict(_dict['dict_key'], _dict['dict_value'],
                        _dict.get('remark', _dict['dict_key']))
    except Exception as e:
        return result.fail(msg='错误: ' + str(e))
    return result.ok()
예제 #4
0
파일: app.py 프로젝트: yq1320/sec-admin
def query_ip():
    res = mapper.list_asset(page_size, request.args.get('next', 1),
                            request.args.get('ip', ''),
                            request.args.get('region', ''),
                            request.args.get('port', ''),
                            request.args.get('tags', ''),
                            request.args.get('cdn', ''))
    return result.ok(__eval_page(res))
예제 #5
0
파일: app.py 프로젝트: yq1320/sec-admin
def login():
    user = json.loads(request.data)
    res = mapper.login(user_name=user.get('user_name'),
                       pass_word=user.get('pass_word'))
    if not res:
        return result.fail(msg='用户名或密码错误')
    else:
        session['user'] = res.to_json()
        return result.ok()
예제 #6
0
파일: app.py 프로젝트: yq1320/sec-admin
def count_asset():
    return result.ok({
        'asset':
        mapper.count_asset(),
        'running':
        mapper.count_task_by_state(enum.TaskState.RUNNING),
        'error':
        mapper.count_task_result_state(True),
        'handle':
        mapper.count_task_handle_state(enum.HandleState.UNTREATED)
    })
예제 #7
0
파일: app.py 프로젝트: yq1320/sec-admin
def view_plugin():
    plugin = json.loads(request.data)
    plugin = mapper.get_plugin(plugin['id'])
    if plugin is None:
        return result.fail(msg='脚本不存在')
    if plugin.publisher != enum.Env.HOST:
        plugin.script = requests.get(plugin.publisher + '/' +
                                     enum.Env.SCRIPT_SRC + plugin.script).text
    else:
        with open(enum.Env.SCRIPT_SRC + plugin.script, 'rt') as f:
            plugin.script = f.read()
    return result.ok(plugin.to_json())
예제 #8
0
파일: app.py 프로젝트: yq1320/sec-admin
def add_task():
    task = json.loads(request.data)
    mode = task.get('mode', 0)
    if mode == 1:
        hosts = mapper.list_all_asset(task.get('ip',
                                               ''), task.get('region', ''),
                                      task.get('port', ''),
                                      task.get('tags', ''))
    else:
        hosts = task.get('ips')
    scripts = task.get('scripts')
    mapper.add_new_tasks(scripts, mode, hosts)
    return result.ok()
예제 #9
0
파일: app.py 프로젝트: yq1320/sec-admin
def add_plugin():
    plugin = json.loads(request.data)
    file_name = plugin['title'] + '_' + str(uuid.uuid4())
    file_name = file_name.replace('.', '_')
    file_name += '.py'
    with open(enum.Env.SCRIPT_SRC + file_name, 'wt') as f:
        f.write(plugin['script'])
    if plugin.get('id') is not None:
        mapper.modify_plugin(plugin['id'], plugin['title'], plugin['remark'],
                             file_name, str(plugin.get('label', [])))
    else:
        mapper.add_plugin(plugin['title'], plugin['remark'], file_name,
                          str(plugin['label']))
    return result.ok()
예제 #10
0
파일: app.py 프로젝트: yq1320/sec-admin
def add_ip():
    asset = json.loads(request.data)
    ips = asset['ip'].split(',')
    for ip in ips:
        _ips = ip.strip().split('-')
        _size = len(_ips)
        try:
            IP(_ips[0])
        except Exception as _:
            _ips = [ip]
        if _size > 1 and '/' in ip:
            return result.fail(msg='can\'t eval "/" and "-" at the same time')
        pool.submit(_add_ip_in_thread, _ips, asset)
    return result.ok()
예제 #11
0
파일: app.py 프로젝트: yq1320/sec-admin
def query_user():
    res = mapper.list_user(page_size, request.args.get('next', 1),
                           request.args.get('user_name', ''),
                           request.args.get('type', ''),
                           request.args.get('state', ''))
    return result.ok(__eval_page(res))
예제 #12
0
파일: app.py 프로젝트: yq1320/sec-admin
def get_env():
    return result.ok({
        'redis': enum.Env.RDS_URL,
        'mq': '',
        'node_version': mapper.node_version()
    })
예제 #13
0
파일: app.py 프로젝트: yq1320/sec-admin
def list_breath():
    return result.ok(mapper.breath_info())
예제 #14
0
파일: app.py 프로젝트: yq1320/sec-admin
def query_dict():
    res = mapper.list_dict(page_size, request.args.get('next', 1),
                           request.args.get('dict_key', ''),
                           request.args.get('remark', ''))
    return result.ok(__eval_page(res))
예제 #15
0
파일: app.py 프로젝트: yq1320/sec-admin
def get_user():
    user = session.get('user')
    return result.ok(user) if user is not None else result.fail()
예제 #16
0
파일: app.py 프로젝트: yq1320/sec-admin
def query_plugin():
    res = mapper.list_plugin(page_size, request.args.get('next', 1),
                             request.args.get('title', ''))
    return result.ok(__eval_page(res))
예제 #17
0
파일: app.py 프로젝트: yq1320/sec-admin
def modify_pwd():
    user = json.loads(request.data)
    _user = session.get('user')
    res = mapper.modify_pwd(user_name=_user.get('user_name'),
                            new_pwd=user.get('new_pwd'))
    return result.ok() if res else result.fail(msg='用户不存在')
예제 #18
0
파일: app.py 프로젝트: yq1320/sec-admin
def treated_task():
    task = json.loads(request.data)
    mapper.treated_task(task.get('id'))
    return result.ok()
예제 #19
0
파일: app.py 프로젝트: yq1320/sec-admin
def del_task_by_query():
    task = json.loads(request.data)
    mapper.del_task_by_query(task.get('target', ''), task.get('state', ''),
                             task.get('result_state', ''),
                             task.get('handle_node', ''))
    return result.ok()
예제 #20
0
파일: app.py 프로젝트: yq1320/sec-admin
def del_task():
    task = json.loads(request.data)
    mapper.del_task_by_id(task.get('id', ''))
    return result.ok()
예제 #21
0
파일: app.py 프로젝트: yq1320/sec-admin
def del_dict():
    _dict = json.loads(request.data)
    mapper.del_dict(_dict['dict_key'])
    return result.ok()
예제 #22
0
파일: app.py 프로젝트: yq1320/sec-admin
def add_user():
    user = json.loads(request.data)
    res = mapper.add_user(user_name=user.get('user_name'),
                          pass_word=user.get('pass_word'),
                          type=user.get('type'))
    return result.ok() if res else result.fail(msg='用户已存在')
예제 #23
0
파일: app.py 프로젝트: yq1320/sec-admin
def del_user():
    user = json.loads(request.data)
    mapper.del_user(user_name=user.get('user_name'))
    return result.ok()
예제 #24
0
파일: app.py 프로젝트: yq1320/sec-admin
def cancel_task():
    task = json.loads(request.data)
    mapper.cancel_task(task.get('task_name'), task.get('handle_node'),
                       task.get('state'))
    return result.ok()
예제 #25
0
파일: app.py 프로젝트: yq1320/sec-admin
def modify_type():
    user = json.loads(request.data)
    res = mapper.modify_type(user_name=user.get('user_name'),
                             type=user.get('type'))
    return result.ok() if res else result.fail(msg='用户不存在')
예제 #26
0
파일: app.py 프로젝트: yq1320/sec-admin
def all_plugin():
    res = mapper.list_all_plugin(request.args.get('title', ''))
    return result.ok([_res.to_json() for _res in res])
예제 #27
0
파일: app.py 프로젝트: yq1320/sec-admin
def logout():
    session['user'] = None
    return result.ok()
예제 #28
0
파일: app.py 프로젝트: yq1320/sec-admin
def retry_scan():
    asset = json.loads(request.data)
    pool.submit(__update_ports, asset.get('ip'), flask_app)
    return result.ok()
예제 #29
0
파일: app.py 프로젝트: yq1320/sec-admin
def retry_task():
    task = json.loads(request.data)
    mapper.retry_task(task.get('id'))
    return result.ok()
예제 #30
0
파일: app.py 프로젝트: yq1320/sec-admin
def del_plugin():
    _dict = json.loads(request.data)
    mapper.del_plugin(_dict['id'])
    return result.ok()