metasploit-model 5.0.2 → 5.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/verify.yml +4 -8
- data/Gemfile +3 -0
- data/app/models/metasploit/model/search/operation/jsonb.rb +52 -0
- data/app/models/metasploit/model/search/operator/attribute.rb +2 -1
- data/cortex.yaml +2 -0
- data/lib/metasploit/model/search/operation.rb +1 -0
- data/lib/metasploit/model/version.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/jsonb_spec.rb +106 -0
- data/spec/app/models/metasploit/model/search/operator/attribute_spec.rb +1 -0
- data/spec/dummy/db/schema.rb +1 -1
- metadata +11 -95
- checksums.yaml.gz.sig +0 -2
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data.tar.gz.sig +0 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e79cce31ad22f8e008ef8fe0afc8751cd7be142a13dff72d093bd6486daea497
|
4
|
+
data.tar.gz: a87c239c566824705043b928ba6495ce016f84345d439933ab5023c2d081cb46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 666637e0578c7d76006ccd81887bd78a46f25f0ede8edeeab93333c36285cd1df7c539bb94851b98c0344bf5bfa1645d46d4e2fbe3d0f83eab6a332f9493d85b
|
7
|
+
data.tar.gz: d47909b7df7e758ac3c71fd55bfc508b749653372cdefee6f4f0d97a98f12d1598db7e01a118ecf721f16e0427542b6a9e4d5345c1d137b3fffb24a747f37aaf
|
@@ -46,16 +46,12 @@ jobs:
|
|
46
46
|
fail-fast: true
|
47
47
|
matrix:
|
48
48
|
ruby:
|
49
|
-
- '2.7'
|
50
|
-
- '3.0'
|
51
49
|
- '3.1'
|
52
50
|
- '3.2'
|
51
|
+
- '3.3'
|
53
52
|
os:
|
54
|
-
- ubuntu-18.04
|
55
53
|
- ubuntu-22.04
|
56
|
-
|
57
|
-
- { os: ubuntu-22.04, ruby: '2.7' }
|
58
|
-
- { os: ubuntu-22.04, ruby: '3.0' }
|
54
|
+
- ubuntu-24.04
|
59
55
|
|
60
56
|
env:
|
61
57
|
RAILS_ENV: test
|
@@ -84,9 +80,9 @@ jobs:
|
|
84
80
|
bundle exec rake yard
|
85
81
|
|
86
82
|
- name: Upload coverage report
|
87
|
-
uses: actions/upload-artifact@
|
83
|
+
uses: actions/upload-artifact@v4
|
88
84
|
with:
|
89
|
-
name: coverage-${{ matrix.ruby }}
|
85
|
+
name: coverage-${{ matrix.os }}-${{ matrix.ruby }}
|
90
86
|
path: |
|
91
87
|
coverage/
|
92
88
|
retention-days: 1
|
data/Gemfile
CHANGED
@@ -9,6 +9,9 @@ end
|
|
9
9
|
|
10
10
|
# used by dummy application
|
11
11
|
group :development, :test do
|
12
|
+
# Temporary, remove once the Rails 7.1 update is complete
|
13
|
+
# see: https://stackoverflow.com/questions/79360526/uninitialized-constant-activesupportloggerthreadsafelevellogger-nameerror
|
14
|
+
gem 'concurrent-ruby', '1.3.4'
|
12
15
|
# supplies factories for producing model instance for specs
|
13
16
|
# Version 4.1.0 or newer is needed to support generate calls without the 'FactoryGirl.' in factory definitions syntax.
|
14
17
|
gem 'factory_bot'
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# Search operation with {Metasploit::Model::Search::Operation::Base#operator} with `#type` ':jsonb'.
|
2
|
+
class Metasploit::Model::Search::Operation::Jsonb < Metasploit::Model::Search::Operation::Base
|
3
|
+
#
|
4
|
+
# Validations
|
5
|
+
#
|
6
|
+
|
7
|
+
validates :value,
|
8
|
+
:presence => true
|
9
|
+
|
10
|
+
#
|
11
|
+
# Methods
|
12
|
+
#
|
13
|
+
|
14
|
+
# Sets {Metasploit::Model::Search::Operation::Base#value} by parsing the `formatted_value`
|
15
|
+
# String and attempting to generate a valid JSON if it contains a colon.
|
16
|
+
# Otherwise, it keeps the same value as a String.
|
17
|
+
#
|
18
|
+
# @param formatted_value [#to_s]
|
19
|
+
# @return [String] representing a JSON if `formatted_value` contains a colon.
|
20
|
+
# Otherwise it is a the same as `formatted_value`
|
21
|
+
def value=(formatted_value)
|
22
|
+
@value = transform_value(formatted_value.to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
# Transform an input String to a JSON if it contains a colon. It returns the String if not.
|
29
|
+
# Also, the first colon is used as a delimiter between the key and the value.
|
30
|
+
# Any subsequent colon will be part of the value.
|
31
|
+
# Finally, it handles double/single quotes to escape any colon that are not
|
32
|
+
# suppose to be a delimiter between the key and the value.
|
33
|
+
#
|
34
|
+
# @param input [#to_s]
|
35
|
+
# @return [String] representing a JSON if `input` contains a colon. Otherwise it is a the same as `input`
|
36
|
+
def transform_value(input)
|
37
|
+
# Regex to find the first colon that is NOT inside quotes
|
38
|
+
match = input.match(/((?:[^'":]++|"(?:\\.|[^"])*"|'(?:\\.|[^'])*')*?):(.*)/)
|
39
|
+
|
40
|
+
# If no valid colon is found, return the original string
|
41
|
+
return input unless match
|
42
|
+
|
43
|
+
key = match[1].strip # Extract key (before first valid colon)
|
44
|
+
value = match[2].strip # Extract value (after first valid colon)
|
45
|
+
|
46
|
+
# Remove starting and ending quotes and ensure they are valid JSON strings
|
47
|
+
key = key.gsub(/^["'](.*)["']$/, '\1').to_json
|
48
|
+
value = value.gsub(/^["'](.*)["']$/, '\1').to_json
|
49
|
+
"{#{key}: #{value}}"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/cortex.yaml
CHANGED
@@ -13,6 +13,7 @@ module Metasploit::Model::Search::Operation
|
|
13
13
|
autoload :Set
|
14
14
|
autoload :String
|
15
15
|
autoload :Value
|
16
|
+
autoload :Jsonb
|
16
17
|
|
17
18
|
# @param options [Hash{Symbol => Object}]
|
18
19
|
# @option options [Metasploit::Module::Search::Query] :query The query that the parsed operation is a part.
|
@@ -0,0 +1,106 @@
|
|
1
|
+
RSpec.describe Metasploit::Model::Search::Operation::Jsonb, type: :model do
|
2
|
+
context 'validation' do
|
3
|
+
context 'value' do
|
4
|
+
before(:example) do
|
5
|
+
operation.valid?
|
6
|
+
end
|
7
|
+
|
8
|
+
let(:errors) do
|
9
|
+
operation.errors[:value]
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:operation) do
|
13
|
+
described_class.new(:value => value)
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'with String' do
|
17
|
+
let(:value) do
|
18
|
+
'search_string'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should not record error' do
|
22
|
+
expect(errors).to be_empty
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'with Integer' do
|
27
|
+
let(:value) do
|
28
|
+
3
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should not record error' do
|
32
|
+
expect(errors).to be_empty
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'with a Symbol' do
|
37
|
+
let(:value) do
|
38
|
+
:mysym
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should not record error' do
|
42
|
+
expect(errors).to be_empty
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context '#value' do
|
49
|
+
subject(:value) do
|
50
|
+
operation.value
|
51
|
+
end
|
52
|
+
|
53
|
+
let(:operation) do
|
54
|
+
described_class.new(:value => formatted_value)
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'with String' do
|
58
|
+
let(:formatted_value) do
|
59
|
+
'test value'
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should be passed as a String' do
|
63
|
+
expect(value).to eq(formatted_value.to_s)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'with Integer' do
|
68
|
+
let(:formatted_value) do
|
69
|
+
3
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should be passed as a String' do
|
73
|
+
expect(value).to eq(formatted_value.to_s)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'with String containing colon characters' do
|
78
|
+
{
|
79
|
+
'key:value' => '{"key": "value"}',
|
80
|
+
'key:value:extra' => '{"key": "value:extra"}',
|
81
|
+
'"quoted:part":value' => '{"quoted:part": "value"}',
|
82
|
+
'"quoted:part":value:extra' => '{"quoted:part": "value:extra"}',
|
83
|
+
'a:b:c:d' => '{"a": "b:c:d"}',
|
84
|
+
'"x:y:z":a:b' => '{"x:y:z": "a:b"}',
|
85
|
+
"'single:quote':value" => '{"single:quote": "value"}',
|
86
|
+
"'single:quote':value:extra" => '{"single:quote": "value:extra"}',
|
87
|
+
"'a:b':c:d" => '{"a:b": "c:d"}',
|
88
|
+
'"x:y"and"z:w":final' => '{"x:y\"and\"z:w": "final"}',
|
89
|
+
"'x:y'and'z:w':final" => '{"x:y\'and\'z:w": "final"}',
|
90
|
+
'"a:b":c:"d:e"' => '{"a:b": "c:\"d:e\""}',
|
91
|
+
"'a:b':c:'d:e'" => '{"a:b": "c:\'d:e\'"}',
|
92
|
+
}.each do |input, expected|
|
93
|
+
|
94
|
+
context "with the string #{input}" do
|
95
|
+
let(:formatted_value) { input }
|
96
|
+
|
97
|
+
it 'should be passed as a valid JSON string' do
|
98
|
+
expect(value).to eq(expected)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema[7.
|
13
|
+
ActiveRecord::Schema[7.2].define(version: 0) do
|
14
14
|
# These are extensions that must be enabled in order to support this database
|
15
15
|
enable_extension "plpgsql"
|
16
16
|
|
metadata
CHANGED
@@ -1,99 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Metasploit Hackers
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
14
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
15
|
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
16
|
-
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
17
|
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
18
|
-
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
19
|
-
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
20
|
-
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
21
|
-
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
22
|
-
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
23
|
-
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
24
|
-
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
25
|
-
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
26
|
-
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
27
|
-
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
28
|
-
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
29
|
-
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
30
|
-
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
31
|
-
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
32
|
-
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
33
|
-
-----END CERTIFICATE-----
|
34
|
-
- |
|
35
|
-
-----BEGIN CERTIFICATE-----
|
36
|
-
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
|
37
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
38
|
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
39
|
-
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
|
40
|
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
41
|
-
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
|
42
|
-
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
|
43
|
-
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
|
44
|
-
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
|
45
|
-
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
|
46
|
-
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
|
47
|
-
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
|
48
|
-
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
|
49
|
-
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
|
50
|
-
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
|
51
|
-
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
|
52
|
-
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
|
53
|
-
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
|
54
|
-
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
|
55
|
-
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
56
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
|
57
|
-
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
|
58
|
-
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
|
59
|
-
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
|
60
|
-
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
|
61
|
-
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
|
62
|
-
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
|
63
|
-
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
|
64
|
-
-----END CERTIFICATE-----
|
65
|
-
- |
|
66
|
-
-----BEGIN CERTIFICATE-----
|
67
|
-
MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
|
68
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
69
|
-
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
|
70
|
-
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
|
71
|
-
MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
|
72
|
-
BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
|
73
|
-
IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
|
74
|
-
4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
|
75
|
-
WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
|
76
|
-
gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
|
77
|
-
9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
|
78
|
-
yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
|
79
|
-
r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
|
80
|
-
dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
|
81
|
-
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
|
82
|
-
L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
|
83
|
-
L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
|
84
|
-
MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
85
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
|
86
|
-
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
|
87
|
-
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
|
88
|
-
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
|
89
|
-
BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
|
90
|
-
37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
|
91
|
-
YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
|
92
|
-
dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
|
93
|
-
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
94
|
-
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
95
|
-
-----END CERTIFICATE-----
|
96
|
-
date: 2023-10-04 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-04-01 00:00:00.000000000 Z
|
97
12
|
dependencies:
|
98
13
|
- !ruby/object:Gem::Dependency
|
99
14
|
name: metasploit-yard
|
@@ -254,6 +169,7 @@ files:
|
|
254
169
|
- app/models/metasploit/model/search/operation/group/intersection.rb
|
255
170
|
- app/models/metasploit/model/search/operation/group/union.rb
|
256
171
|
- app/models/metasploit/model/search/operation/integer.rb
|
172
|
+
- app/models/metasploit/model/search/operation/jsonb.rb
|
257
173
|
- app/models/metasploit/model/search/operation/null.rb
|
258
174
|
- app/models/metasploit/model/search/operation/set.rb
|
259
175
|
- app/models/metasploit/model/search/operation/set/integer.rb
|
@@ -335,6 +251,7 @@ files:
|
|
335
251
|
- spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb
|
336
252
|
- spec/app/models/metasploit/model/search/operation/group/union_spec.rb
|
337
253
|
- spec/app/models/metasploit/model/search/operation/integer_spec.rb
|
254
|
+
- spec/app/models/metasploit/model/search/operation/jsonb_spec.rb
|
338
255
|
- spec/app/models/metasploit/model/search/operation/null_spec.rb
|
339
256
|
- spec/app/models/metasploit/model/search/operation/set/integer_spec.rb
|
340
257
|
- spec/app/models/metasploit/model/search/operation/set/string_spec.rb
|
@@ -381,7 +298,6 @@ files:
|
|
381
298
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
382
299
|
- spec/dummy/config/initializers/inflections.rb
|
383
300
|
- spec/dummy/config/initializers/mime_types.rb
|
384
|
-
- spec/dummy/config/initializers/secret_token.rb
|
385
301
|
- spec/dummy/config/initializers/session_store.rb
|
386
302
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
387
303
|
- spec/dummy/config/locales/en.yml
|
@@ -437,10 +353,10 @@ files:
|
|
437
353
|
- spec/support/shared/examples/search_association.rb
|
438
354
|
- spec/support/shared/examples/search_attribute.rb
|
439
355
|
- spec/support/shared/examples/search_with.rb
|
440
|
-
homepage:
|
356
|
+
homepage:
|
441
357
|
licenses: []
|
442
358
|
metadata: {}
|
443
|
-
post_install_message:
|
359
|
+
post_install_message:
|
444
360
|
rdoc_options: []
|
445
361
|
require_paths:
|
446
362
|
- app/models
|
@@ -457,8 +373,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
457
373
|
- !ruby/object:Gem::Version
|
458
374
|
version: '0'
|
459
375
|
requirements: []
|
460
|
-
rubygems_version: 3.
|
461
|
-
signing_key:
|
376
|
+
rubygems_version: 3.4.19
|
377
|
+
signing_key:
|
462
378
|
specification_version: 4
|
463
379
|
summary: Metasploit Model Mixins and Validators
|
464
380
|
test_files:
|
@@ -474,6 +390,7 @@ test_files:
|
|
474
390
|
- spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb
|
475
391
|
- spec/app/models/metasploit/model/search/operation/group/union_spec.rb
|
476
392
|
- spec/app/models/metasploit/model/search/operation/integer_spec.rb
|
393
|
+
- spec/app/models/metasploit/model/search/operation/jsonb_spec.rb
|
477
394
|
- spec/app/models/metasploit/model/search/operation/null_spec.rb
|
478
395
|
- spec/app/models/metasploit/model/search/operation/set/integer_spec.rb
|
479
396
|
- spec/app/models/metasploit/model/search/operation/set/string_spec.rb
|
@@ -520,7 +437,6 @@ test_files:
|
|
520
437
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
521
438
|
- spec/dummy/config/initializers/inflections.rb
|
522
439
|
- spec/dummy/config/initializers/mime_types.rb
|
523
|
-
- spec/dummy/config/initializers/secret_token.rb
|
524
440
|
- spec/dummy/config/initializers/session_store.rb
|
525
441
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
526
442
|
- spec/dummy/config/locales/en.yml
|
checksums.yaml.gz.sig
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# Your secret key for verifying the integrity of signed cookies.
|
4
|
-
# If you change this key, all old signed cookies will become invalid!
|
5
|
-
# Make sure the secret is at least 30 characters and all random,
|
6
|
-
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
Dummy::Application.config.secret_token = 'f04f565f9a4db0f0af88f4bd8b79952d139b02434b889a7c7bb3fe83405e9032409bd16bca7b0d7d68a8b119b6ddfd31b17d19155cd699a27e19a48bd05eb200'
|
data.tar.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
r�bqr:s�D`aT�I�ܭ$Z̖�E�/��*�!��½�}||j�Ib�$x�%}T �MkTy�A�$Ò^6���]���=�F5ԝ+P�vO�rs�����C��S5t�
|
metadata.gz.sig
DELETED
Binary file
|