Beispiel #1
0
  def build_page1_setting_tech(self, m):
    _f = Frame.new(m._('Technique'))
    _boxes = [Box() for _ in range(9)]

    _boxes[0].pack_start(m._tech_area_tech_ckbtn, False, True, 5)
    _boxes[0].pack_end(m._tech_area_tech_entry, False, True, 5)
    _boxes[1].pack_start(m._tech_area_time_sec_ckbtn, False, True, 5)
    _boxes[1].pack_end(m._tech_area_time_sec_entry, False, True, 5)
    _boxes[2].pack_start(m._tech_area_union_col_ckbtn, False, True, 5)
    _boxes[2].pack_end(m._tech_area_union_col_entry, False, True, 5)
    _boxes[3].pack_start(m._tech_area_union_char_ckbtn, False, True, 5)
    _boxes[3].pack_end(m._tech_area_union_char_entry, False, True, 5)
    _boxes[4].pack_start(m._tech_area_union_from_ckbtn, False, True, 5)
    _boxes[4].pack_end(m._tech_area_union_from_entry, False, True, 5)
    _boxes[5].pack_start(m._tech_area_dns_ckbtn, True, True, 5)
    _boxes[5].pack_end(m._tech_area_dns_entry, True, True, 5)
    _boxes[6].pack_start(m._tech_area_second_url_ckbtn, True, True, 5)
    _boxes[6].pack_end(m._tech_area_second_url_entry, True, True, 5)
    _boxes[7].pack_start(m._tech_area_second_req_ckbtn, False, True, 5)

    m._tech_area_second_req_chooser.connect(
      'clicked',
      self._handlers.set_file_entry_text,
      [m._tech_area_second_req_entry]
    )

    _boxes[8].pack_end(m._tech_area_second_req_chooser, False, True, 5)
    _boxes[8].pack_end(m._tech_area_second_req_entry, True, True, 5)

    _tech_area_opts = Box(orientation=VERTICAL, spacing=3)
    for _ in _boxes:
      _tech_area_opts.add(_)

    _f.add(_tech_area_opts)
    return _f
Beispiel #2
0
  def build_page1_file_os_registry(self, m):
    _f = Frame.new(m._('Access to register in remote WIN'))
    _boxes = [Box() for _ in range(3)]

    m._registry_area_reg_combobox.append('--reg-read', m._('read'))
    m._registry_area_reg_combobox.append('--reg-add', m._('add'))
    m._registry_area_reg_combobox.append('--reg-del', m._('delete'))
    m._registry_area_reg_combobox.set_active(0)

    _boxes[0].pack_start(m._registry_area_reg_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._registry_area_reg_combobox, False, True, 5)
    _boxes[1].pack_start(m._registry_area_reg_key_label, False, True, 5)
    _boxes[1].pack_start(m._registry_area_reg_key_entry, True, True, 5)
    _boxes[1].pack_start(m._registry_area_reg_value_label, False, True, 5)
    _boxes[1].pack_start(m._registry_area_reg_value_entry, True, True, 5)
    _boxes[2].pack_start(m._registry_area_reg_data_label, False, True, 5)
    _boxes[2].pack_start(m._registry_area_reg_data_entry, True, True, 5)
    _boxes[2].pack_start(m._registry_area_reg_type_label, False, True, 5)
    _boxes[2].pack_start(m._registry_area_reg_type_entry, True, True, 5)

    _registry_area_opts = Box(orientation=VERTICAL)
    for _ in _boxes:
      _registry_area_opts.add(_)

    _f.add(_registry_area_opts)
    return _f
Beispiel #3
0
  def build_page1_setting_hidden(self, m):
    _f = Frame.new(m._('Hidden'))
    _boxes = [Box() for _ in range(6)]
    _ = 0
    _boxes[_].pack_start(m._hidden_area_crack_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_debug_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_profile_ckbtn, False, True, 5)
    _ += 1
    _boxes[_].pack_start(m._hidden_area_disable_precon_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_disable_stats_ckbtn, False, True, 5)
    _ += 1
    _boxes[_].pack_start(m._hidden_area_force_dbms_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_force_dns_ckbtn, False, True, 0)
    _boxes[_].pack_start(m._hidden_area_force_pivoting_ckbtn, False, True, 5)
    _ += 1
    _boxes[_].pack_start(m._hidden_area_smoke_test_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_live_test_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_vuln_test_ckbtn, False, True, 5)
    _ += 1
    _boxes[_].pack_start(m._hidden_area_murphy_rate_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_stop_fail_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_run_case_ckbtn, False, True, 5)
    _ += 1
    _boxes[_].pack_start(m._hidden_area_dummy_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_api_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_taskid_ckbtn, False, True, 5)
    _boxes[_].pack_start(m._hidden_area_database_ckbtn, False, True, 5)

    _hidden_area_opts = Box(orientation=VERTICAL, spacing=5)
    for _ in _boxes:
      _hidden_area_opts.add(_)

    _f.add(_hidden_area_opts)
    return _f
