Example #1
0
def do_login():
  global act_user
  print request.get('REMOTE_ADDR'), ' connected'
  forgot = None
  username = request.forms.get('username')
  password = request.forms.get('password')
  forgot = request.forms.get('forget_passwd')

  if forgot:
    print 'sending password to %s'%(username,)
    mail_passwd_to(username)
    return "密码发送至,请查看邮箱并返回登录页面重新登录。。。"

  isvalid, isadmin = validate_from_db(username, password)
  print isvalid, isadmin
  if isvalid:
    act_user = User(username, password, isadmin)
    if username not in daily_running_stat.keys():
      daily_running_stat[username] = 0
    now = datetime.now()
    login_timestamps[username] = "%02d:%02d:%02d"%(now.hour, now.minute, now.second)
    #if isadmin == User.IS_ADMIN:
    #  redirect('/index/admin')
    #else:
    redirect('/index/%s'%username)
  else:
    redirect('/')
Example #2
0
    def handle(self, request):
        response = request.get('previous', {})
        if not 'lang' in request:
            lang = detect(request['text'])
            request['lang'] = lang
            response['lang'] = lang
        last_time = time.time()
        times = {}

        ordered_tasks = _resolve(request, response, self.services)
        for task, name in ordered_tasks:
            # None happens when the field is already in the response
            if name is not None:
                service = self.services[task][name]
                response[task] = service.run(request, response)
                now = time.time()
                times[task] = now - last_time
                last_time = now

        if request.get('debug', False):
            response['debug'] = {
                'timing': times,
                'task-ordering': ordered_tasks
            }

        # Some intermediate tasks may have not been explicitly asked
        # by the client
        keys_to_keep = [item['task'] for item in request['tasks']] + ['debug']
        return {k: v for k, v in response.items() if k in keys_to_keep}
Example #3
0
def _build_wsgi_request_data(request):
    request_data = {
        'url': wsgiref.util.request_uri(request),
        'user_ip': _wsgi_extract_user_ip(request),
        'method': request.get('REQUEST_METHOD'),
    }
    if 'QUERY_STRING' in request:
        request_data['GET'] = urlparse.parse_qs(request['QUERY_STRING'], keep_blank_values=True)
        # Collapse single item arrays
        request_data['GET'] = dict((k, v[0] if len(v) == 1 else v) for k, v in request_data['GET'].items())

    request_data['headers'] = _extract_wsgi_headers(request.items())

    try:
        length = int(request.get('CONTENT_LENGTH', 0))
    except ValueError:
        length = 0
    input = request.get('wsgi.input')
    if length and input and hasattr(input, 'seek') and hasattr(input, 'tell'):
        pos = input.tell()
        input.seek(0, 0)
        request_data['body'] = input.read(length)
        input.seek(pos, 0)

    return request_data
Example #4
0
def getClientInfo(request):
    idSession = ''
    remoteCheck = ''
    listId = str(request.get('HTTP_COOKIE')).split(';')
    for item in listId:
        if item.startswith('beaker.session.id'):
            idSession = item[18:]
        if item.startswith(' beaker.session.id'):
            idSession = item[19:]

        if item.startswith('remoteCheck'):
            remoteCheck = item[12:]
        if item.startswith(' remoteCheck'):
            remoteCheck = item[13:]

    clientInfo = {}
    clientInfo['user'] = str(request.get('beaker.session').get('remoteUser'))
    clientInfo['ip'] = str(request.get('REMOTE_ADDR'))
    clientInfo['session'] = str(idSession)
    clientInfo['browser'] = str(request.get('HTTP_USER_AGENT'))
    clientInfo['remoteCheck'] = remoteCheck

    logging.debug(str(clientInfo))
    logging.debug('')

    return clientInfo
Example #5
0
def _build_wsgi_request_data(request):
    request_data = {
        'url': wsgiref.util.request_uri(request),
        'user_ip': _wsgi_extract_user_ip(request),
        'method': request.get('REQUEST_METHOD'),
    }
    if 'QUERY_STRING' in request:
        request_data['GET'] = parse_qs(request['QUERY_STRING'], keep_blank_values=True)
        # Collapse single item arrays
        request_data['GET'] = dict((k, v[0] if len(v) == 1 else v) for k, v in request_data['GET'].items())

    request_data['headers'] = _extract_wsgi_headers(request.items())

    try:
        length = int(request.get('CONTENT_LENGTH', 0))
    except ValueError:
        length = 0
    input = request.get('wsgi.input')
    if length and input and hasattr(input, 'seek') and hasattr(input, 'tell'):
        pos = input.tell()
        input.seek(0, 0)
        request_data['body'] = input.read(length)
        input.seek(pos, 0)

    return request_data
