SYMBOL INDEX (450 symbols across 60 files) FILE: tanner/api/api.py class Api (line 7) | class Api: method __init__ (line 8) | def __init__(self, redis_client): method return_snares (line 12) | async def return_snares(self): method return_snare_stats (line 20) | async def return_snare_stats(self, snare_uuid): method return_snare_info (line 39) | async def return_snare_info(self, uuid, count=-1): method return_session_info (line 52) | async def return_session_info(self, sess_uuid, snare_uuid=None): method return_sessions (line 66) | async def return_sessions(self, filters): method return_latest_session (line 89) | async def return_latest_session(self): method apply_filter (line 105) | def apply_filter(self, filter_name, filter_value, sess): FILE: tanner/api/server.py class ApiServer (line 16) | class ApiServer: method __init__ (line 17) | def __init__(self): method _make_response (line 22) | def _make_response(msg): method handle_index (line 26) | async def handle_index(self, request): method handle_snares (line 31) | async def handle_snares(self, request): method handle_snare_info (line 36) | async def handle_snare_info(self, request): method handle_snare_stats (line 42) | async def handle_snare_stats(self, request): method handle_sessions (line 48) | async def handle_sessions(self, request): method handle_session_info (line 70) | async def handle_session_info(self, request): method on_shutdown (line 76) | async def on_shutdown(self, app): method auth (line 80) | async def auth(self, request, handler): method setup_routes (line 89) | def setup_routes(self, app): method make_app (line 97) | async def make_app(self, auth=False): method start (line 106) | def start(self): FILE: tanner/config.py class TannerConfig (line 10) | class TannerConfig: method read_config (line 14) | def read_config(path): method set_config (line 25) | def set_config(config_path): method get (line 33) | def get(section, value): FILE: tanner/dorks_manager.py class DorksManager (line 15) | class DorksManager: method __init__ (line 19) | def __init__(self): method push_init_dorks (line 24) | async def push_init_dorks(file_name, redis_key, redis_client): method extract_path (line 36) | async def extract_path(self, path, redis_client): method init_dorks (line 45) | async def init_dorks(self, redis_client): method choose_dorks (line 67) | async def choose_dorks(self, redis_client): FILE: tanner/emulators/base.py class BaseHandler (line 23) | class BaseHandler: method __init__ (line 24) | def __init__(self, base_dir, db_name, loop=None): method extract_get_data (line 85) | def extract_get_data(self, path): method get_emulation_result (line 98) | async def get_emulation_result(self, session, data, target_emulators): method handle_post (line 126) | async def handle_post(self, session, data): method handle_cookies (line 132) | async def handle_cookies(self, session, data): method handle_get (line 138) | async def handle_get(self, session, data): method set_injectable_page (line 159) | def set_injectable_page(session): method emulate (line 168) | async def emulate(self, data, session): method handle (line 189) | async def handle(self, data, session): FILE: tanner/emulators/cmd_exec.py class CmdExecEmulator (line 5) | class CmdExecEmulator: method __init__ (line 6) | def __init__(self): method get_cmd_exec_results (line 9) | async def get_cmd_exec_results(self, payload): method scan (line 16) | def scan(self, value): method handle (line 22) | async def handle(self, attack_params, session=None): FILE: tanner/emulators/crlf.py class CRLFEmulator (line 4) | class CRLFEmulator: method scan (line 5) | def scan(self, value): method get_crlf_results (line 11) | def get_crlf_results(self, attack_params): method handle (line 15) | async def handle(self, attack_params, session): FILE: tanner/emulators/lfi.py class LfiEmulator (line 7) | class LfiEmulator: method __init__ (line 8) | def __init__(self): method get_lfi_result (line 11) | async def get_lfi_result(self, file_path): method scan (line 24) | def scan(self, value): method handle (line 30) | async def handle(self, attack_params, session=None): FILE: tanner/emulators/mysqli.py class MySQLIEmulator (line 5) | class MySQLIEmulator: method __init__ (line 6) | def __init__(self, db_name): method setup_db (line 11) | async def setup_db(self): method create_attacker_db (line 18) | async def create_attacker_db(self, session): method execute_query (line 24) | async def execute_query(self, query, db_name): FILE: tanner/emulators/php_code_injection.py class PHPCodeInjection (line 8) | class PHPCodeInjection: method __init__ (line 9) | def __init__(self, loop=None): method get_injection_result (line 14) | async def get_injection_result(self, code): method scan (line 21) | def scan(self, value): method handle (line 27) | async def handle(self, attack_params, session=None): FILE: tanner/emulators/php_object_injection.py class PHPObjectInjection (line 8) | class PHPObjectInjection: method __init__ (line 9) | def __init__(self, loop=None): method get_injection_result (line 14) | async def get_injection_result(self, code): method scan (line 41) | def scan(self, value): method handle (line 53) | async def handle(self, attack_params): FILE: tanner/emulators/rfi.py class RfiEmulator (line 18) | class RfiEmulator: method __init__ (line 19) | def __init__(self, root_dir, loop=None, allow_insecure=False): method download_file (line 26) | async def download_file(self, path): method download_file_ftp (line 59) | def download_file_ftp(self, url): method get_rfi_result (line 78) | async def get_rfi_result(self, path): method scan (line 92) | def scan(self, value): method handle (line 98) | async def handle(self, attack_params, session=None): FILE: tanner/emulators/sqli.py class SqliEmulator (line 8) | class SqliEmulator: method __init__ (line 9) | def __init__(self, db_name, working_dir): method scan (line 18) | def scan(self, value): method map_query (line 26) | def map_query(self, attack_value): method get_sqli_result (line 44) | async def get_sqli_result(self, attack_value, attacker_db): method handle (line 65) | async def handle(self, attack_params, session): FILE: tanner/emulators/sqlite.py class SQLITEEmulator (line 8) | class SQLITEEmulator: method __init__ (line 9) | def __init__(self, db_name, working_dir): method setup_db (line 15) | async def setup_db(self): method create_attacker_db (line 24) | async def create_attacker_db(self, session): method execute_query (line 30) | async def execute_query(self, query, db): FILE: tanner/emulators/template_injection.py class TemplateInjection (line 10) | class TemplateInjection: method __init__ (line 11) | def __init__(self, loop=None): method get_injection_result (line 17) | async def get_injection_result(self, payload): method scan (line 48) | def scan(self, value): method handle (line 57) | async def handle(self, attack_params, session=None): FILE: tanner/emulators/xss.py class XssEmulator (line 4) | class XssEmulator: method scan (line 5) | def scan(self, value): method get_xss_result (line 11) | def get_xss_result(self, session, attack_params): method handle (line 19) | async def handle(self, attack_params, session): FILE: tanner/emulators/xxe_injection.py class XXEInjection (line 9) | class XXEInjection: method __init__ (line 10) | def __init__(self, loop=None): method get_injection_result (line 15) | async def get_injection_result(self, code): method scan (line 40) | def scan(self, value): method handle (line 52) | async def handle(self, attack_params): FILE: tanner/redis_client.py class RedisClient (line 11) | class RedisClient: method get_redis_client (line 13) | async def get_redis_client(poolsize=None): FILE: tanner/reporting/hpfeeds.py class BadClient (line 54) | class BadClient(Exception): class FeedException (line 58) | class FeedException(Exception): class Disconnect (line 62) | class Disconnect(Exception): function strpack8 (line 67) | def strpack8(x): function strunpack8 (line 74) | def strunpack8(x): function msghdr (line 79) | def msghdr(op, data): function msgpublish (line 83) | def msgpublish(ident, chan, data): function msgsubscribe (line 87) | def msgsubscribe(ident, chan): function msgauth (line 93) | def msgauth(rand, ident, secret): class FeedUnpack (line 98) | class FeedUnpack(object): method __init__ (line 99) | def __init__(self): method __iter__ (line 102) | def __iter__(self): method __next__ (line 105) | def __next__(self): method feed (line 108) | def feed(self, data): method unpack (line 111) | def unpack(self): class HPC (line 127) | class HPC(object): method __init__ (line 128) | def __init__(self, host, port, ident, secret, timeout=3, reconnect=Fal... method send (line 146) | def send(self, data): method tryconnect (line 156) | def tryconnect(self): method close_old (line 179) | def close_old(self): method connect (line 187) | def connect(self): method publish (line 224) | def publish(self, chaninfo, data): method close (line 240) | def close(self): function new (line 247) | def new(host=None, port=10000, ident=None, secret=None, reconnect=True): FILE: tanner/reporting/log_hpfeeds.py class Reporting (line 10) | class Reporting: method __init__ (line 11) | def __init__(self): method connect (line 20) | def connect(self): method connected (line 27) | def connected(self): method create_session (line 30) | def create_session(self, session_data): FILE: tanner/reporting/log_local.py class Reporting (line 6) | class Reporting: method create_session (line 8) | def create_session(session_data): FILE: tanner/reporting/log_mongodb.py class Reporting (line 13) | class Reporting: method __init__ (line 14) | def __init__(self): method update_session (line 34) | def update_session(self, session_id, new_values): method create_session (line 39) | def create_session(self, session_data): FILE: tanner/server.py class TannerServer (line 17) | class TannerServer: method __init__ (line 18) | def __init__(self): method _make_response (line 38) | def _make_response(msg): method default_handler (line 43) | async def default_handler(request): method handle_event (line 46) | async def handle_event(self, request): method handle_dorks (line 84) | async def handle_dorks(self, request): method handle_version (line 89) | async def handle_version(self, request): method on_shutdown (line 93) | async def on_shutdown(self, app): method delete_sessions (line 97) | async def delete_sessions(self): method setup_routes (line 105) | def setup_routes(self, app): method make_app (line 111) | async def make_app(self): method start_background_delete (line 119) | async def start_background_delete(self, app): method cleanup_background_tasks (line 122) | async def cleanup_background_tasks(self, app): method start (line 126) | def start(self): FILE: tanner/sessions/session.py class Session (line 12) | class Session: method __init__ (line 15) | def __init__(self, data): method update_session (line 37) | def update_session(self, data): method is_expired (line 44) | def is_expired(self): method to_json (line 49) | def to_json(self): method set_attack_type (line 64) | def set_attack_type(self, path, attack_type): method associate_db (line 69) | def associate_db(self, db_name): method remove_associated_db (line 72) | async def remove_associated_db(self): method associate_env (line 78) | def associate_env(self, env): method remove_associated_env (line 81) | async def remove_associated_env(self): method get_uuid (line 84) | def get_uuid(self): FILE: tanner/sessions/session_analyzer.py class SessionAnalyzer (line 12) | class SessionAnalyzer: method __init__ (line 13) | def __init__(self, loop=None): method analyze (line 19) | async def analyze(self, session_key, redis_client): method save_session (line 32) | async def save_session(self, redis_client): method create_stats (line 44) | async def create_stats(self, session, redis_client): method analyze_paths (line 81) | async def analyze_paths(paths, redis_client): method set_attack_count (line 103) | def set_attack_count(self, attack_types): method choose_possible_owner (line 112) | async def choose_possible_owner(self, stats): method find_location (line 132) | def find_location(ip): method detect_crawler (line 146) | async def detect_crawler(self, stats, bots_owner, crawler_hosts): method detect_attacker (line 165) | async def detect_attacker(self, stats, bots_owner, crawler_hosts): FILE: tanner/sessions/session_manager.py class SessionManager (line 10) | class SessionManager: method __init__ (line 11) | def __init__(self, loop=None): method add_or_update_session (line 16) | async def add_or_update_session(self, raw_data, redis_client): method validate_data (line 37) | def validate_data(data): method get_session_id (line 58) | def get_session_id(self, data): method delete_old_sessions (line 67) | async def delete_old_sessions(self, redis_client): method delete_sessions_on_shutdown (line 77) | async def delete_sessions_on_shutdown(self, redis_client): method delete_session (line 90) | async def delete_session(self, sess, redis_client): FILE: tanner/tests/test_aiodocker_helper.py class TestAioDockerHelper (line 7) | class TestAioDockerHelper(unittest.TestCase): method setUp (line 8) | def setUp(self): method test_setup_host_image (line 16) | def test_setup_host_image(self): method test_get_container (line 26) | def test_get_container(self): method test_create_container (line 37) | def test_create_container(self): method test_execute_cmd (line 49) | def test_execute_cmd(self): method test_delete_container (line 59) | def test_delete_container(self): method tearDown (line 70) | def tearDown(self): FILE: tanner/tests/test_api.py class TestApi (line 12) | class TestApi(unittest.TestCase): method setUp (line 13) | def setUp(self): method test_return_snares (line 29) | def test_return_snares(self): method test_return_snares_error (line 46) | def test_return_snares_error(self): method test_return_snare_stats (line 56) | def test_return_snare_stats(self): method test_return_snare_info (line 75) | def test_return_snare_info(self): method test_return_snare_info_error (line 105) | def test_return_snare_info_error(self): method test_return_session_info (line 115) | def test_return_session_info(self): method test_return_session_info_none (line 131) | def test_return_session_info_none(self): method test_return_sessions (line 154) | def test_return_sessions(self): method test_return_sessions_error (line 215) | def test_return_sessions_error(self): method test_apply_filter_user_agent (line 231) | def test_apply_filter_user_agent(self): method test_apply_filter_user_agent_false (line 240) | def test_apply_filter_user_agent_false(self): method test_apply_filter_possible_owner (line 249) | def test_apply_filter_possible_owner(self): method test_apply_filter_attack_types (line 258) | def test_apply_filter_attack_types(self): method test_apply_filter_attack_types_false (line 267) | def test_apply_filter_attack_types_false(self): method test_apply_filter_start_time (line 276) | def test_apply_filter_start_time(self): method test_apply_filter_start_time_false (line 285) | def test_apply_filter_start_time_false(self): method test_apply_filter_end_time (line 294) | def test_apply_filter_end_time(self): method test_apply_filter_end_time_false (line 303) | def test_apply_filter_end_time_false(self): method tearDown (line 312) | def tearDown(self): FILE: tanner/tests/test_api_server.py class TestAPIServer (line 8) | class TestAPIServer(AioHTTPTestCase): method setUp (line 9) | def setUp(self): method get_application (line 19) | async def get_application(self): method test_api_index_request (line 24) | async def test_api_index_request(self): method test_api_snares_request (line 36) | async def test_api_snares_request(self): method test_api_snare_info_request (line 52) | async def test_api_snare_info_request(self): method test_api_snare_stats_request (line 73) | async def test_api_snare_stats_request(self): method test_api_sessions_request (line 103) | async def test_api_sessions_request(self): method test_api_sessions_info_request (line 132) | async def test_api_sessions_info_request(self): FILE: tanner/tests/test_base.py class TestBase (line 11) | class TestBase(unittest.TestCase): method setUp (line 12) | def setUp(self): method test_handle_sqli (line 27) | def test_handle_sqli(self): method test_handle_xss (line 45) | def test_handle_xss(self): method test_handle_lfi (line 65) | def test_handle_lfi(self): method test_handle_index (line 83) | def test_handle_index(self): method test_handle_wp_content (line 91) | def test_handle_wp_content(self): method test_handle_rfi (line 99) | def test_handle_rfi(self): method test_handle_php_object_injection (line 119) | def test_handle_php_object_injection(self): method test_handle_xxe_injection (line 140) | def test_handle_xxe_injection(self): method test_handle_template_injection (line 164) | def test_handle_template_injection(self): method test_set_injectable_page (line 182) | def test_set_injectable_page(self): method test_emulate_type_1 (line 194) | def test_emulate_type_1(self): method test_emulate_type_2 (line 205) | def test_emulate_type_2(self): method test_emulate_type_3 (line 230) | def test_emulate_type_3(self): FILE: tanner/tests/test_cmd_exec_emulation.py class TestCmdExecEmulator (line 7) | class TestCmdExecEmulator(unittest.TestCase): method setUp (line 8) | def setUp(self): method test_scan (line 16) | def test_scan(self): method test_scan_negative (line 22) | def test_scan_negative(self): method test_handle_simple_command (line 28) | def test_handle_simple_command(self): method test_handle_nested_commands (line 34) | def test_handle_nested_commands(self): method test_handle_invalid_commands (line 43) | def test_handle_invalid_commands(self): method tearDown (line 50) | def tearDown(self): FILE: tanner/tests/test_config.py class TestConfig (line 10) | class TestConfig(unittest.TestCase): method setUp (line 11) | def setUp(self): method test_set_config_when_file_exists (line 55) | def test_set_config_when_file_exists(self, m): method test_set_config_when_file_dont_exists (line 59) | def test_set_config_when_file_dont_exists(self): method test_get_when_file_exists (line 64) | def test_get_when_file_exists(self): method test_get_when_file_dont_exists (line 76) | def test_get_when_file_dont_exists(self): FILE: tanner/tests/test_crlf.py class TestCRLF (line 7) | class TestCRLF(unittest.TestCase): method setUp (line 8) | def setUp(self): method test_scan (line 12) | def test_scan(self): method test_handle (line 18) | def test_handle(self): FILE: tanner/tests/test_dorks_manager.py class TestDorksManager (line 14) | class TestDorksManager(unittest.TestCase): method setUp (line 15) | def setUp(self): method test_push_init_dorks (line 40) | def test_push_init_dorks(self): method test_extract_path (line 54) | def test_extract_path(self): method test_extract_path_error (line 65) | def test_extract_path_error(self): method test_init_dorks (line 76) | def test_init_dorks(self): method test_init_dorks_none (line 90) | def test_init_dorks_none(self): method test_choose_dorks (line 101) | def test_choose_dorks(self): method tearDown (line 129) | def tearDown(self): FILE: tanner/tests/test_lfi_emulator.py class TestLfiEmulator (line 6) | class TestLfiEmulator(unittest.TestCase): method setUp (line 7) | def setUp(self): method test_scan (line 13) | def test_scan(self): method test_scan_negative (line 19) | def test_scan_negative(self): method test_handle_abspath_lfi (line 25) | def test_handle_abspath_lfi(self): method test_handle_relative_path_lfi (line 30) | def test_handle_relative_path_lfi(self): method test_handle_path_null_character (line 35) | def test_handle_path_null_character(self): method test_handle_missing_lfi (line 40) | def test_handle_missing_lfi(self): method tearDown (line 46) | def tearDown(self): FILE: tanner/tests/test_mysql_db_helper.py function mock_config (line 11) | def mock_config(section, value): class TestMySQLDBHelper (line 17) | class TestMySQLDBHelper(unittest.TestCase): method setUp (line 18) | def setUp(self): method test_check_db_exists (line 48) | def test_check_db_exists(self, m): method test_check_no_db_exists (line 63) | def test_check_no_db_exists(self, m): method test_setup_db_from_config (line 73) | def test_setup_db_from_config(self, m): method test_copy_db (line 122) | def test_copy_db(self, m): method test_insert_dummy_data (line 174) | def test_insert_dummy_data(self, m): method test_create_query_map (line 200) | def test_create_query_map(self, m): FILE: tanner/tests/test_mysqli.py function mock_config (line 8) | def mock_config(section, value): class TestMySQLi (line 14) | class TestMySQLi(unittest.TestCase): method setUp (line 15) | def setUp(self): method test_setup_db (line 46) | def test_setup_db(self, m): method test_setup_db_not_exists (line 77) | def test_setup_db_not_exists(self, m): method test_create_attacker_db (line 108) | def test_create_attacker_db(self, m): method test_execute_query (line 124) | def test_execute_query(self, m): method test_execute_query_error (line 164) | def test_execute_query_error(self, m): FILE: tanner/tests/test_php_code_injection.py class TestPHPCodeInjection (line 7) | class TestPHPCodeInjection(unittest.TestCase): method setUp (line 8) | def setUp(self): method test_scan (line 13) | def test_scan(self): method test_handle_status_code (line 19) | def test_handle_status_code(self): FILE: tanner/tests/test_php_object_injection.py class TestPHPCodeInjection (line 8) | class TestPHPCodeInjection(unittest.TestCase): method setUp (line 9) | def setUp(self): method test_scan (line 17) | def test_scan(self): method test_scan_negative (line 24) | def test_scan_negative(self): method test_handle_status_code (line 31) | def test_handle_status_code(self): method test_handle (line 44) | def test_handle(self): FILE: tanner/tests/test_rfi_emulation.py class TestRfiEmulator (line 8) | class TestRfiEmulator(unittest.TestCase): method setUp (line 9) | def setUp(self): method test_http_download (line 14) | def test_http_download(self): method test_http_download_fail (line 19) | def test_http_download_fail(self): method test_ftp_download (line 24) | def test_ftp_download(self): method test_ftp_download_fail (line 30) | def test_ftp_download_fail(self): method test_get_result_fail (line 36) | def test_get_result_fail(self): method test_invalid_scheme (line 41) | def test_invalid_scheme(self): FILE: tanner/tests/test_server.py class TestServer (line 13) | class TestServer(AioHTTPTestCase): method setUp (line 14) | def setUp(self): method _make_coroutine (line 63) | def _make_coroutine(self): method get_application (line 69) | async def get_application(self): method test_example (line 74) | async def test_example(self): method test_make_response (line 80) | def test_make_response(self): method test_events_request (line 87) | async def test_events_request(self): method test_dorks_request (line 107) | async def test_dorks_request(self): method test_version (line 115) | async def test_version(self): FILE: tanner/tests/test_session_analyzer.py function mock_open (line 31) | def mock_open(): class TestSessionAnalyzer (line 37) | class TestSessionAnalyzer(unittest.TestCase): method setUp (line 38) | def setUp(self): method tests_load_session_fail (line 119) | def tests_load_session_fail(self): method test_create_stats (line 129) | def test_create_stats(self): method test_choose_owner_crawler (line 147) | def test_choose_owner_crawler(self): method test_choose_owner_attacker (line 163) | def test_choose_owner_attacker(self): method test_choose_owner_mixed (line 179) | def test_choose_owner_mixed(self): method test_choose_owner_user (line 197) | def test_choose_owner_user(self): method test_find_location (line 215) | def test_find_location(self): FILE: tanner/tests/test_session_manager.py class TestSessions (line 9) | class TestSessions(unittest.TestCase): method setUp (line 10) | def setUp(self): method test_validate_missing_peer (line 17) | def test_validate_missing_peer(self): method test_validate_missing_user_agent (line 42) | def test_validate_missing_user_agent(self): method test_validate_missing_cookies (line 62) | def test_validate_missing_cookies(self): method test_adding_new_session (line 76) | def test_adding_new_session(self): method test_updating_session (line 94) | def test_updating_session(self): method test_deleting_sessions (line 122) | def test_deleting_sessions(self): method test_get_uuid (line 147) | def test_get_uuid(self): FILE: tanner/tests/test_sqli.py class SqliTest (line 9) | class SqliTest(unittest.TestCase): method setUp (line 10) | def setUp(self): method test_scan (line 34) | def test_scan(self): method test_scan_negative (line 40) | def test_scan_negative(self): method test_handle (line 46) | def test_handle(self): method test_map_query_id (line 52) | def test_map_query_id(self): method test_map_query_comments (line 58) | def test_map_query_comments(self): method test_map_query_error (line 64) | def test_map_query_error(self): method test_get_sqli_result (line 69) | def test_get_sqli_result(self): method test_get_sqli_result_error (line 82) | def test_get_sqli_result_error(self): method tearDown (line 88) | def tearDown(self): FILE: tanner/tests/test_sqlite.py class SqliteTest (line 11) | class SqliteTest(unittest.TestCase): method setUp (line 12) | def setUp(self): method test_setup_db (line 29) | def test_setup_db(self): method test_setup_db_not_exists (line 43) | def test_setup_db_not_exists(self): method test_create_attacker_db (line 58) | def test_create_attacker_db(self): method test_execute_query (line 64) | def test_execute_query(self): method tearDown (line 104) | def tearDown(self): FILE: tanner/tests/test_sqlite_db_helper.py class TestSQLiteDBHelper (line 12) | class TestSQLiteDBHelper(unittest.TestCase): method setUp (line 13) | def setUp(self): method test_setup_db_from_config (line 30) | def test_setup_db_from_config(self): method test_get_abs_path (line 71) | def test_get_abs_path(self): method test_get_abs_path_2 (line 77) | def test_get_abs_path_2(self): method test_copy_db (line 83) | def test_copy_db(self): method test_create_query_map (line 106) | def test_create_query_map(self): method test_create_query_map_error (line 112) | def test_create_query_map_error(self, sqlite): method test_insert_dummy_data (line 120) | def test_insert_dummy_data(self): method tearDown (line 135) | def tearDown(self): FILE: tanner/tests/test_template_injection.py class TestTemplateInjection (line 11) | class TestTemplateInjection(unittest.TestCase): method setUp (line 12) | def setUp(self): method test_scan (line 25) | def test_scan(self): method test_scan_negative (line 32) | def test_scan_negative(self): method test_xss_mako_regex (line 39) | def test_xss_mako_regex(self): method test_handle_tornado (line 48) | def test_handle_tornado(self): method test_handle_mako (line 58) | def test_handle_mako(self): method tearDown (line 67) | def tearDown(self): FILE: tanner/tests/test_web_server.py class TestWebServer (line 8) | class TestWebServer(AioHTTPTestCase): method setUp (line 9) | def setUp(self): method get_application (line 22) | async def get_application(self): method test_handle_index (line 27) | async def test_handle_index(self): method test_handle_snares (line 36) | async def test_handle_snares(self): method test_handle_snare (line 48) | async def test_handle_snare(self): method test_handle_snare_stats (line 58) | async def test_handle_snare_stats(self): method test_handle_sessions (line 73) | async def test_handle_sessions(self): method test_handle_sessions_error (line 104) | async def test_handle_sessions_error(self): method test_sessions_info (line 115) | async def test_sessions_info(self): FILE: tanner/tests/test_xss_emulator.py class TestXSSEmulator (line 8) | class TestXSSEmulator(unittest.TestCase): method setUp (line 9) | def setUp(self): method test_scan (line 14) | def test_scan(self): method test_scan_negative (line 20) | def test_scan_negative(self): method test_xxs_mako_regex (line 26) | def test_xxs_mako_regex(self): method test_multiple_xss (line 35) | def test_multiple_xss(self): method test_xss (line 45) | def test_xss(self): FILE: tanner/tests/test_xxe_injection.py class TestXXEInjection (line 10) | class TestXXEInjection(unittest.TestCase): method setUp (line 11) | def setUp(self): method test_scan (line 19) | def test_scan(self): method test_scan_negative (line 26) | def test_scan_negative(self): method test_handle_status_code (line 33) | def test_handle_status_code(self): method test_handle (line 45) | def test_handle(self): method test_handle_oob (line 71) | def test_handle_oob(self): FILE: tanner/utils/aiodocker_helper.py class AIODockerHelper (line 7) | class AIODockerHelper: method __init__ (line 8) | def __init__(self): method setup_host_image (line 15) | async def setup_host_image(self, remote_path=None, tag=None): method get_container (line 35) | async def get_container(self, container_name): method create_container (line 49) | async def create_container(self, container_name, cmd=None, image=None): method execute_cmd (line 70) | async def execute_cmd(self, cmd, image=None): method delete_container (line 97) | async def delete_container(self, container_name): FILE: tanner/utils/api_key_generator.py function generate (line 5) | def generate(): FILE: tanner/utils/asyncmock.py class AsyncMock (line 4) | class AsyncMock(Mock): # custom function defined to mock asyncio corout... method __call__ (line 5) | def __call__(self, *args, **kwargs): method __await__ (line 13) | def __await__(self): FILE: tanner/utils/base_db_helper.py class BaseDBHelper (line 10) | class BaseDBHelper: method __init__ (line 11) | def __init__(self): method read_config (line 14) | def read_config(self): method generate_dummy_data (line 24) | def generate_dummy_data(data_tokens): FILE: tanner/utils/logger.py class LevelFilter (line 7) | class LevelFilter(logging.Filter): method __init__ (line 10) | def __init__(self, level): method filter (line 13) | def filter(self, record): class Logger (line 18) | class Logger: method create_logger (line 20) | def create_logger(debug_filename, err_filename, logger_name): FILE: tanner/utils/mysql_db_helper.py class MySQLDBHelper (line 9) | class MySQLDBHelper(BaseDBHelper): method __init__ (line 13) | def __init__(self): method connect_to_db (line 17) | async def connect_to_db(self): method check_db_exists (line 30) | async def check_db_exists(self, db_name): method setup_db_from_config (line 45) | async def setup_db_from_config(self, name=None): method delete_db (line 71) | async def delete_db(self, db): method copy_db (line 84) | async def copy_db(self, user_db, attacker_db): method insert_dummy_data (line 126) | async def insert_dummy_data(self, table_name, data_tokens, cursor): method create_query_map (line 144) | async def create_query_map(self, db_name): FILE: tanner/utils/php_sandbox_helper.py class PHPSandboxHelper (line 7) | class PHPSandboxHelper: method __init__ (line 8) | def __init__(self, loop): method get_result (line 12) | async def get_result(self, code): FILE: tanner/utils/sqlite_db_helper.py class SQLITEDBHelper (line 9) | class SQLITEDBHelper(BaseDBHelper): method __init__ (line 10) | def __init__(self): method setup_db_from_config (line 14) | async def setup_db_from_config(self, working_dir, name=None): method get_abs_path (line 37) | def get_abs_path(path, working_dir): method delete_db (line 49) | def delete_db(db): method copy_db (line 53) | def copy_db(self, src, dst, working_dir): method insert_dummy_data (line 62) | async def insert_dummy_data(self, table_name, data_tokens, cursor): method create_query_map (line 79) | def create_query_map( FILE: tanner/web/server.py class TannerWebServer (line 13) | class TannerWebServer: method __init__ (line 14) | def __init__(self): method handle_index (line 20) | async def handle_index(self, request): method handle_snares (line 27) | async def handle_snares(self, request): method handle_snare (line 32) | async def handle_snare(self, request): method handle_snare_stats (line 37) | async def handle_snare_stats(self, request): method handle_sessions (line 43) | async def handle_sessions(self, request): method handle_session_info (line 80) | async def handle_session_info(self, request): method on_shutdown (line 85) | async def on_shutdown(self, app): method setup_routes (line 88) | def setup_routes(self, app): method make_app (line 97) | async def make_app(self): method start (line 104) | def start(self): FILE: tanner/web/static/js/site.js function findGetParameter (line 1) | function findGetParameter(parameterName) {