Beispiel #4
0
  def build_page1_setting_optimize(self, m):
    _f = Frame.new(m._('Optimize'))
    _boxes = [Box() for _ in range(5)]

    m._optimize_area_turn_all_ckbtn.connect('clicked', self.optimize_area_controller)

    _boxes[0].pack_start(m._optimize_area_turn_all_ckbtn, False, True, 5)

    m._optimize_area_thread_num_ckbtn.connect(
      'clicked',
      self.cb_single, m._optimize_area_predict_ckbtn)
    _boxes[1].pack_start(m._optimize_area_thread_num_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._optimize_area_thread_num_spinbtn, True, True, 5)

    m._optimize_area_predict_ckbtn.connect(
      'clicked',
      self.cb_single, m._optimize_area_thread_num_ckbtn)
    _boxes[2].pack_start(m._optimize_area_predict_ckbtn, False, True, 5)

    m._optimize_area_keep_alive_ckbtn.connect(
      'clicked',
      self.cb_single, m._request_area_proxy_ckbtn)
    _boxes[3].pack_start(m._optimize_area_keep_alive_ckbtn, False, True, 5)

    m._optimize_area_null_connect_ckbtn.connect(
      'clicked',
      self.cb_single, m._detection_area_text_only_ckbtn)
    _boxes[4].pack_start(m._optimize_area_null_connect_ckbtn, False, True, 5)

    _optimize_area_opts = Box(orientation=VERTICAL, spacing=6)
    for _ in _boxes:
      _optimize_area_opts.add(_)

    _f.add(_optimize_area_opts)
    return _f
Beispiel #5
0
  def build_page1_enumeration_meta(self, m):
    _f = Frame.new(m._('DB, Table, Column name...'))
    _boxes = [Box() for _ in range(3)]

    _boxes[0].pack_start(m._meta_area_D_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._meta_area_D_entry, True, True, 5)
    _boxes[0].pack_start(m._meta_area_T_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._meta_area_T_entry, True, True, 5)
    _boxes[0].pack_start(m._meta_area_C_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._meta_area_C_entry, True, True, 5)
    _boxes[1].pack_start(m._meta_area_U_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._meta_area_U_entry, True, True, 5)
    _boxes[1].pack_start(m._meta_area_X_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._meta_area_X_entry, True, True, 5)
    _boxes[1].pack_start(m._meta_area_pivot_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._meta_area_pivot_entry, True, True, 5)
    _boxes[2].pack_start(m._meta_area_where_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._meta_area_where_entry, True, True, 5)

    _meta_area_opts = Box(orientation=VERTICAL)
    for _ in _boxes:
      _meta_area_opts.pack_start(_, False, True, 5)

    _f.add(_meta_area_opts)
    return _f
Beispiel #6
0
    def _build_page1_file_os_access(self, m):
        f = Frame.new('访问后端OS')

        _boxes = [Box() for _ in range(3)]

        _boxes[0].pack_start(m._file_os_access_os_cmd_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._file_os_access_os_cmd_entry, True, True, 5)

        _for_msf_label = label(label='Meterpreter相关(TCP连接):', margin_start=50)

        _boxes[1].pack_start(m._file_os_access_os_shell_ckbtn, False, True, 5)
        _boxes[1].pack_start(_for_msf_label, False, True, 5)
        _boxes[1].pack_start(m._file_os_access_os_pwn_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._file_os_access_os_smbrelay_ckbtn, False, True,
                             5)
        _boxes[1].pack_start(m._file_os_access_os_bof_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._file_os_access_priv_esc_ckbtn, False, True, 5)

        m._file_os_access_msf_path_chooser.connect(
            'clicked', self._handlers.set_file_entry_text,
            [m._file_os_access_msf_path_entry, '选择 本地Metasploit安装目录'])

        _boxes[2].pack_start(m._file_os_access_msf_path_ckbtn, False, True, 5)
        _boxes[2].pack_start(m._file_os_access_msf_path_entry, True, True, 0)
        _boxes[2].pack_start(m._file_os_access_msf_path_chooser, False, True,
                             5)
        _boxes[2].pack_start(m._file_os_access_tmp_path_ckbtn, False, True, 5)
        _boxes[2].pack_start(m._file_os_access_tmp_path_entry, True, True, 5)

        _file_os_access_opts = Box(orientation=VERTICAL, spacing=6)
        for _ in _boxes:
            _file_os_access_opts.add(_)

        f.add(_file_os_access_opts)
        return f
Beispiel #7
0
    def _build_page1_file_os_registry(self, m):
        f = Frame.new('访问WIN下注册表')

        _boxes = [Box() for _ in range(3)]

        m._file_os_registry_reg_combobox.append('--reg-read', '读取')
        m._file_os_registry_reg_combobox.append('--reg-add', '新增')
        m._file_os_registry_reg_combobox.append('--reg-del', '删除')
        m._file_os_registry_reg_combobox.set_active(0)

        _boxes[0].pack_start(m._file_os_registry_reg_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._file_os_registry_reg_combobox, False, True, 5)
        _boxes[1].pack_start(m._file_os_registry_reg_key_label, False, True, 5)
        _boxes[1].pack_start(m._file_os_registry_reg_key_entry, True, True, 5)
        _boxes[1].pack_start(m._file_os_registry_reg_value_label, False, True,
                             5)
        _boxes[1].pack_start(m._file_os_registry_reg_value_entry, True, True,
                             5)
        _boxes[2].pack_start(m._file_os_registry_reg_data_label, False, True,
                             5)
        _boxes[2].pack_start(m._file_os_registry_reg_data_entry, True, True, 5)
        _boxes[2].pack_start(m._file_os_registry_reg_type_label, False, True,
                             5)
        _boxes[2].pack_start(m._file_os_registry_reg_type_entry, True, True, 5)

        _file_os_registry_opts = Box(orientation=VERTICAL)
        for _ in _boxes:
            _file_os_registry_opts.add(_)

        f.add(_file_os_registry_opts)
        return f