Example #6
0
    def check(): 
        params = request.json
        manipulateId = int(params['manipulateId'])
        if manipulateId < 0 or manipulateId > 4:
            print("存在しない命令です。")
            msg = "存在しない命令です。"
            target_url = ''
            request.get(target_url, resStatus)

        else:
            return func()
Example #7
0
 def api(key=None):
     """
     API entry point
     """
     if not request.get('auth_keys'):
         request['auth_keys'] = Server.load_keys()
     auth_key = request.GET.get("key")
     if Server().is_allowed_request(auth_key, request.get('auth_keys')):
         return template('Server got valid key - {{key}}</b>!',
                         key=auth_key)
     else:
         return template('Server got NOT VALID key - {{key}}</b>!',
                         key=auth_key)
Example #8
0
def do_login():
  global act_user
  print request.get('REMOTE_ADDR'), ' connected'
  forgot = None
  username = request.forms.get('username')
  password = request.forms.get('password')

  isvalid, user = validate_from_db(username, password)
  if isvalid:
    #act_user = user
    set_act_user(username)
    redirect('/index')
  else:
    redirect('/')
Example #9
0
File: main.py Project: fseek/PyAste
def newPaste():
    text = request.POST.get('text')
    lang = onlyAlphaNum(request.POST.get('lang', 'raw'))
    ip = request.header.get('X-Real-IP', request.get("REMOTE_ADDR"))

    #Hash
    h = baseHash.copy()
    h.update(ip)
    h.update(datetime.datetime.utcnow().isoformat())

    name = base64.urlsafe_b64encode(h.digest())[:-1]

    for i in range(0, 42):
        if not os.path.exists("pastes/" + name[0:i] + ".txt"):
            name = name[0:i]
            break

    #lets start with the raw file
    fileName = "pastes/" + name
    f = open(fileName + ".txt", 'w')
    f.write(text)
    f.close()

    out = templates.get_template("view-paste.tpl").render(code=text, lang=lang)
    f = open(fileName + ".html", 'w')
    f.write(out)
    f.close()
    return name
Example #10
0
def solve_dabblet():
    session_id = request.get_cookie('session_id') #TODO: decorator-ify session
    session = get_session(session_id)
    response.set_cookie('session_id', session['id'])

    dabblet_id = int(request.POST['dabblet_id'])
    choice_id  = int(request.POST['choice_id'])

    dabblet = Dabblet.get(id=dabblet_id)
    if choice_id < 0:
        choice = None
    else:
        choice  = DabChoice.get(id=choice_id)

    sol = DabSolution(dabblet=dabblet,
                      choice=choice,
                      solver_ip=request.get('REMOTE_ADDR'),
                      solver_index=session.get('cur_index', 0),
                      date_solved=datetime.now())
    sol.save()
    # replace?

    view_count = DabSolution.select().count()
    pass_count = DabSolution.select().where(choice_id=None).count()
    return { "view_count": view_count,
             "solution_count": view_count-pass_count }
Example #11
0
def logout():
    global user_logged_in
    user_logged_in = False;

    token = request.get("token")
    requests.post('https://accounts.google.com/o/oauth2/revoke', params={'token': token}, headers = {'content-type': 'application/x-www-form-urlencoded'})
    bottle.redirect("/")
Example #12
0
def upload_images_route():
    """
    Upload images

    Request params:
    * Files uploaded as "multipart/form-data"

    Field names don't matter. Multiple files are supported
    """
    user = request.get('REMOTE_USER')

    files = [
        item.file for _, item in request.POST.items()
        if isinstance(item, FileUpload)
    ]
    try:
        assert files, "Files were not provided"
        if len(list(get_user_images(user))) + len(files) > max_images_per_uer:
            raise MaxImageLimitError('You cannot upload more than %s images' %
                                     max_images_per_uer)
        urls = upload_images(user, files)
        return {'data': urls}
    except (AssertionError, MaxImageLimitError) as e:
        return ErrorResponse(e, 400)
    except FileTooLargeError as e:
        return ErrorResponse(e, 413)
