fuzzers.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:afl-mothership 作者: afl-mothership 项目源码 文件源码
def register():
    hostname = request.args.get('hostname')
    master = request.args.get('master')

    if not master:
        campaign = get_best_campaign()
        if not campaign:
            return 'No active campaigns', 404
        instance = models.FuzzerInstance.create(hostname=hostname)
        instance.start_time = time.time()
        campaign.fuzzers.append(instance)
        campaign.commit()
    else:
        campaign = models.Campaign.get(id=master)
        if not campaign:
            return 'Could not find specified campaign', 404
        if campaign.fuzzers.filter_by(master=True).first():
            return 'Campaign already has a master', 400
        instance = models.FuzzerInstance.create(hostname=hostname, master=True)
        instance.start_time = time.time()
        campaign.fuzzers.append(instance)
        campaign.commit()

    # avoid all hosts uploading at the same time from reporting at the same time
    deviation = random.randint(15, 30)
    return jsonify(
        id=instance.id,
        name=secure_filename(instance.name),
        program=campaign.executable_name,
        program_args=campaign.executable_args.split(' ') if campaign.executable_args else [],  # TODO: add support for spaces
        args=campaign.afl_args.split(' ') if campaign.afl_args else [],

        campaign_id=campaign.id,
        campaign_name=secure_filename(campaign.name),

        download=request.host_url[:-1] + url_for('fuzzers.download', campaign_id=campaign.id),
        submit=request.host_url[:-1] + url_for('fuzzers.submit', instance_id=instance.id),
        submit_crash=request.host_url[:-1] + url_for('fuzzers.submit_crash', instance_id=instance.id),
        upload=request.host_url[:-1] + url_for('fuzzers.upload', instance_id=instance.id),
        upload_in=current_app.config['UPLOAD_FREQUENCY'] + deviation
    )
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号