Beispiel #8
0
    def _build_page1_enumeration_meta(self, m):
        f = Frame.new('数据库名, 表名, 列名...')

        _boxes = [Box() for _ in range(3)]

        _boxes[0].pack_start(m._meta_area_D_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._meta_area_D_entry, True, True, 5)
        _boxes[0].pack_start(m._meta_area_T_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._meta_area_T_entry, True, True, 5)
        _boxes[0].pack_start(m._meta_area_C_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._meta_area_C_entry, True, True, 5)
        _boxes[1].pack_start(m._meta_area_U_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._meta_area_U_entry, True, True, 5)
        _boxes[1].pack_start(m._meta_area_X_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._meta_area_X_entry, True, True, 5)
        _boxes[1].pack_start(m._meta_area_pivot_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._meta_area_pivot_entry, True, True, 5)
        _boxes[2].pack_start(m._meta_area_where_ckbtn, False, True, 5)
        _boxes[2].pack_start(m._meta_area_where_entry, True, True, 5)

        _meta_area_opts = Box(orientation=VERTICAL)
        for _ in _boxes:
            _meta_area_opts.pack_start(_, False, True, 5)

        f.add(_meta_area_opts)
        return f
Beispiel #9
0
  def build_page1_request_header(self, m):
    _f = Frame.new(m._('HTTP header'))
    _boxes = [Box() for _ in range(3)]

    m._request_area_random_agent_ckbtn.set_active(True)

    _boxes[0].pack_start(m._request_area_random_agent_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._request_area_mobile_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._request_area_user_agent_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._request_area_user_agent_entry, True, True, 5)
    _boxes[1].pack_start(m._request_area_host_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._request_area_host_entry, True, True, 5)
    _boxes[1].pack_start(m._request_area_referer_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._request_area_referer_entry, True, True, 5)
    _boxes[2].pack_start(m._request_area_header_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._request_area_header_entry, True, True, 5)
    _boxes[2].pack_start(m._request_area_headers_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._request_area_headers_entry, True, True, 5)

    _request_header_opts = Box(orientation=VERTICAL, spacing = 5)
    for _ in _boxes:
      _request_header_opts.add(_)

    _f.add(_request_header_opts)
    return _f
Beispiel #10
0
  def build_page1_file_write(self, m):
    _f = Frame.new(m._('Upload local file'))
    _boxes = [Box() for _ in range(3)]

    m._file_write_area_shared_lib_chooser.connect(
      'clicked',
      self._handlers.set_file_entry_text,
      [m._file_write_area_shared_lib_entry]
    )

    _boxes[0].pack_start(m._file_write_area_udf_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._file_write_area_shared_lib_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._file_write_area_shared_lib_entry, True, True, 0)
    _boxes[0].pack_start(m._file_write_area_shared_lib_chooser, False, True, 5)

    m._file_write_area_file_write_chooser.connect(
      'clicked',
      self._handlers.set_file_entry_text,
      [m._file_write_area_file_write_entry]
    )

    _boxes[1].pack_start(m._file_write_area_file_write_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._file_write_area_file_write_entry, True, True, 0)
    _boxes[1].pack_start(m._file_write_area_file_write_chooser, False, True, 5)

    _boxes[2].pack_start(m._file_write_area_file_dest_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._file_write_area_file_dest_entry, True, True, 5)

    _file_write_area_opts = Box(orientation=VERTICAL, spacing=6)
    for _ in _boxes:
      _file_write_area_opts.pack_start(_, False, True, 5)

    _f.add(_file_write_area_opts)
    return _f
Beispiel #11
0
  def build_page1_file_os_access(self, m):
    _f = Frame.new(m._('Access to the OS behind the DBMS'))
    _boxes = [Box() for _ in range(3)]

    _boxes[0].pack_start(m._os_access_area_os_cmd_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._os_access_area_os_cmd_entry, True, True, 5)

    _for_msf_label = label(label = m._('with Meterpreter(TCP connect):'),
                           margin_start = 50)

    _boxes[1].pack_start(m._os_access_area_os_shell_ckbtn, False, True, 5)
    _boxes[1].pack_start(_for_msf_label, False, True, 5)
    _boxes[1].pack_start(m._os_access_area_os_pwn_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._os_access_area_os_smbrelay_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._os_access_area_os_bof_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._os_access_area_priv_esc_ckbtn, False, True, 5)

    m._os_access_area_msf_path_chooser.connect(
      'clicked',
      self._handlers.set_file_entry_text,
      [m._os_access_area_msf_path_entry, 'choose local Metasploit install path']
    )

    _boxes[2].pack_start(m._os_access_area_msf_path_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._os_access_area_msf_path_entry, True, True, 0)
    _boxes[2].pack_start(m._os_access_area_msf_path_chooser, False, True, 5)
    _boxes[2].pack_start(m._os_access_area_tmp_path_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._os_access_area_tmp_path_entry, True, True, 5)

    _os_access_area_opts = Box(orientation=VERTICAL, spacing=6)
    for _ in _boxes:
      _os_access_area_opts.add(_)

    _f.add(_os_access_area_opts)
    return _f