Example #13
0
File: main.py Project: fseek/PyAste
def newPaste():
    text = request.POST.get('text')
    lang = onlyAlphaNum(request.POST.get('lang','raw'))
    ip = request.header.get('X-Real-IP',request.get("REMOTE_ADDR"))

    #Hash
    h = baseHash.copy()
    h.update(ip)
    h.update(datetime.datetime.utcnow().isoformat())
    
    name = base64.urlsafe_b64encode(h.digest())[:-1]

    for i in range(0,42):
        if not os.path.exists("pastes/"+name[0:i]+".txt"):
            name = name[0:i]
            break
    

    #lets start with the raw file
    fileName = "pastes/"+name
    f = open(fileName+".txt",'w')
    f.write(text)
    f.close()

    out = templates.get_template("view-paste.tpl").render(code=text,lang=lang)
    f = open(fileName+".html",'w')
    f.write(out)
    f.close()
    return name
Example #14
0
def assert_not_banned(board):
    ip_addr = request.get("REMOTE_ADDR", "0.0.0.0")
    if IpBan.ip_is_banned(ip_addr):
        raise HTTPResponse(
            template("message.tpl", message="You are banned", redirect=url("board", board_name=board.short_name)),
            status=403,
        )
Example #15
0
def app():
    if request.method == "GET":
        account = request.get("account")
        if account:
            redirect("/")

        return template("login.html")
    elif request.method == "POST":
        username = request.POST["username"]
        password = request.POST["password"]
        if len(username) == 0:
            return "无效账号"
        if len(password) == 0:
            return "无效密码"
        account = checkAccount2(username)
        if account:
            if account.validPassword(password):
                print dir(response)
                response.set_cookie("userid", str(account.id),
                                    path="/")  # 坑!path 必须指定
                redirect("/")
            else:
                return "密码错误"
        else:
            return "账号不存在"
Example #16
0
 def _log_to_logger(*args, **kwargs):
     request_time = datetime.now().strftime("%d/%b/%Y %H:%M:%S")
     logger.info('%s - - [%s] "%s %s %s" %d' %
                 (request.remote_addr, request_time,
                  request.method, request.urlparts.path,
                  request.get('SERVER_PROTOCOL'), response.status_code))
     return fn(*args, **kwargs)
Example #17
0
def app():
    account = request.get("account")
    nodes = []
    if account:
        nodes = findNodes(account.id)
        nodes = map(loadNode, nodes)
    return {"account":account, "nodes": nodes}
Example #18
0
def create_extension_route():
    """
    Create extension

    Request params:
    * GithubUrl: (string)
    * Name: (string) extension display name
    * Description: (string)
    * DeveloperName: (string)
    * Images: (list) list of image URLs

    Response:
    * Extension object
    """
    user = request.get('REMOTE_USER')
    data = request.json

    try:
        assert data.get('Name'), 'Name cannot be empty'
        assert data.get('Description'), 'Description cannot be empty'
        assert data.get('DeveloperName'), 'DeveloperName cannot be empty'
        assert data.get('GithubUrl'), 'GithubUrl cannot be empty'
        assert isinstance(data.get('Images'),
                          list), 'Images must be a list of URLs'
        # pylint: disable=len-as-condition
        assert 0 < len(
            data['Images']
        ) < 6, 'You must upload at least 1 (max 5) screenshot of your extension'

        project_path = get_project_path(data['GithubUrl'])
        info = get_repo_info(project_path)
        try:
            versions = get_json(project_path, 'master', 'versions')
            versions_only = [v['required_api_version'] for v in versions]
            commit_or_branch = get_latest_version_commit(versions)
        except JsonFileNotFoundError:
            commit_or_branch = 'master'
            versions_only = ['^1.0.0']

        manifest = get_json(project_path, commit_or_branch, 'manifest')
        validate_manifest(manifest)

        for image_url in data['Images']:
            validate_image_url(image_url)

        data = put_extension(User=user,
                             GithubUrl=data['GithubUrl'],
                             ProjectPath=project_path,
                             Name=data['Name'],
                             Description=data['Description'],
                             DeveloperName=data['DeveloperName'],
                             Images=data['Images'],
                             SupportedVersions=versions_only,
                             GithubStars=info['stargazers_count'],
                             Published=True)
        return {'data': data}
    except (AssertionError, ImageUrlValidationError, InvalidGithubUrlError,
            HTTPError, ProjectValidationError,
            ExtensionAlreadyExistsError) as e:
        return ErrorResponse(e, 400)
