Exemple #1
0
 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
Exemple #6
0
 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
Exemple #8
0
 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
Exemple #11
0
 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