Beispiel #12
0
  def build_page1_enumeration_enum(self, m):
    _f = Frame.new(m._('Enumeration'))
    _grid = g.Grid(column_spacing = 20, margin_left = 5, margin_right = 5)

    for _x in range(len(m._enum_area_opts_ckbtns)):
      for _y in range(len(m._enum_area_opts_ckbtns[_x])):
        _grid.attach(m._enum_area_opts_ckbtns[_x][_y], _x, _y, 1, 1)

    _f.add(_grid)
    return _f
Beispiel #13
0
    def _build_page1_request_data(self, m):
        f = Frame.new('HTTP data')

        _boxes = [Box() for _ in range(8)]

        _boxes[0].pack_start(m._request_area_method_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._request_area_method_entry, False, True, 5)
        _boxes[0].pack_start(m._request_area_param_del_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._request_area_param_del_entry, False, True, 5)
        _boxes[0].pack_start(m._request_area_chunked_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._request_area_post_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._request_area_post_entry, True, True, 5)
        _boxes[2].pack_start(g.Separator.new(HORIZONTAL), True, True, 5)
        _boxes[3].pack_start(m._request_area_cookie_ckbtn, False, True, 5)
        _boxes[3].pack_start(m._request_area_cookie_entry, True, True, 5)
        _boxes[3].pack_start(m._request_area_cookie_del_ckbtn, False, True, 5)
        _boxes[3].pack_start(m._request_area_cookie_del_entry, False, True, 5)

        m._request_area_load_cookies_chooser.connect(
            'clicked', self._handlers.set_file_entry_text,
            [m._request_area_load_cookies_entry])

        _boxes[4].pack_start(m._request_area_load_cookies_ckbtn, False, True,
                             5)
        _boxes[4].pack_start(m._request_area_load_cookies_entry, True, True, 0)
        _boxes[4].pack_start(m._request_area_load_cookies_chooser, False, True,
                             5)
        _boxes[4].pack_start(m._request_area_drop_set_cookie_ckbtn, False,
                             True, 5)
        _boxes[5].pack_start(g.Separator.new(HORIZONTAL), True, True, 5)

        m._request_area_auth_file_chooser.connect(
            'clicked', self._handlers.set_file_entry_text,
            [m._request_area_auth_file_entry])

        _boxes[6].pack_start(m._request_area_auth_type_ckbtn, False, True, 5)
        _boxes[6].pack_start(m._request_area_auth_type_entry, True, True, 5)
        _boxes[6].pack_start(m._request_area_auth_cred_ckbtn, False, True, 5)
        _boxes[6].pack_start(m._request_area_auth_cred_entry, True, True, 5)
        _boxes[6].pack_start(m._request_area_auth_file_ckbtn, False, True, 5)
        _boxes[6].pack_start(m._request_area_auth_file_entry, True, True, 0)
        _boxes[6].pack_start(m._request_area_auth_file_chooser, False, True, 5)
        _boxes[7].pack_start(m._request_area_csrf_method_ckbtn, False, True, 5)
        _boxes[7].pack_start(m._request_area_csrf_method_entry, False, True, 5)
        _boxes[7].pack_start(m._request_area_csrf_token_ckbtn, False, True, 5)
        _boxes[7].pack_start(m._request_area_csrf_token_entry, True, True, 5)
        _boxes[7].pack_start(m._request_area_csrf_url_ckbtn, False, True, 5)
        _boxes[7].pack_start(m._request_area_csrf_url_entry, True, True, 5)

        _request_data_opts = Box(orientation=VERTICAL, spacing=5)
        for _ in _boxes:
            _request_data_opts.add(_)

        f.add(_request_data_opts)
        return f
Beispiel #14
0
    def _build_page1_setting_detection(self, m):
        f = Frame.new('探测选项')
        _boxes = [Box() for _ in range(9)]

        m._detection_area_level_ckbtn.connect('clicked', self.cb_single,
                                              m._inject_area_param_ckbtn)

        _boxes[0].pack_start(m._detection_area_level_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._detection_area_level_scale, True, True, 5)
        _boxes[1].pack_start(m._detection_area_risk_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._detection_area_risk_scale, True, True, 10)
        _boxes[2].pack_start(m._detection_area_str_ckbtn, False, True, 5)
        _boxes[2].pack_end(m._detection_area_str_entry, True, True, 5)
        _boxes[3].pack_start(m._detection_area_not_str_ckbtn, False, True, 5)
        _boxes[3].pack_end(m._detection_area_not_str_entry, True, True, 5)
        _boxes[4].pack_start(m._detection_area_re_ckbtn, False, True, 5)
        _boxes[4].pack_end(m._detection_area_re_entry, True, True, 5)
        _boxes[5].pack_start(m._detection_area_code_ckbtn, False, True, 5)
        _boxes[5].pack_start(m._detection_area_code_entry, False, True, 5)

        m._detection_area_text_only_ckbtn.connect(
            'clicked', self.cb_single, m._optimize_area_null_connect_ckbtn)
        m._detection_area_text_only_ckbtn.connect(
            'clicked', self.cb_single, m._detection_area_titles_ckbtn)
        m._detection_area_titles_ckbtn.connect(
            'clicked', self.cb_single, m._detection_area_text_only_ckbtn)

        _boxes[6].pack_start(m._detection_area_text_only_ckbtn, False, True, 5)
        _boxes[6].pack_start(m._detection_area_titles_ckbtn, True, False, 5)
        _boxes[6].pack_start(m._detection_area_smart_ckbtn, False, True, 5)

        _boxes[7].pack_start(g.Separator.new(HORIZONTAL), True, True, 5)
        _boxes[8].set_spacing(6)
        _level_note = label(label='Level 1(默认): 所有GET, POST参数\n'
                            'Level 2  追加: Cookie\n'
                            'Level 3  追加: User-Agent/Referer\n'
                            'Level 4  追加: 啥?\n'
                            'Level 5  追加: Host报头',
                            halign=g.Align.START)
        _risk_note = label(label='Risk 1(默认): 基本无风险\n'
                           'Risk 2  追加: 大量时间型盲注\n'
                           'Risk 3  追加: OR型布尔盲注',
                           halign=g.Align.START)
        # _risk_note.override_background_color(g.StateFlags.NORMAL, d.RGBA(255, 0, 0, 1))
        _boxes[8].pack_start(_level_note, True, True, 5)
        _boxes[8].pack_start(_risk_note, True, True, 5)

        _detection_area_opts = Box(orientation=VERTICAL, spacing=3)
        for _ in _boxes:
            _detection_area_opts.add(_)

        f.add(_detection_area_opts)
        return f