def check_server_index():
    if immediate_checker.whitelist_ips and request.get('REMOTE_ADDR') not in immediate_checker.whitelist_ips:
        return { "result": -1, "metadata": "Host IP not allowed" }

    try: 
        data = request.json       
    except:
        result = { "result": -1, "metadata": "Invalid parameters sent" }

    method = data.pop('method', 'test')
    test_type = data.pop('test_type', None)
    schedule = data.pop('schedule', None)
    metadata = data.pop('metadata', None)

    start = time.time()
    try: 
        result = immediate_checker.check(test_type, schedule, metadata, **data)

        metadata = result["metadata"]
        try:
            if not isinstance(metadata, basestring): metadata = metadata["text"]
        except:
            metadata = json.dumps(metadata)
        result = { "result": result["result"], "metadata": metadata, "duration": "%0.2f" % result["result_duration"] }
    except:
        logging.getLogger("checker").error("Unkown error: %s" % traceback.format_exc())
        result = { "result": -1, "metadata": "Unknown error", "duration": "%0.2f" % (time.time() - start) }

    return result
Example #20
0
def get_user_ip():
    if 'HTTP_X_FORWARDED_FOR' in request:
        # on heroku, there is a proxy
        ip_adds = request.get('HTTP_X_FORWARDED_FOR').split(",")
        ip = ip_adds[0]
    else:
        ip = request.environ.get('REMOTE_ADDR')
    return ip
Example #21
0
    def sessionstart():
        """
        Start a new session.
        """
        username = request.get('username', None)

        session_manager.session_start(username)
        return {}
Example #22
0
def flag():
    postValue = request.POST.decode('utf-8')
    remoteip = request.get('REMOTE_ADDR')
    flag = request.POST.get('flag')
    ip = request.POST.get('ip')
    if not (ip is None):
        remoteip = ip
    return 'success %s %s' % insert_flag(remoteip, flag)
Example #23
0
 def _log_to_logger(*args, **kwargs):
     request_time = datetime.now().strftime("%d/%b/%Y %H:%M:%S")
     logger.info('%s - - [%s] "%s %s %s" %d' % (request.remote_addr,
                                     request_time,
                                     request.method,
                                     request.urlparts.path,
                                     request.get('SERVER_PROTOCOL'),
                                     response.status_code))
     return fn(*args, **kwargs)
Example #24
0
def admin_del_article(db, id, clean=None):
	prepare_admin(request)
	oldurl = request.get("HTTP_REFERER", "/admin")
	if clean and clean.strip() == "clean": 
		ok = blogs.remove_article(db, id)
	else: 
		ok = blogs.update_article(db, id, status=status_deleted)
	if ok: redirect(oldurl)
	else: return HTTPError(404, "Article not found")
def tasks_report(task_id, report_format="json"):
    formats = {
        "json": "report.json",
        "html": "report.html",
        "htmlsumary": "summary-report.html",
        "pdf": "report.pdf",
        "maec": "report.maec-1.1.xml",
        "metadata": "report.metadata.xml",
    }

    bz_formats = {
        "all": {
            "type": "-",
            "files": ["memory.dmp"]
        },
        "dropped": {
            "type": "+",
            "files": ["files"]
        },
    }

    tar_formats = {
        "bz2": "w:bz2",
        "gz": "w:gz",
        "tar": "w",
    }

    if report_format.lower() in formats:
        report_path = os.path.join(CUCKOO_ROOT, "storage", "analyses",
                                   "%d" % task_id, "reports",
                                   formats[report_format.lower()])
    elif report_format.lower() in bz_formats:
        bzf = bz_formats[report_format.lower()]
        srcdir = os.path.join(CUCKOO_ROOT, "storage", "analyses",
                              "%d" % task_id)
        s = StringIO()

        # By default go for bz2 encoded tar files (for legacy reasons.)
        tarmode = tar_formats.get(request.get("tar"), "w:bz2")

        tar = tarfile.open(fileobj=s, mode=tarmode)
        for filedir in os.listdir(srcdir):
            if bzf["type"] == "-" and filedir not in bzf["files"]:
                tar.add(os.path.join(srcdir, filedir), arcname=filedir)
            if bzf["type"] == "+" and filedir in bzf["files"]:
                tar.add(os.path.join(srcdir, filedir), arcname=filedir)
        tar.close()
        response.content_type = "application/x-tar; charset=UTF-8"
        return s.getvalue()
    else:
        return HTTPError(400, "Invalid report format")

    if os.path.exists(report_path):
        return open(report_path, "rb").read()
    else:
        return HTTPError(404, "Report not found")
