Exemple #1
0
    def get_web_application_info(self):
        session = self.request_handler.get_new_session()
        try:
            with session:
                # Test if target is serving HTTP requests
                response = session.get(timeout=20,
                                       url="{}://{}:{}".format(
                                           self.host.protocol,
                                           self.host.target, self.host.port))
                self.headers = response.headers
                self._detect_cms()
                self._robots()
                self._sitemap()
                self._server_info()
                self._x_powered_by()
                self._cors_wildcard()
                self._xss_protection()
                self._anti_clickjacking()
                self._cookie_info(session.cookies)

                soup = BeautifulSoup(response.text, "lxml")
                self._find_fuzzable_urls(soup)
                self._find_forms(soup)

        except (ConnectionError, TooManyRedirects) as e:
            raise WebAppScannerException("Couldn't get response from server.\n"
                                         "Caused due to exception: {}".format(
                                             str(e)))
Exemple #2
0
    async def get_web_application_info(self):
        session = self.request_handler.get_new_html_session()
        try:
            with session:
                # Test if target is serving HTTP requests
                response = await session.get(
                    timeout=20,
                    url="{}://{}:{}".format(self.host.protocol,
                                            self.host.target, self.host.port),
                    headers=self.request_headers)
                self.headers = response.headers
                self._detect_cms()
                self._robots()
                self._sitemap()
                self._server_info()
                self._x_powered_by()
                self._cors_wildcard()
                self._has_header('X-Frame-Options')
                self._has_header('Content-Security-Policy')
                self._has_header('Strict-Transport-Security')
                self._has_header('X-Content-Type-Options')
                self._has_header('X-XSS-Protection')

        except (ConnectionError, TooManyRedirects) as e:
            raise WebAppScannerException("Couldn't get response from server.\n"
                                         "Caused due to exception: {}".format(
                                             str(e)))