async def delayed_send(self, *args, **kwargs): req = self.req if self.delay and self.delay > 0: #sync_sleep(self.delay) await asyncio.sleep(self.delay) t = req.loop.time() print("sending at {}".format(t), flush=True) conn = next(iter(args)) # first arg is connection if aiohttp.__version__ >= "3.1.0": try: delayed_resp = await self.orig_send(*args, **kwargs) except Exception as e: return aiohttp.ClientResponse(req.method, req.url, writer=None, continue100=None, timer=None, request_info=None, auto_decompress=None, traces=[], loop=req.loop, session=None) else: try: delayed_resp = self.orig_send(*args, **kwargs) except Exception as e: return aiohttp.ClientResponse(req.method, req.url) return delayed_resp
async def delayed_send(self, *args, **kwargs): req = self.req if self.delay and self.delay > 0: # sync_sleep(self.delay) await asyncio.sleep(self.delay) t = req.loop.time() print("sending at {}".format(t), flush=True) next(iter(args)) # first arg is connection try: return await self.orig_send(*args, **kwargs) except Exception as e: if aiohttp_version < version.parse("3.1.0"): return aiohttp.ClientResponse(req.method, req.url) kw = dict( writer=None, continue100=None, timer=None, request_info=None, traces=[], loop=req.loop, session=None, ) if aiohttp_version < version.parse("3.3.0"): kw["auto_decompress"] = None return aiohttp.ClientResponse(req.method, req.url, **kw)
def setUp(self): self.main_page_path = generate_unique_path() os.makedirs(self.main_page_path) self.root = "http://example.com" self.level = 0 self.max_depth = sys.maxsize self.loop = asyncio.new_event_loop() self.css_validate = "false" self.handler = Cloner(self.root, self.max_depth, self.css_validate) self.target_path = "/opt/snare/pages/{}".format(yarl.URL(self.root).host) self.return_content = None self.expected_content = None self.filename = None self.hashname = None self.url = None self.content = None self.return_url = None self.return_level = None self.meta = None self.q_size = None self.session = aiohttp.ClientSession self.session.get = AsyncMock( return_value=aiohttp.ClientResponse( url=yarl.URL("http://www.example.com"), method="GET", writer=None, continue100=1, timer=None, request_info=None, traces=None, loop=self.loop, session=None, ) )
def delayed_send(self, *args, **kwargs): req = self.req if self.delay and self.delay > 0: #sync_sleep(self.delay) _ = yield from asyncio.sleep(self.delay) t = req.loop.time() print("sending at {}".format(t), flush=True) conn = next(iter(args)) # first arg is connection try: delayed_resp = self.orig_send(*args, **kwargs) except Exception as e: return aiohttp.ClientResponse(req.method, req.url) return delayed_resp
def setUp(self): meta = {} run_args = argparse.ArgumentParser() run_args.add_argument("--tanner") run_args.add_argument("--page-dir") self.main_page_path = generate_unique_path() os.makedirs(self.main_page_path) page_dir = self.main_page_path.rsplit("/")[-1] args = run_args.parse_args(["--page-dir", page_dir]) args_dict = vars(args) args_dict["full_page_path"] = self.main_page_path self.loop = asyncio.new_event_loop() self.data = { "method": "GET", "path": "/", "headers": { "Host": "test_host", "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1", "User-Agent": "test_agent", "Accept": "text/html", "Accept-Encoding": "test_encoding", "Accept-Language": "test_lang", "Cookie": "test_cookie", }, "uuid": "test_uuid", "peer": { "ip": "::1", "port": 80 }, "status": 200, "cookies": "test_cookies", "sess_uuid": "test_uuid", } aiohttp.ClientSession.post = AsyncMock( return_value=aiohttp.ClientResponse( url=yarl.URL("http://www.example.com"), method="GET", writer=None, continue100=1, timer=None, request_info=None, traces=None, loop=self.loop, session=None, )) uuid = "test_uuid" args.tanner = "tanner.mushmush.org" args.no_dorks = True self.handler = TannerHandler(args, meta, uuid) self.result = None
def setUp(self): meta = {} run_args = argparse.ArgumentParser() run_args.add_argument("--tanner") run_args.add_argument("--page-location") self.main_page_path = generate_unique_path() os.makedirs(self.main_page_path) page_location = self.main_page_path.rsplit('/')[-1] args = run_args.parse_args(['--page-location', page_location]) args_dict = vars(args) args_dict['full_page_path'] = self.main_page_path self.loop = asyncio.new_event_loop() self.data = { 'method': 'GET', 'path': '/', 'headers': { 'Host': 'test_host', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'test_agent', 'Accept': 'text/html', 'Accept-Encoding': 'test_encoding', 'Accept-Language': 'test_lang', 'Cookie': 'test_cookie' }, 'uuid': 'test_uuid', 'peer': { 'ip': '::1', 'port': 80 }, 'status': 200, 'cookies': 'test_cookies', 'sess_uuid': 'test_uuid' } aiohttp.ClientSession.post = AsyncMock( return_value=aiohttp.ClientResponse(url=yarl.URL( "http://www.example.com"), method="GET", writer=None, continue100=1, timer=None, request_info=None, traces=None, loop=self.loop, session=None)) uuid = "test_uuid" args.tanner = "tanner.mushmush.org" args.no_dorks = True self.handler = TannerHandlerDirectory(args, meta, uuid) self.result = None
def setUp(self): self.main_page_path = generate_unique_path() os.makedirs(self.main_page_path) self.dorks = dict(response={'dorks': "test_dorks"}) self.loop = asyncio.new_event_loop() aiohttp.ClientSession.get = AsyncMock( return_value=aiohttp.ClientResponse( url=yarl.URL("http://www.example.com"), method="GET", writer=None, continue100=1, timer=None, request_info=None, traces=None, loop=self.loop, session=None ) ) no_dorks = True tanner = "tanner.mushmush.org" self.handler = HtmlHandler(no_dorks, tanner) self.data = None
def setUp(self): self.meta = {} run_args = argparse.ArgumentParser() run_args.add_argument("--tanner") run_args.add_argument("--page-dir") self.main_page_path = generate_unique_path() os.makedirs(self.main_page_path) self.page_dir = self.main_page_path.rsplit('/')[-1] self.args = run_args.parse_args(['--page-dir', self.page_dir]) self.dorks = dict(response={'dorks': "test_dorks"}) self.loop = asyncio.new_event_loop() aiohttp.ClientSession.get = AsyncMock( return_value=aiohttp.ClientResponse( url=yarl.URL("http://www.example.com"), method="GET")) self.handler = HttpRequestHandler(self.meta, self.args) self.handler.run_args.tanner = "tanner.mushmush.org"
def create_response(method, url, content, loop=None): loop = loop or asyncio.get_event_loop() response = aiohttp.ClientResponse(method.lower(), URL(url)) def side_effect(*args, **kwargs): fut = loop.create_future() if isinstance(content, str): fut.set_result(content.encode()) else: fut.set_result(content) return fut response.content = mock.Mock() response.content.read.side_effect = side_effect return response
def client_response(loop, session): """Fixture to return a mocked client response.""" r = aiohttp.ClientResponse( 'get', URL('http://synse-response.io'), request_info=mock.Mock(), writer=mock.Mock(), continue100=None, timer=TimerNoop(), traces=[], loop=loop, session=session, ) r.content = mock.Mock() r._headers = {'Content-Type': 'application/json'} return r
def setUp(self): self.meta = {} run_args = argparse.ArgumentParser() run_args.add_argument("--tanner") run_args.add_argument("--page-dir") self.main_page_path = generate_unique_path() os.makedirs(self.main_page_path) self.page_dir = self.main_page_path.rsplit('/')[-1] self.args = run_args.parse_args(['--page-dir', self.page_dir]) self.loop = asyncio.new_event_loop() self.data = { 'method': 'GET', 'path': '/', 'headers': { 'Host': 'test_host', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'test_agent', 'Accept': 'text/html', 'Accept-Encoding': 'test_encoding', 'Accept-Language': 'test_lang', 'Cookie': 'test_cookie', 'uuid': 'test_uuid', 'peer': { 'ip': '::1', 'port': 80 }, 'status': 200, 'cookies': 'test_cookies', ' sess_uuid': 'test_uuid' } } aiohttp.ClientSession.post = AsyncMock( return_value=aiohttp.ClientResponse( url=yarl.URL("http://www.example.com"), method="GET")) self.handler = HttpRequestHandler(self.meta, self.args) self.handler.run_args.tanner = "tanner.mushmush.org"
async def _mock_get(*args, **kwargs): response = aiohttp.ClientResponse(aiohttp.hdrs.METH_GET, yarl.URL(self._test_url)) response.status = 404 return response