Example #26
0
def add_visits(change):
    data = read_visits()
    if 'unique' not in data.keys():
        data['unique'] = dict()
    if 'visit' not in data.keys():
        data['visit'] = 0
    if change:
        browser_agent = request.get('HTTP_USER_AGENT')
        data['visit'] += 1
        ip = request.get('REMOTE_ADDR')
        if ip not in data['unique'].keys():
            data['unique'][ip] = list()
        data['unique'][ip].append([dt.ctime(dt.now() + timedelta(hours=5)), browser_agent])
        # else:
        #     data['unique'][ip][dt.ctime(dt.now() + timedelta(hours=5))].append(browser_agent)
    # date fromm string to datetime: dt.strptime(time, "%a %b %d %X %Y")
    # print(request.get('REMOTE_ADDR'), data)
    write_visits(data)
    return data
Example #27
0
def redirect():
    redirect_url = request.GET.get('url', '/')
    code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
    response = HTTPResponse("", status=code, Location=redirect_url)
    raise response


    return {'title': 'Mozilla Presence',
            'session': request.environ.get('beaker.session'),
            'redirect': request.GET['redirect']}
Example #28
0
def register_server():
    servername = request.forms.get('name')
    serveraddr = request.get('REMOTE_ADDR')
    serverport = request.forms.get('port')
    
    server = Server(name = servername, address = serveraddr, port = serverport)
    session.add(server)
    session.commit()

    return {'key': server.key}
Example #29
0
def register_server():
    servername = request.forms.get('name')
    serveraddr = request.get('REMOTE_ADDR')
    serverport = request.forms.get('port')

    server = Server(name=servername, address=serveraddr, port=serverport)
    session.add(server)
    session.commit()

    return {'key': server.key}
def logout():

    token = request.get("token")
    requests.post('https://accounts.google.com/o/oauth2/revoke', params={'token': token},
                  headers={'content-type': 'application/x-www-form-urlencoded'})

    global userSignedIn
    userSignedIn = False

    bottle.redirect("http://localhost:8080/")
Example #31
0
def track_location_post():
    try:
        #collect the location and time from the user
        #these should work per the bottlepy docs, not sure what is up
        #geoX = request.forms.geoX
        #geoY = request.forms.geoY
        #time = request.forms.time

        #these do
        geoX = request.get('HTTP_GEOX')
        geoY = request.get('HTTP_GEOY')
        time = request.get('HTTP_TIME')
        who = request.get('HTTP_WHO')
        
        print "got the following from the post: geoX=%s, geoY=%s, time=%s, who=%s" % (geoX, geoY, time, who)
    except NameError, e:
        #ignore for now
        print "form posted missing fields: %s" % e
        return "required fields missing"
Example #32
0
def redirect(url, code=None):
    """ Aborts execution and causes a 303 or 302 redirect, depending on
        the HTTP protocol version. """
    if not code:
       	code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
    res = response.copy(cls=HTTPResponse)
    res.status = code
    res.body = ""
    res.set_header('Location', url)
    raise res
def wangmengjie():
    ip = request.get("REMOTE_ADDR")
    with open('/work/spider/html/ip/log', 'a+') as f:
        f.write("%s\t%s\t%s\r\n"%(ip, str(datetime.datetime.now()), int(time.time())))
        for k,v in request.headers.iteritems():
            f.write('%s\t%s\r\n'%(k,v))
        f.write('\r\n')
    with open('/work/spider/html/mobile/index.html') as f:
        html = f.read()
    return html
Example #34
0
def wangmengjie():
    ip = request.get("REMOTE_ADDR")
    with open('/work/spider/html/ip/log', 'a+') as f:
        f.write("%s\t%s\t%s\r\n" %
                (ip, str(datetime.datetime.now()), int(time.time())))
        for k, v in request.headers.iteritems():
            f.write('%s\t%s\r\n' % (k, v))
        f.write('\r\n')
    with open('/work/spider/html/mobile/index.html') as f:
        html = f.read()
    return html
Example #35
0
def redirect():
    redirect_url = request.GET.get('url', '/')
    code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
    response = HTTPResponse("", status=code, Location=redirect_url)
    raise response

    return {
        'title': 'Mozilla Presence',
        'session': request.environ.get('beaker.session'),
        'redirect': request.GET['redirect']
    }
Example #36
0
    def wrapper(*args, **kwargs):
        if hasattr(callback,
                   'auth_required') and not request.get('REMOTE_USER'):
            try:
                decoded = parse_token(request.get_header('Authorization'))
                assert decoded['sub']
            except AuthError as e:
                return ErrorResponse(e, 401)

            request['REMOTE_USER'] = decoded['sub']

        return callback(*args, **kwargs)
