Exemplo n.º 1
0
def add_project():
    '''
    添加项目
    :return:
    '''
    form = PojForm()
    if request.method == "POST":
        if form.validate_on_submit():
            uid = current_user.id
            poj = ProjectModel(name=form.name.data,
                               rootdomain=form.rootdomain.data,
                               note=form.note.data,
                               uid=uid,
                               utime=datetime.now())
            db.session.add(poj)
            db.session.commit()
            pdomain = ProjectDomainModel(domain=form.rootdomain.data,
                                         pid=poj.id,
                                         note="项目根域名",
                                         uid=uid,
                                         utime=datetime.now())
            db.session.add(pdomain)
            db.session.commit()
            flash(message="项目添加成功")
        else:
            flash_errors(form)

    return render_template("add_project.html", form=form)
Exemplo n.º 2
0
def register():

    form = RegisterForm()
    if form.validate_on_submit() and form.password.data == form.password2.data:
        user = UserModel(email=form.email.data,
                         name=form.username.data,
                         password=form.password.data)
        db.session.add(user)
        db.session.commit()
        flash("注册成功")
        return redirect(url_for('auth.login'))
    else:
        flash_errors(form)
    return render_template('/register.html', form=form)
Exemplo n.º 3
0
def login():

    form = LoginForm()
    if form.validate_on_submit():
        user = UserModel.query.filter_by(email = form.email.data).first()
        if user is not None and user.verify_password(form.password.data):
            login_user(user, form.remember_me.data) #记录登录IP和时间
            db.session.add(UserLoginInfoModel(uid=current_user.id, ip=request.remote_addr, ltime=datetime.now()))
            db.session.commit()
            return redirect(request.args.get('next') or url_for('main.index'))
    else:
        flash_errors(form)

    return render_template('/login.html', form=form)
Exemplo n.º 4
0
def user():
    uli = UserLoginInfoModel.query.filter(UserLoginInfoModel.uid == current_user.id).order_by(UserLoginInfoModel.ltime.desc()).limit(10)
    form = PwdForm()
    if request.method =='POST':
        if form.validate_on_submit():
            user = UserModel.query.filter_by(id=current_user.id).first()
            user.password=form.newpwd2.data
            db.session.add(user)
            db.session.commit()
            logout_user()
            flash('修改成功,请重新登录。')
            return redirect(url_for("auth.login"))
        else:
            flash_errors(form)
    return render_template("users.html", tables = uli, form=form)
Exemplo n.º 5
0
def edit_poj(id):
    '''
    编辑项目
    :param id:
    :return:
    '''
    form = PojForm()
    project = ProjectModel.query.filter(
        ProjectModel.id == id, ProjectModel.uid == current_user.id).first()
    if project is not None:
        if request.method == "POST":
            if form.validate_on_submit():
                project.name = form.name.data
                project.rootdomain = form.rootdomain.data
                project.note = form.note.data
                db.session.commit()
                flash(message="修改成功.")
            else:
                flash_errors(form)
    else:
        flash(message="项目不存在")

    return render_template("edit_project.html", form=form, data=project)
Exemplo n.º 6
0
def index():
    '''
    home page route
    :return:index.html
    '''

    form_groups = {
        'assert': AssetForm(),
        'site': SiteForm(),
        'ip': IpForm(),
        'ip_port': IPPortForm()
    }
    pn = int(request.args.get("pn", 1))
    q = request.args.get("q", '')
    add_type = request.args.get("type", None)
    paginate = AssertAddLogModel.query.filter(
        AssertAddLogModel.uid == current_user.id).paginate(pn, 10, False)
    logs = paginate.items

    if request.method == "POST":
        if form_groups['assert'].validate_on_submit():

            value = form_groups['assert'].domain.data
            asset_import.delay(value, current_user.id)
            model = AssertAddLogModel(uid = current_user.id, value = value,\
                                      addtime = datetime.now(), type = 'assert',\
                                      note = form_groups['assert'].note.data)
            db.session.add(model)
            db.session.commit()
            flash(message="资产导入成功")

        elif form_groups['site'].validate_on_submit():
            value = form_groups['site'].url.data
            site_crawler.delay(value, current_user.id)
            model = AssertAddLogModel(uid = current_user.id, value = value,\
                                      addtime = datetime.now(), type = 'site',\
                                      note = form_groups['site'].note.data)
            db.session.add(model)
            db.session.commit()
            flash(message='网站添加成功')

        elif form_groups['ip'].validate_on_submit():
            value = form_groups['ip'].ip.data
            port_crawler.delay(value)
            model = AssertAddLogModel(uid=current_user.id, value=value, \
                                      addtime=datetime.now(), type='IP', \
                                      note=form_groups['ip'].note.data)
            db.session.add(model)
            db.session.commit()
            flash(message='IP添加成功')

        elif form_groups['ip_port'].validate_on_submit():
            value = form_groups['ip_port'].target.data + ":" + str(
                form_groups['ip_port'].port.data)
            # port_crawler.delay(form_groups['ip_port'].ip.data, [form_groups['ip_port'].port])
            model = AssertAddLogModel(uid=current_user.id, value=value, \
                                      addtime=datetime.now(), type='IP-Port', \
                                      note=form_groups['ip_port'].note.data)
            db.session.add(model)
            db.session.commit()
            flash(message="IP端口添加成功")

        elif add_type is not None:

            flash_errors(form_groups[add_type])

    return render_template('index.html',
                           form_groups=form_groups,
                           tables=logs,
                           pagination=paginate,
                           q=q,
                           pn=pn)