Beispiel #15
0
  def build_page1_other_misc(self, m):
    _f = Frame.new(m._('Misc'))
    _boxes = [Box() for _ in range(5)]

    m._misc_area_purge_ckbtn.get_children()[0].set_use_markup(True)

    _boxes[0].pack_start(m._misc_area_skip_heuristics_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._misc_area_skip_waf_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._misc_area_unstable_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._misc_area_list_tampers_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._misc_area_sqlmap_shell_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._misc_area_disable_color_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._general_area_eta_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_gpage_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_gpage_spinbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_beep_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_offline_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_purge_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_dependencies_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._misc_area_update_ckbtn, False, True, 5)

    m._misc_area_tmp_dir_chooser.connect(
      'clicked',
      self._handlers.set_file_entry_text,
      [m._misc_area_tmp_dir_entry, 'choose temp dir']
    )
    _boxes[2].pack_start(m._misc_area_alert_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._misc_area_alert_entry, True, True, 5)
    _boxes[2].pack_start(m._misc_area_tmp_dir_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._misc_area_tmp_dir_entry, True, True, 0)
    _boxes[2].pack_start(m._misc_area_tmp_dir_chooser, False, True, 5)
    _boxes[3].pack_start(m._misc_area_answers_ckbtn, False, True, 5)
    _boxes[3].pack_start(m._misc_area_answers_entry, True, True, 5)
    _boxes[3].pack_start(m._misc_area_z_ckbtn, False, True, 5)
    _boxes[3].pack_start(m._misc_area_z_entry, True, True, 5)

    m._misc_area_results_file_chooser.connect(
      'clicked',
      self._handlers.set_file_entry_text,
      [m._misc_area_results_file_entry]
    )
    _boxes[4].pack_start(m._misc_area_results_file_ckbtn, False, True, 5)
    _boxes[4].pack_start(m._misc_area_results_file_entry, True, True, 0)
    _boxes[4].pack_start(m._misc_area_results_file_chooser, False, True, 5)

    _page1_other_misc_opts = Box(orientation=VERTICAL, spacing=6)
    for _ in _boxes:
      _page1_other_misc_opts.add(_)

    _f.add(_page1_other_misc_opts)
    return _f
Beispiel #16
0
  def build_page1_enumeration_brute_force(self, m):
    _f = Frame.new(m._('Brute force'))
    _brute_force_area_opts = Box(orientation=VERTICAL)

    _row1 = Box()
    _row1.pack_start(label.new(m._('check existence of:')), False, True, 10)
    _row1.pack_start(m._brute_force_area_common_tables_ckbtn, False, True, 0)
    _row1.pack_start(m._brute_force_area_common_columns_ckbtn, False, True, 5)
    _row1.pack_start(m._brute_force_area_common_files_ckbtn, False, True, 0)

    _brute_force_area_opts.pack_start(_row1, False, True, 5)

    _f.add(_brute_force_area_opts)
    return _f
Beispiel #17
0
  def build_page1_file_read(self, m):
    _f = Frame.new(m._('Read remote file'))
    _file_read_area_opts = Box(orientation=VERTICAL, spacing=6)

    _row1 = Box()
    m._file_read_area_file_read_btn.connect('clicked', self._handlers.read_dumped_file)

    _row1.pack_start(m._file_read_area_file_read_ckbtn, False, True, 5)
    _row1.pack_start(m._file_read_area_file_read_entry, True, True, 0)
    _row1.pack_start(m._file_read_area_file_read_btn, False, True, 5)

    _file_read_area_opts.pack_start(_row1, False, True, 5)

    _f.add(_file_read_area_opts)
    return _f
Beispiel #18
0
    def _build_page1_setting_tamper(self, m):
        '''
    frame套box, box再套scroll会出现:
    一直按回车出现滚动条后, 光标会下移 直到移出可见区, 原内容不会上移
    即内容的显示没有 下滑 滚轮的效果.
    '''
        f = Frame.new('tamper脚本')

        _scrolled = g.ScrolledWindow()
        _scrolled.set_size_request(300, -1)
        _scrolled.set_policy(g.PolicyType.NEVER, g.PolicyType.ALWAYS)
        _scrolled.add(m._tamper_area_tamper_view)

        f.add(_scrolled)
        return f