Example #37
0
def delete_extension_route(id):
    """
    Deletes extension by ID
    """
    user = request.get('REMOTE_USER')
    try:
        ext = _verify_ext_auth(id)
        delete_images(ext['Images'], user)
        delete_extension(id, user=user)
        response.status = 204
    except (ExtensionDoesntBelongToUserError, AuthError) as e:
        return ErrorResponse(e, 401)
Example #38
0
def ist_berechtigt(uid):
	try:
		ip = request.get('REMOTE_ADDR')
		log_row = engine.execute(db_benutzer.select().where((db_benutzer.c.uid == uid) & (db_benutzer.c.ip == ip))).fetchone()
		zuletzt_bewertet = log_row.voted
		differenz = datetime.now() - zuletzt_bewertet # vergangene Zeit seit der letzten Bewertung des Satzes
		if differenz.days > 1: # länger als 24 Stunden
			return True
		else:
			return False
	except:
		return True # wenn kein Eintrag in der Datenbank gefunden (oder irgend ein Fehler mit der Datenbankverbindung)
Example #39
0
def redirectRelative(url, code=None):
    """ Aborts execution and causes a 303 or 302 redirect, depending on
        the HTTP protocol version. """
    if code is None:
        code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
	if config['webroot']:
		url = config['webroot'] + url
	if len(url) > 1:
		url = url.rstrip('/').lstrip('/')
    res = bottle.HTTPResponse("", status=code, Location=url)
    if bottle.response._cookies:
        res._cookies = response._cookies
    raise res
Example #40
0
def redirectRelative(url, code=None):
    """ Aborts execution and causes a 303 or 302 redirect, depending on
        the HTTP protocol version. """
    if code is None:
        code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
        if config['webroot']:
            url = config['webroot'] + url
        if len(url) > 1:
            url = url.rstrip('/').lstrip('/')
    res = bottle.HTTPResponse("", status=code, Location=url)
    if bottle.response._cookies:
        res._cookies = response._cookies
    raise res
Example #41
0
def server_static(filename):
    entries = find_packages(packages())
    for x in entries:
        f = x.relfn.replace("\\", "/")
        if f == filename:
            if request.get('HTTP_SERVER', '').lower().startswith('nginx'):
                response.headers.update({
                    'X-Accel-Redirect': x.root + '/' + filename,
                    'Content-Type': mimetypes.guess_type(filename)[0],
                })
                return None
            return static_file(filename, root=x.root, mimetype=mimetypes.guess_type(filename)[0])

    return HTTPError(404)
def tasks_report(task_id, report_format="json"):
    formats = {
        "json": "report.json",
        "html": "report.html",
        "htmlsumary": "summary-report.html",
        "pdf": "report.pdf",
        "maec": "report.maec-1.1.xml",
        "metadata": "report.metadata.xml",
    }

    bz_formats = {
        "all": {"type": "-", "files": ["memory.dmp"]},
        "dropped": {"type": "+", "files": ["files"]},
    }

    tar_formats = {
        "bz2": "w:bz2",
        "gz": "w:gz",
        "tar": "w",
    }

    if report_format.lower() in formats:
        report_path = os.path.join(CUCKOO_ROOT, "storage", "analyses",
                                   "%d" % task_id, "reports",
                                   formats[report_format.lower()])
    elif report_format.lower() in bz_formats:
            bzf = bz_formats[report_format.lower()]
            srcdir = os.path.join(CUCKOO_ROOT, "storage",
                                  "analyses", "%d" % task_id)
            s = StringIO()

            # By default go for bz2 encoded tar files (for legacy reasons.)
            tarmode = tar_formats.get(request.get("tar"), "w:bz2")

            tar = tarfile.open(fileobj=s, mode=tarmode)
            for filedir in os.listdir(srcdir):
                if bzf["type"] == "-" and filedir not in bzf["files"]:
                    tar.add(os.path.join(srcdir, filedir), arcname=filedir)
                if bzf["type"] == "+" and filedir in bzf["files"]:
                    tar.add(os.path.join(srcdir, filedir), arcname=filedir)
            tar.close()
            response.content_type = "application/x-tar; charset=UTF-8"
            return s.getvalue()
    else:
        return HTTPError(400, "Invalid report format")

    if os.path.exists(report_path):
        return open(report_path, "rb").read()
    else:
        return HTTPError(404, "Report not found")
