Exemplo n.º 1
0
    def _run(self, target, key, proxy, headers, load_placeholer, generate_html,
             generate_schema, generate_queries, generate_cycles,
             cycles_timeout, generate_tsv, accept_invalid_certificate, flag):
        """
        Run the actual analysis, this method is a wrapper for the non-UI version of the tool and basically calls the
        main/init method by itself.

        :param target: target URL
        :param load_placeholer: load placeholder option
        :param generate_html: generate html option
        :param generate_schema: generate schema option
        :param generate_queries: generate queries option
        :param flag: "JSON" file or normal target otherwise
        :return: None
        """
        self._omnibar.reset()
        args = {
            "key": key,
            "proxy": proxy,
            'headers': headers,
            "detect": load_placeholer,
            "generate_html": generate_html,
            "generate_schema": generate_schema,
            "generate_queries": generate_queries,
            "generate_cycles": generate_cycles,
            "cycles_timeout": cycles_timeout,
            "cycles_streaming":
            False,  # there is no UI to show streaming cycles.
            "generate_tsv": generate_tsv,
            "target": target if flag != "JSON" else None,
            "schema_json_file": target if flag == "JSON" else None,
            "insecure_certificate": accept_invalid_certificate,
            "requests": self._requests,
            "stub_responses": self._stub_responses
        }

        # call init method from Introspection tool
        if flag == 'JSON':
            with open(target, 'r') as f:
                host = os.path.splitext(os.path.basename(target))[0]
                self._http_mutator.set_stub_response(host, f.read())

        def async_run():
            init(AttrDict(args.copy()))
            self._state['runs'].append(
                (target, key, proxy, headers, load_placeholer, generate_html,
                 generate_schema, generate_queries, generate_cycles,
                 cycles_timeout, generate_tsv, accept_invalid_certificate,
                 flag))
            self._fileview.refresh()

        run_async(async_run)
        return
Exemplo n.º 2
0
    def _run(self, target, key, proxy, headers, load_placeholer, generate_html,
             generate_schema, generate_queries, accept_invalid_certificate,
             flag):
        """
        Run the actual analysis, this method is a wrapper for the non-UI version of the tool and basically calls the
        main/init method by itself.

        :param target: target URL
        :param load_placeholer: load placeholder option
        :param generate_html: generate html option
        :param generate_schema: generate schema option
        :param generate_queries: generate queries option
        :param flag: "JSON" file or normal target otherwise
        :return: None
        """
        self._omnibar.reset()
        args = {
            "key": key,
            "proxy": proxy,
            'headers': headers,
            "detect": load_placeholer,
            "generate_html": generate_html,
            "generate_schema": generate_schema,
            "generate_queries": generate_queries,
            "target": target if flag != "JSON" else None,
            "schema_json_file": target if flag == "JSON" else None,
            "insecure_certificate": accept_invalid_certificate
        }

        # call init method from Introspection tool
        def async_run():
            init(AttrDict(args.copy()))
            self._state['runs'].append(
                (target, key, proxy, headers, load_placeholer, generate_html,
                 generate_schema, generate_queries, accept_invalid_certificate,
                 flag))
            self._fileview.refresh()

        run_async(async_run)
        return