Beispiel #19
0
  def build_page1_setting_detection(self, m):
    _f = Frame.new(m._('Detection'))
    _boxes = [Box() for _ in range(9)]

    m._detection_area_level_ckbtn.connect(
      'clicked',
      self.cb_single, m._inject_area_param_ckbtn)

    _boxes[0].pack_start(m._detection_area_level_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._detection_area_level_scale, True, True, 5)
    _boxes[1].pack_start(m._detection_area_risk_ckbtn, False, True, 5)
    _boxes[1].pack_start(m._detection_area_risk_scale, True, True, 10)
    _boxes[2].pack_start(m._detection_area_str_ckbtn, False, True, 5)
    _boxes[2].pack_end(m._detection_area_str_entry, True, True, 5)
    _boxes[3].pack_start(m._detection_area_not_str_ckbtn, False, True, 5)
    _boxes[3].pack_end(m._detection_area_not_str_entry, True, True, 5)
    _boxes[4].pack_start(m._detection_area_re_ckbtn, False, True, 5)
    _boxes[4].pack_end(m._detection_area_re_entry, True, True, 5)
    _boxes[5].pack_start(m._detection_area_code_ckbtn, False, True, 5)
    _boxes[5].pack_start(m._detection_area_code_entry, False, True, 5)

    m._detection_area_text_only_ckbtn.connect(
      'clicked',
      self.cb_single, m._optimize_area_null_connect_ckbtn)
    m._detection_area_text_only_ckbtn.connect(
      'clicked',
      self.cb_single, m._detection_area_titles_ckbtn)
    m._detection_area_titles_ckbtn.connect(
      'clicked',
      self.cb_single, m._detection_area_text_only_ckbtn)

    _boxes[6].pack_start(m._detection_area_text_only_ckbtn, False, True, 5)
    _boxes[6].pack_start(m._detection_area_titles_ckbtn, True, False, 5)
    _boxes[6].pack_start(m._detection_area_smart_ckbtn, False, True, 5)
    _boxes[7].pack_start(g.Separator.new(HORIZONTAL), True, True, 5)
    # m._detection_area_risk_note.override_background_color(g.StateFlags.NORMAL,
    #                                                       d.RGBA(255, 0, 0, 1))
    _boxes[8].set_spacing(6)
    _boxes[8].pack_start(m._detection_area_level_note, True, True, 5)
    _boxes[8].pack_start(m._detection_area_risk_note, True, True, 5)

    _detection_area_opts = Box(orientation=VERTICAL, spacing=3)
    for _ in _boxes:
      _detection_area_opts.add(_)

    _f.add(_detection_area_opts)
    return _f
Beispiel #20
0
    def _build_page1(self):
        box = Box(orientation=VERTICAL, spacing=6)
        box.set_border_width(10)

        # sqlmap命令语句
        _cmd_area = Frame.new('A.收集选项 的结果显示在这:')

        _cmd_area.add(m._cmd_entry)

        box.pack_start(_cmd_area, False, True, 0)

        # 主构造区
        _notebook = Notebook(m, self._handlers)

        m._page1_misc_purge_ckbtn.connect('toggled', self._show_warn,
                                          '这将抹除所有本地记录!\n确定勾选?')
        m._page1_general_flush_session_ckbtn.connect('toggled',
                                                     self._show_warn,
                                                     '这将清除本地缓存!\n确定勾选?')

        _notebook.add_events(d.EventMask.SCROLL_MASK
                             | d.EventMask.SMOOTH_SCROLL_MASK)
        _notebook.connect('scroll-event', self.scroll_page)

        box.pack_start(_notebook, True, True, 0)

        # 构造与执行
        _exec_area = Box()

        _build_button = btn.new_with_mnemonic('A.收集选项(_A)')
        _build_button.connect('clicked', self._handlers.build_all)
        # 用于改善ui的使用体验
        _unselect_all_btn = btn.new_with_mnemonic('反选所有复选框(_S)')
        _unselect_all_btn.connect('clicked', self.unselect_all_ckbtn)
        _clear_all_entry = btn.new_with_mnemonic('清空所有输入框(_D)')
        _clear_all_entry.connect('clicked', self.clear_all_entry)

        _run_button = btn.new_with_mnemonic('B.开始(_F)')
        _run_button.connect('clicked', self._handlers.run_cmdline)

        _exec_area.pack_start(_build_button, False, True, 0)
        _exec_area.pack_start(_unselect_all_btn, True, False, 0)
        _exec_area.pack_start(_clear_all_entry, True, False, 0)
        _exec_area.pack_end(_run_button, False, True, 0)

        box.pack_end(_exec_area, False, True, 0)
        return box