Example #43
0
def get_ipaddress():
	"""Return the IP address of the visitor to the calling function."""
	try:
		if request.headers.get('Cf-Connecting-Ip') == None \
		and request.headers.get('X-Forwarded-For') == None:
			raise TypeError
		elif request.headers.get('Cf-Connecting-Ip') != None:
			return str(IP(request.headers.get('Cf-Connecting-Ip')))
		else:
			return str(IP(request.headers.get('X-Forwarded-For')))
	except TypeError:
		return str(IP(request.get('REMOTE_ADDR')))
	except ValueError:
		return "Unable to determine IP address, or IP address provided was invalid"
Example #44
0
def get_ipaddress():
    """Return the IP address of the visitor to the calling function."""
    try:
        if request.headers.get('Cf-Connecting-Ip') == None \
        and request.headers.get('X-Forwarded-For') == None:
            raise TypeError
        elif request.headers.get('Cf-Connecting-Ip') != None:
            return str(IP(request.headers.get('Cf-Connecting-Ip')))
        else:
            return str(IP(request.headers.get('X-Forwarded-For')))
    except TypeError:
        return str(IP(request.get('REMOTE_ADDR')))
    except ValueError:
        return "Unable to determine IP address, or IP address provided was invalid"
Example #45
0
def getAuth():
    account = request.get("account")

    result = {}
    result["error"] = 0
    result["errmsg"] = ""

    if account:
        result["error"] = 0
        result["errmsg"] = "ok"
    else:
        result["error"] = -1
        result["errmsg"] = "not login"

    return json.dumps(result)
Example #46
0
def select():
    start_time = time.time()
    q = request.get('q','')

    response_header = {
        'status': 0, # except if there's an error
        'params': dict(request.query),
        'QTime' : time.time() - start_time
    }
    response = {
        'numFound': 0,
        'start': 0, # we don't do paged queries yet
        'docs': query_result
    }
    return {'responseHeader': response_header, 'response': response}
Example #47
0
def select():
    start_time = time.time()
    q = request.get('q', '')

    response_header = {
        'status': 0,  # except if there's an error
        'params': dict(request.query),
        'QTime': time.time() - start_time
    }
    response = {
        'numFound': 0,
        'start': 0,  # we don't do paged queries yet
        'docs': query_result
    }
    return {'responseHeader': response_header, 'response': response}
Example #48
0
def do_login(action):
    ip = request.get('REMOTE_ADDR')
    if not f.limit(ip):
        status, u = user.check(request.forms.get('username'), request.forms.get('password'))

        if status:
            f.clear(ip)
            ex.run(action)
            redirect("/")
        else:
            return "<p>Login failed.</p>"

    else:
        ex.execute('alarm_action')
        return "<p>Login failed.</p>"
Example #49
0
def index():
    try:
        source = request.get("REMOTE_ADDR")
        hum = request.query.hum
        temp = request.query.temp
        if hum and temp:
            print(f'hum={hum}, temp={temp}, source={source}')
            dir = f'/home/pi/sensors/{source}'
            if not os.path.exists(f'{dir}'):
                os.makedirs(f'{dir}')
            file = open(f'{dir}/value.txt', 'w')
            file.write(f'{time()} {temp}\n')
            file.close()
        return
    except:
        return
Example #50
0
def post_grant(appid, db):
    email = get_user()
    if email is None:
        abort(401, "Authorization required")

    redirect_url = request.POST['redirect']

    if 'allow' in request.POST:
        app_user = ApplicationUser(appid, email)
        db.add(app_user)
        uid = app_user.uid
        redirect_url += '?' + 'Presence-UID=%s' % str(uid)

    code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
    response = HTTPResponse("", status=code, Location=redirect_url)
    raise response
