def test_verify_by_urlscan_malicious(self, client_with_db):
     client = client_with_db[0]
     endpoint = '/verify/by_urlscan'
     malicious_url = get_test_phishing_domain()
     data = {'url': '{}'.format(malicious_url)}
     headers = {'Content-Type': "application/json"}
     info("POST {}".format(endpoint))
     response = client.post(BASE_PATH + endpoint,
                            data=json.dumps(data),
                            headers=headers)
     assert_equal(response.status_code, 200, "Check status code")
     if response.status_code == 202:
         pytest.skip(
             "urlscan.io returned status 202 - url \"{}\" is invalid".
             format(malicious_url))
     j = data_to_json(response.data)
     field = "status"
     expected_value = "malicious"
     assert_dict_contains_key(
         j, field,
         "Check if dict contains given key - \"{}\"".format(field))
     if j[field] == "good":
         pytest.skip(
             "urlscan.io returned malicious domain as good - url \"{}\" is invalid"
             .format(malicious_url))
     assert_equal(
         j[field], expected_value,
         "Check if item \"{}\" is equal to \"{}\"".format(
             field, expected_value))
Beispiel #2
0
 def test_details_urlscan_malicious(self, client_with_db):
     client = client_with_db[0]
     endpoint = '/details/urlscan'
     url = get_test_phishing_domain()
     info("URL sent - {}".format(url))
     data = {'url': "{}".format(url)}
     headers = {'Content-Type': "application/json"}
     info("POST {}".format(endpoint))
     response = client.post(BASE_PATH + endpoint,
                            data=json.dumps(data),
                            headers=headers)
     if response.status_code == 202:
         pytest.skip(
             "urlscan.io returned status 202 - url \"{}\" is invalid".
             format(url))
     assert_equal(response.status_code, 200, "Check status code")
     j = data_to_json(response.data)
     field = "details"
     assert_dict_contains_key(
         j, field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = "domain"
     expected_value = url
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     assert_equal(
         j['details'][field], expected_value,
         "Check if item \"{}\" is equal to \"{}\"".format(
             field, expected_value))
     field = 'ip'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'country'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'server'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'webApps'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'no_of_requests'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'ads_blocked'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'https_requests'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'ipv6'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'malicious'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     if j['details'][field] == "good":
         pytest.skip(
             "urlscan.io returned malicious domain as good - url \"{}\" is invalid"
             .format(url))
     field = 'malicious_requests'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'pointed_domains'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     field = 'unique_country_count'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     unique_country_count = j['details']['unique_country_count']
     field = 'unique_countries_connected'
     assert_dict_contains_key(
         j['details'], field,
         "Check if dict contains given key - \"{}\"".format(field))
     unique_countries_connected = j['details']['unique_countries_connected']
     assert_equal(
         unique_country_count, len(unique_countries_connected),
         "Check if amount of connected countries is equal to length of list of unique countries"
     )