Beispiel #21
0
    def _build_page1_other_misc(self, m):
        f = Frame.new('杂项')

        _boxes = [Box() for _ in range(5)]

        _boxes[0].pack_start(m._page1_misc_skip_waf_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._page1_misc_unstable_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._page1_misc_list_tampers_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._page1_misc_sqlmap_shell_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._page1_misc_disable_color_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._page1_general_eta_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_gpage_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_gpage_spinbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_beep_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_offline_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_purge_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_dependencies_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._page1_misc_update_ckbtn, False, True, 5)

        m._page1_misc_tmp_dir_chooser.connect(
            'clicked', self._handlers.set_file_entry_text,
            [m._page1_misc_tmp_dir_entry, '选择 本地临时目录'])
        _boxes[2].pack_start(m._page1_misc_alert_ckbtn, False, True, 5)
        _boxes[2].pack_start(m._page1_misc_alert_entry, True, True, 5)
        _boxes[2].pack_start(m._page1_misc_tmp_dir_ckbtn, False, True, 5)
        _boxes[2].pack_start(m._page1_misc_tmp_dir_entry, True, True, 0)
        _boxes[2].pack_start(m._page1_misc_tmp_dir_chooser, False, True, 5)
        _boxes[3].pack_start(m._page1_misc_answers_ckbtn, False, True, 5)
        _boxes[3].pack_start(m._page1_misc_answers_entry, True, True, 5)
        _boxes[3].pack_start(m._page1_misc_z_ckbtn, False, True, 5)
        _boxes[3].pack_start(m._page1_misc_z_entry, True, True, 5)

        m._page1_misc_results_file_chooser.connect(
            'clicked', self._handlers.set_file_entry_text,
            [m._page1_misc_results_file_entry])
        _boxes[4].pack_start(m._page1_misc_results_file_ckbtn, False, True, 5)
        _boxes[4].pack_start(m._page1_misc_results_file_entry, True, True, 0)
        _boxes[4].pack_start(m._page1_misc_results_file_chooser, False, True,
                             5)

        _page1_other_misc_opts = Box(orientation=VERTICAL, spacing=6)
        for _ in _boxes:
            _page1_other_misc_opts.add(_)

        f.add(_page1_other_misc_opts)
        return f
Beispiel #22
0
    def build_page1(self):
        box = Box(orientation=VERTICAL, spacing=6)
        box.set_border_width(10)
        _ = m._

        # sqlmap命令语句
        _cmd_area = Frame.new(_('A.Options are collected here:'))
        _cmd_area.add(m._cmd_entry)

        # 主构造区
        _notebook = Notebook(m, self._handlers)

        m._general_area_flush_session_ckbtn.connect(
            'toggled', self._show_warn, 'check --flush-session:\n\n'
            'Flush session files for current target?')
        m._misc_area_purge_ckbtn.connect(
            'toggled', self._show_warn, 'check --purge:\n\n'
            'Safely remove all content from sqlmap data directory?')

        _notebook.add_events(d.EventMask.SCROLL_MASK
                             | d.EventMask.SMOOTH_SCROLL_MASK)
        _notebook.connect('scroll-event', self.scroll_page)

        # 构造与执行
        _exec_area = Box()

        _build_button = btn.new_with_mnemonic(_('A.collect(_A)'))
        _build_button.connect('clicked', self._handlers.build_all)

        _unselect_all_btn = btn.new_with_mnemonic(_('unselect(_S)'))
        _unselect_all_btn.connect('clicked', self.unselect_all_ckbtn)
        _clear_all_entry = btn.new_with_mnemonic(_('clear all inputs(_D)'))
        _clear_all_entry.connect('clicked', self.clear_all_entry)

        _run_button = btn.new_with_mnemonic(_('B.run(_F)'))
        _run_button.connect('clicked', self._handlers.run_cmdline)

        _exec_area.pack_start(_build_button, False, True, 0)
        _exec_area.pack_start(_unselect_all_btn, True, False, 0)
        _exec_area.pack_start(_clear_all_entry, True, False, 0)
        _exec_area.pack_end(_run_button, False, True, 0)

        box.pack_start(_cmd_area, False, True, 0)
        box.pack_start(_notebook, True, True, 0)
        box.pack_end(_exec_area, False, True, 0)
        return box
Beispiel #23
0
    def _build_page1_enumeration_enum(self, m):
        f = Frame.new('枚举')

        _enum_area_opts = Box(spacing=6)

        _enu_area_opts_cols = [Box(orientation=VERTICAL) for _ in range(3)]

        for _x in range(len(m._enum_area_opts_ckbtns)):
            for _y in m._enum_area_opts_ckbtns[_x]:
                # 每列, 至上往下add
                _enu_area_opts_cols[_x].add(_y)
            # 添加三列, 方便对齐...
            _enum_area_opts.pack_start(_enu_area_opts_cols[_x], False, True,
                                       10)

        f.add(_enum_area_opts)
        return f
Beispiel #24
0
  def build_page1_enumeration_blind(self, m):
    _f = Frame.new(m._('Blind inject options'))
    _boxes = [Box() for _ in range(2)]

    _boxes[0].pack_start(m._blind_area_first_ckbtn, False, True, 5)
    _boxes[0].pack_end(m._blind_area_first_entry, False, True, 5)
    # _boxes[0].pack_start(label.new('个字符'), False, True, 5)
    _boxes[1].pack_start(m._blind_area_last_ckbtn, False, True, 5)
    _boxes[1].pack_end(m._blind_area_last_entry, False, True, 5)
    # _boxes[1].pack_start(label.new('个字符'), False, True, 5)

    _blind_area_opts = Box(orientation=VERTICAL)
    for _ in _boxes:
      _blind_area_opts.pack_start(_, False, True, 10)

    _f.add(_blind_area_opts)
    return _f