Example #51
0
def update_extension_route(id):
    """
    Update extension

    Request params:
    * Name: (string) extension display name
    * Description: (string)
    * DeveloperName: (string)
    * Images: (list) list of image URLs

    Response:
    * Extension object
    """
    user = request.get('REMOTE_USER')
    data = request.json

    try:
        ext = _verify_ext_auth(id)

        assert data.get('Name'), 'Name cannot be empty'
        assert data.get('Description'), 'Description cannot be empty'
        assert data.get('DeveloperName'), 'DeveloperName cannot be empty'
        assert isinstance(data.get('Images'),
                          list), 'Images must be a list of URLs'
        # pylint: disable=len-as-condition
        assert 0 < len(
            data['Images']
        ) < 6, 'You must upload at least 1 (max 5) screenshot of your extension'

        for image_url in data['Images']:
            validate_image_url(image_url)

        to_delete = set(ext['Images']) - set(data['Images'])
        delete_images(to_delete, user)

        data = update_extension(id,
                                Name=data['Name'],
                                Description=data['Description'],
                                DeveloperName=data['DeveloperName'],
                                Images=data['Images'])
        return {'data': data}
    except ExtensionNotFoundError as e:
        return ErrorResponse(e, 404)
    except (AssertionError, ImageUrlValidationError) as e:
        return ErrorResponse(e, 400)
    except AuthError as e:
        return ErrorResponse(e, 401)
Example #52
0
def after_request():
    if request.path.startswith('/static'):
        return

    try:
        route_name = request.route.callback.__name__
    except:
        route_name = '(unknown)'

    try:
        pkppln.log_message(" - ".join([
            'finished', request.get('REMOTE_ADDR'),
            request.method, request.path,
            type(request.app).__name__ + "#" + route_name
        ]), logging.INFO)
    except:
        pass
Example #53
0
def post_grant(appid, db):
    email = get_user()
    if email is None:
        abort(401, "Authorization required")


    redirect_url = request.POST['redirect']

    if 'allow' in request.POST:
        app_user = ApplicationUser(appid, email)
        db.add(app_user)
        uid = app_user.uid
        redirect_url += '?' + 'Presence-UID=%s' % str(uid)

    code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302
    response = HTTPResponse("", status=code, Location=redirect_url)
    raise response
Example #54
0
def get_visits_info():

    v = check_visit()
    print(v)
    ip = request.get('REMOTE_ADDR')
    last = v['unique'][ip][-1][0]
    today = 0
    todayDate = dt.now().date()
    for i in v['unique']:
        for visit in v['unique'][i]:
            d = dt.strptime(visit[0], "%a %b %d %X %Y")
            if d.date() == todayDate:
                today += 1
    return dict(
        today=today,
        visits=v['visit'],
        unique=len(v['unique']),
        last=last
    )
Example #55
0
def saveNewUser():
	aaa.require(role="admin", fail_redirect='/login')
	username = request.forms.get('username');
	nome = request.forms.get('nome')
	telefone = request.forms.get('telefone')
	senha = request.forms.get('senha')
	role = request.forms.get('role')
	email_addr = request.get('email_addr')

	result = "success"
	try:
		aaa.create_user(username=username, role=role, password=senha, email_addr=email_addr)
		sql = "UPDATE USERS SET NOME = '%s', TELEFONE = '%s' WHERE USERNAME = '******'" % (nome, telefone, username)
		executeSql(sql)
	except Exception, e:
		print e.message
		if(e.message == "User is already existing."):
			result = "Username não disponível."
		else:
			result = "Ocorreu um erro ao salvar usuário"
Example #56
0
File: api.py Project: mboman/vxcage
def add_malware():
    tags = request.forms.get("tags")
    data = request.files.file
    info = File(path=store_sample(data.file.read()))

    if tags:
        tags = tags.strip()
        if "," in tags:
            tags = tags.split(",")
        else:
            tags = tags.split(" ")
        try:
            tags.append("User:"******"message": "added"})
Example #57
0
def home():
    t = Template(file='templates/home.html')
    t.msg = request.get('msg')
    t.current = '<table cellpadding="0" cellspacing="0"><tr><th>#</th><th>Name</th><th>Item</th><th>Since</th><th>Place</th><th>Options</th></tr>'
    for m, (i, v) in enumerate(db.items()):
        t.current += '<tr class="%s">' % ('even' if m % 2 == 0 else 'odd')
        t.current += '<td>%s</td>' % i
        t.current += '<td>%s</td>' % v['name']
        t.current += '<td><table>'
        for n, item in enumerate(v['items']):
            t.current += '<tr><td class="%s">%s</td></tr>' % ('even' if n % 2 == 0 else 'odd', item)
        t.current += '</table></td>'
        t.current += '<td>%s</td>' % v['since']
        t.current += '<td>%s</td>' % v['place']
        t.current += '<td><a href="/view/%s">Show Content</a> | <a href="/delete/%s">Delete Box</a> | <a target="_blank" href="/print/%s">Print</a> | <a href="/edit/%s">Edit Box</a></td>' % (i, i, i, i)
        t.current += '</tr>'

    t.current += '</table>'

    return str(t)