Beispiel #25
0
  def build_page1_enumeration_limit(self, m):
    _f = Frame.new(m._('Limit'))
    _boxes = [Box() for _ in range(2)]

    _boxes[0].pack_start(m._limit_area_start_ckbtn, False, True, 5)
    _boxes[0].pack_end(m._limit_area_start_entry, False, True, 5)
    # _boxes[0].pack_start(label.new('行'), False, True, 5)
    _boxes[1].pack_start(m._limit_area_stop_ckbtn, False, True, 5)
    _boxes[1].pack_end(m._limit_area_stop_entry, False, True, 5)
    # _boxes[1].pack_start(label.new('行'), False, True, 5)

    _limit_area_opts = Box(orientation=VERTICAL)
    for _ in _boxes:
      _limit_area_opts.pack_start(_, False, True, 10)

    _f.add(_limit_area_opts)
    return _f
Beispiel #26
0
    def _build_page1_enumeration_brute_force(self, m):
        f = Frame.new('暴破表名/列名')

        _brute_force_area_opts = Box(orientation=VERTICAL)

        _row1 = Box()

        _row1.pack_start(label.new('检查是否存在:'), False, True, 10)
        _row1.pack_start(m._brute_force_area_common_tables_ckbtn, False, True,
                         0)
        _row1.pack_start(m._brute_force_area_common_columns_ckbtn, False, True,
                         5)
        _row1.pack_start(m._brute_force_area_common_files_ckbtn, False, True,
                         0)

        _brute_force_area_opts.pack_start(_row1, False, True, 5)

        f.add(_brute_force_area_opts)
        return f
Beispiel #27
0
  def build_page1_setting_offen(self, m):
    _f = Frame.new(m._('Offen'))
    _boxes = [Box() for _ in range(5)]

    _general_area_opts = Box(orientation=VERTICAL, spacing=6)

    m._general_area_verbose_scale.set_value(1.0)

    _boxes[0].pack_start(m._general_area_verbose_ckbtn, False, True, 5)
    _boxes[0].pack_start(m._general_area_verbose_scale, True, True, 5)
    _boxes[1].pack_start(m._general_area_finger_ckbtn, False, True, 5)
    _boxes[2].pack_start(m._general_area_hex_ckbtn, False, True, 5)
    _boxes[3].pack_start(m._general_area_batch_ckbtn, False, True, 5)
    _boxes[4].pack_start(m._misc_area_wizard_ckbtn, False, True, 5)
    for _ in _boxes:
      _general_area_opts.add(_)

    _f.add(_general_area_opts)
    return _f
Beispiel #28
0
    def _build_page1_enumeration_blind(self, m):
        f = Frame.new('盲注选项')

        _boxes = [Box() for _ in range(3)]

        _boxes[0].pack_start(m._blind_area_first_ckbtn, False, True, 5)
        _boxes[0].pack_start(m._blind_area_first_entry, False, True, 0)
        _boxes[0].pack_start(label.new('个字符'), False, True, 5)
        _boxes[1].pack_start(m._blind_area_last_ckbtn, False, True, 5)
        _boxes[1].pack_start(m._blind_area_last_entry, False, True, 0)
        _boxes[1].pack_start(label.new('个字符'), False, True, 5)
        _boxes[2].pack_start(label.new('只适用于盲注,\n因为报错,union注入要求列数相同'), False,
                             True, 5)

        _blind_area_opts = Box(orientation=VERTICAL)
        for _ in _boxes:
            _blind_area_opts.pack_start(_, False, True, 10)

        f.add(_blind_area_opts)
        return f
Beispiel #29
0
  def build_page1_enumeration_dump(self, m):
    _f = Frame.new(m._('Dump'))
    _dump_area_opts = Box(spacing=6)

    # for padding in HORIZONTAL
    _dump_area_opts_cols = Box(orientation=VERTICAL)

    _dump_area_opts_cols.add(m._dump_area_dump_ckbtn)
    _dump_area_opts_cols.add(m._dump_area_repair_ckbtn)
    _dump_area_opts_cols.add(m._dump_area_statements_ckbtn)
    _ = Box()
    _.pack_start(m._dump_area_search_ckbtn, False, True, 0)
    _.pack_start(m._dump_area_no_sys_db_ckbtn, True, False, 0)
    _dump_area_opts_cols.add(_)
    _dump_area_opts_cols.add(m._dump_area_dump_all_ckbtn)

    _dump_area_opts.pack_start(_dump_area_opts_cols, False, True, 10)

    _f.add(_dump_area_opts)
    return _f
Beispiel #30
0
    def _build_page1_enumeration_dump(self, m):
        f = Frame.new('Dump(转储)')

        _dump_area_opts = Box(spacing=6)

        # 加这一层, 只是为了横向上有padding
        _dump_area_opts_cols = Box(orientation=VERTICAL)

        _dump_area_opts_cols.add(m._dump_area_dump_ckbtn)
        _dump_area_opts_cols.add(m._dump_area_repair_ckbtn)
        _dump_area_opts_cols.add(m._dump_area_statements_ckbtn)
        _ = Box()
        _.pack_start(m._dump_area_search_ckbtn, False, True, 0)
        _.pack_start(m._dump_area_no_sys_db_ckbtn, True, False, 0)
        _dump_area_opts_cols.add(_)
        _dump_area_opts_cols.add(m._dump_area_dump_all_ckbtn)

        _dump_area_opts.pack_start(_dump_area_opts_cols, False, True, 10)

        f.add(_dump_area_opts)
        return f