pwn 0.5.550 → 0.5.552
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/.rubocop.yml +1 -1
- data/Gemfile +9 -9
- data/README.md +3 -3
- data/lib/pwn/plugins/burp_suite.rb +70 -10
- data/lib/pwn/version.rb +1 -1
- metadata +20 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0eb71ac056fca69e9b903f0cfca9c905f1acafa556aad10dfb3da0cd64675b0d
|
|
4
|
+
data.tar.gz: 4416c11597a1ba0ee7c84267be3f47cdf67bb236f2ab89f766155a86b72eaaea
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a8815c6bb53071f7a6094ced8da45d537b0bf6a454b404325cbb30e446034827fd1fcac537cc90f3dd0213da498793fd46b1d762b593d0b2040d80da09658eb8
|
|
7
|
+
data.tar.gz: efc39f2cf19f17aedf98b7fb7a8784865821e387df44382390b5488e2ae1df1da4fb0b582f86cf3c6914f42b217b0c6f4700c7d092c1c445ba16b491eb452e14
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -11,7 +11,7 @@ gemspec
|
|
|
11
11
|
# In some circumstances custom flags are passed to gems in order
|
|
12
12
|
# to build appropriately. Defer to ./reinstall_pwn_gemset.sh
|
|
13
13
|
# to review these custom flags (e.g. pg, serialport, etc).
|
|
14
|
-
gem 'activesupport', '<8.1.
|
|
14
|
+
gem 'activesupport', '<8.1.3'
|
|
15
15
|
gem 'anemone', '0.7.2'
|
|
16
16
|
gem 'authy', '3.0.1'
|
|
17
17
|
gem 'aws-sdk', '3.3.0'
|
|
@@ -20,7 +20,7 @@ gem 'base32', '0.3.4'
|
|
|
20
20
|
gem 'bitcoin-ruby', '0.0.20'
|
|
21
21
|
gem 'brakeman', '8.0.4'
|
|
22
22
|
gem 'bson', '5.2.0'
|
|
23
|
-
gem 'bundler', '>=4.0.
|
|
23
|
+
gem 'bundler', '>=4.0.9'
|
|
24
24
|
gem 'bundler-audit', '>=0.9.3'
|
|
25
25
|
gem 'bunny', '2.24.0'
|
|
26
26
|
gem 'colorize', '1.1.0'
|
|
@@ -31,7 +31,7 @@ gem 'eventmachine', '1.2.7'
|
|
|
31
31
|
gem 'executable-hooks', '1.7.1'
|
|
32
32
|
gem 'faker', '3.6.1'
|
|
33
33
|
gem 'faye-websocket', '0.12.0'
|
|
34
|
-
gem 'ffi', '1.17.
|
|
34
|
+
gem 'ffi', '1.17.4'
|
|
35
35
|
# gem 'fftw3', '0.3'
|
|
36
36
|
gem 'gdb', '1.0.0'
|
|
37
37
|
gem 'gem-wrappers', '1.4.0'
|
|
@@ -49,8 +49,8 @@ gem 'jwt', '3.1.2'
|
|
|
49
49
|
gem 'libusb', '0.7.2'
|
|
50
50
|
gem 'luhn', '3.0.0'
|
|
51
51
|
gem 'mail', '2.9.0'
|
|
52
|
-
gem 'mcp', '0.
|
|
53
|
-
gem 'meshtastic', '0.0.
|
|
52
|
+
gem 'mcp', '0.9.2'
|
|
53
|
+
gem 'meshtastic', '0.0.158'
|
|
54
54
|
gem 'metasm', '1.0.5'
|
|
55
55
|
gem 'mongo', '2.23.0'
|
|
56
56
|
gem 'msfrpc-client', '1.1.2'
|
|
@@ -59,7 +59,7 @@ gem 'net-ldap', '0.20.0'
|
|
|
59
59
|
gem 'net-openvpn', '0.8.7'
|
|
60
60
|
gem 'net-smtp', '0.5.1'
|
|
61
61
|
gem 'nexpose', '7.3.0'
|
|
62
|
-
gem 'nokogiri', '1.19.
|
|
62
|
+
gem 'nokogiri', '1.19.2'
|
|
63
63
|
gem 'nokogiri-diff', '0.3.0'
|
|
64
64
|
gem 'oily_png', '1.2.1'
|
|
65
65
|
gem 'open3', '0.2.1'
|
|
@@ -81,7 +81,7 @@ gem 'rmagick', '6.2.0'
|
|
|
81
81
|
gem 'rqrcode', '3.2.0'
|
|
82
82
|
gem 'rspec', '3.13.2'
|
|
83
83
|
gem 'rtesseract', '3.1.4'
|
|
84
|
-
gem 'rubocop', '1.
|
|
84
|
+
gem 'rubocop', '1.86.0'
|
|
85
85
|
gem 'rubocop-rake', '0.7.1'
|
|
86
86
|
gem 'rubocop-rspec', '3.9.0'
|
|
87
87
|
gem 'ruby-audio', '1.6.1'
|
|
@@ -89,12 +89,12 @@ gem 'ruby-nmap', '1.0.3'
|
|
|
89
89
|
gem 'ruby-saml', '1.18.1'
|
|
90
90
|
gem 'rvm', '1.11.3.9'
|
|
91
91
|
gem 'savon', '2.15.1'
|
|
92
|
-
gem 'selenium-devtools', '0.
|
|
92
|
+
gem 'selenium-devtools', '0.145.0'
|
|
93
93
|
gem 'selenium-webdriver', '4.41.0'
|
|
94
94
|
gem 'slack-ruby-client', '3.1.0'
|
|
95
95
|
gem 'socksify', '1.8.1'
|
|
96
96
|
gem 'spreadsheet', '1.3.4'
|
|
97
|
-
gem 'sqlite3', '2.9.
|
|
97
|
+
gem 'sqlite3', '2.9.2'
|
|
98
98
|
gem 'thin', '2.0.1'
|
|
99
99
|
gem 'tty-prompt', '0.23.1'
|
|
100
100
|
gem 'tty-spinner', '0.9.3'
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ $ cd /opt/pwn
|
|
|
37
37
|
$ ./install.sh
|
|
38
38
|
$ ./install.sh ruby-gem
|
|
39
39
|
$ pwn
|
|
40
|
-
pwn[v0.5.
|
|
40
|
+
pwn[v0.5.552]:001 >>> PWN.help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
|
@@ -52,7 +52,7 @@ $ rvm use ruby-4.0.1@pwn
|
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
|
53
53
|
$ gem install --verbose pwn
|
|
54
54
|
$ pwn
|
|
55
|
-
pwn[v0.5.
|
|
55
|
+
pwn[v0.5.552]:001 >>> PWN.help
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
If you're using a multi-user install of RVM do:
|
|
@@ -62,7 +62,7 @@ $ rvm use ruby-4.0.1@pwn
|
|
|
62
62
|
$ rvmsudo gem uninstall --all --executables pwn
|
|
63
63
|
$ rvmsudo gem install --verbose pwn
|
|
64
64
|
$ pwn
|
|
65
|
-
pwn[v0.5.
|
|
65
|
+
pwn[v0.5.552]:001 >>> PWN.help
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require 'base64'
|
|
4
4
|
require 'json'
|
|
5
5
|
require 'socket'
|
|
6
|
+
require 'tempfile'
|
|
6
7
|
require 'uri'
|
|
7
8
|
require 'yaml'
|
|
8
9
|
|
|
@@ -89,14 +90,22 @@ module PWN
|
|
|
89
90
|
end
|
|
90
91
|
|
|
91
92
|
default_http_ports = [80, 443]
|
|
93
|
+
offset = 0
|
|
94
|
+
limit = 200
|
|
95
|
+
|
|
92
96
|
loop do
|
|
93
97
|
# TODO: Implement repeater into the loop? This reduces load to LLM but is slooow.
|
|
94
98
|
# Repeater should analyze the reqesut/response pair and suggest
|
|
95
99
|
# modifications to the request to further probe for vulnerabilities _quickly_.
|
|
96
100
|
case type
|
|
97
101
|
when :proxy_history
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
proxy_history = get_proxy_history(
|
|
103
|
+
burp_obj: burp_obj,
|
|
104
|
+
limit: limit,
|
|
105
|
+
offset: offset
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
offset = 0 if proxy_history.empty?
|
|
100
109
|
proxy_history.each do |entry|
|
|
101
110
|
request = entry[:request]
|
|
102
111
|
response = entry[:response]
|
|
@@ -114,6 +123,7 @@ module PWN
|
|
|
114
123
|
|
|
115
124
|
# If sitemap comment and highlight color exists, use that instead of re-analyzing
|
|
116
125
|
sitemap_entry = nil
|
|
126
|
+
sitemap = get_sitemap(burp_obj: burp_obj, uri: uri)
|
|
117
127
|
if sitemap.any?
|
|
118
128
|
sitemap_entry = sitemap.find do |site|
|
|
119
129
|
next unless site.key?(:http_service) && site.key?(:request)
|
|
@@ -151,8 +161,12 @@ module PWN
|
|
|
151
161
|
sleep Random.rand(30..60)
|
|
152
162
|
|
|
153
163
|
when :sitemap
|
|
154
|
-
|
|
155
|
-
|
|
164
|
+
sitemap = get_sitemap(
|
|
165
|
+
burp_obj: burp_obj,
|
|
166
|
+
limit: limit,
|
|
167
|
+
offset: offset
|
|
168
|
+
)
|
|
169
|
+
offset = 0 if sitemap.empty?
|
|
156
170
|
sitemap.each do |entry|
|
|
157
171
|
request = entry[:request]
|
|
158
172
|
response = entry[:response]
|
|
@@ -169,6 +183,7 @@ module PWN
|
|
|
169
183
|
next unless entry.key?(:comment) && entry[:comment].to_s.strip.empty?
|
|
170
184
|
|
|
171
185
|
proxy_history_entry = nil
|
|
186
|
+
proxy_history = get_proxy_history(burp_obj: burp_obj, uri: uri)
|
|
172
187
|
if proxy_history.any?
|
|
173
188
|
proxy_history_entry = proxy_history.find do |proxy_entry|
|
|
174
189
|
next unless proxy_entry.key?(:http_service) && proxy_entry.key?(:request)
|
|
@@ -205,7 +220,12 @@ module PWN
|
|
|
205
220
|
sleep Random.rand(60..90)
|
|
206
221
|
|
|
207
222
|
when :websocket_history
|
|
208
|
-
websocket_history = get_websocket_history(
|
|
223
|
+
websocket_history = get_websocket_history(
|
|
224
|
+
burp_obj: burp_obj,
|
|
225
|
+
limit: limit,
|
|
226
|
+
offset: offset
|
|
227
|
+
)
|
|
228
|
+
offset = 0 if websocket_history.empty?
|
|
209
229
|
websocket_history.each do |entry|
|
|
210
230
|
uri = entry[:url]
|
|
211
231
|
next unless in_scope(burp_obj: burp_obj, uri: uri)
|
|
@@ -235,15 +255,18 @@ module PWN
|
|
|
235
255
|
end
|
|
236
256
|
sleep Random.rand(3..10)
|
|
237
257
|
end
|
|
258
|
+
offset += limit
|
|
238
259
|
end
|
|
239
260
|
rescue Errno::ECONNREFUSED
|
|
240
261
|
puts "BurpSuite:#{type} AI Introspection Thread >>> Terminating API Calls..."
|
|
241
262
|
rescue StandardError => e
|
|
242
263
|
puts "BurpSuite AI Introspection Thread Error: #{e}"
|
|
243
264
|
puts e.backtrace
|
|
265
|
+
backtrace_file = Tempfile.new(["PWN_Plugins_BurpSuite_AI_Thread-#{type}", '.log'])
|
|
266
|
+
backtrace_file.write("#{e}\n#{e.backtrace.join("\n")}")
|
|
244
267
|
raise e
|
|
245
268
|
ensure
|
|
246
|
-
puts "BurpSuite
|
|
269
|
+
puts "BurpSuite: #{type} AI Introspection Thread >>> Goodbye."
|
|
247
270
|
end
|
|
248
271
|
|
|
249
272
|
burp_obj[:introspection_threads] = introspection_thread_arr.push(introspection_thread)
|
|
@@ -589,6 +612,9 @@ module PWN
|
|
|
589
612
|
# Supported Method Parameters::
|
|
590
613
|
# json_proxy_history = PWN::Plugins::BurpSuite.get_proxy_history(
|
|
591
614
|
# burp_obj: 'required - burp_obj returned by #start method',
|
|
615
|
+
# limit: 'optional - number of proxy history entries to return (default: 200)',
|
|
616
|
+
# offset: 'optional - offset for pagination of proxy history entries (default: 0)',
|
|
617
|
+
# uri: 'optional - filter proxy history entries by URI (default: nil)',
|
|
592
618
|
# keyword: 'optional - keyword to filter proxy history entries (default: nil)',
|
|
593
619
|
# return_as: 'optional - :base64 or :har (defaults to :base64)'
|
|
594
620
|
# )
|
|
@@ -597,10 +623,19 @@ module PWN
|
|
|
597
623
|
burp_obj = opts[:burp_obj]
|
|
598
624
|
rest_browser = burp_obj[:rest_browser]
|
|
599
625
|
mitm_rest_api = burp_obj[:mitm_rest_api]
|
|
626
|
+
|
|
627
|
+
limit = opts[:limit] ||= 200
|
|
628
|
+
offset = opts[:offset] ||= 0
|
|
629
|
+
uri = opts[:uri]
|
|
600
630
|
keyword = opts[:keyword]
|
|
601
631
|
return_as = opts[:return_as] ||= :base64
|
|
602
632
|
|
|
603
|
-
|
|
633
|
+
if uri.nil?
|
|
634
|
+
rest_call = "http://#{mitm_rest_api}/proxy/history?limit=#{limit}&offset=#{offset}"
|
|
635
|
+
else
|
|
636
|
+
base64_encoded_uri = Base64.strict_encode64(uri.to_s.scrub.strip.chomp)
|
|
637
|
+
rest_call = "http://#{mitm_rest_api}/proxy/history/#{base64_encoded_uri}?limit=#{limit}&offset=#{offset}"
|
|
638
|
+
end
|
|
604
639
|
|
|
605
640
|
sitemap = rest_browser.get(
|
|
606
641
|
rest_call,
|
|
@@ -807,6 +842,8 @@ module PWN
|
|
|
807
842
|
# Supported Method Parameters::
|
|
808
843
|
# json_web_socket_history = PWN::Plugins::BurpSuite.get_websocket_history(
|
|
809
844
|
# burp_obj: 'required - burp_obj returned by #start method',
|
|
845
|
+
# limit: 'optional - number of websocket history entries to return (default: 200)',
|
|
846
|
+
# offset: 'optional - offset for pagination of websocket history entries (default: 0)',
|
|
810
847
|
# keyword: 'optional - keyword to filter websocket history entries (default: nil)'
|
|
811
848
|
# )
|
|
812
849
|
|
|
@@ -814,9 +851,12 @@ module PWN
|
|
|
814
851
|
burp_obj = opts[:burp_obj]
|
|
815
852
|
rest_browser = burp_obj[:rest_browser]
|
|
816
853
|
mitm_rest_api = burp_obj[:mitm_rest_api]
|
|
854
|
+
|
|
855
|
+
limit = opts[:limit] ||= 200
|
|
856
|
+
offset = opts[:offset] ||= 0
|
|
817
857
|
keyword = opts[:keyword]
|
|
818
858
|
|
|
819
|
-
rest_call = "http://#{mitm_rest_api}/websocket/history"
|
|
859
|
+
rest_call = "http://#{mitm_rest_api}/websocket/history?limit=#{limit}&offset=#{offset}"
|
|
820
860
|
|
|
821
861
|
sitemap = rest_browser.get(
|
|
822
862
|
rest_call,
|
|
@@ -878,6 +918,9 @@ module PWN
|
|
|
878
918
|
# Supported Method Parameters::
|
|
879
919
|
# json_sitemap = PWN::Plugins::BurpSuite.get_sitemap(
|
|
880
920
|
# burp_obj: 'required - burp_obj returned by #start method',
|
|
921
|
+
# limit: 'optional - number of sitemap entries to return (default: 200)',
|
|
922
|
+
# offset: 'optional - offset for pagination of sitemap entries (default: 0)',
|
|
923
|
+
# uri: 'optional - URI to filter sitemap entries (default: nil)',
|
|
881
924
|
# keyword: 'optional - keyword to filter sitemap entries (default: nil)',
|
|
882
925
|
# return_as: 'optional - :base64 or :har (defaults to :base64)'
|
|
883
926
|
# )
|
|
@@ -886,10 +929,19 @@ module PWN
|
|
|
886
929
|
burp_obj = opts[:burp_obj]
|
|
887
930
|
rest_browser = burp_obj[:rest_browser]
|
|
888
931
|
mitm_rest_api = burp_obj[:mitm_rest_api]
|
|
932
|
+
|
|
933
|
+
limit = opts[:limit] ||= 200
|
|
934
|
+
offset = opts[:offset] ||= 0
|
|
935
|
+
uri = opts[:uri]
|
|
889
936
|
keyword = opts[:keyword]
|
|
890
937
|
return_as = opts[:return_as] ||= :base64
|
|
891
938
|
|
|
892
|
-
|
|
939
|
+
if uri.nil?
|
|
940
|
+
rest_call = "http://#{mitm_rest_api}/sitemap?limit=#{limit}&offset=#{offset}"
|
|
941
|
+
else
|
|
942
|
+
base64_encoded_uri = Base64.strict_encode64(uri.to_s.scrub.strip.chomp)
|
|
943
|
+
rest_call = "http://#{mitm_rest_api}/sitemap/#{base64_encoded_uri}?limit=#{limit}&offset=#{offset}"
|
|
944
|
+
end
|
|
893
945
|
|
|
894
946
|
sitemap = rest_browser.get(
|
|
895
947
|
rest_call,
|
|
@@ -1611,7 +1663,7 @@ module PWN
|
|
|
1611
1663
|
target_port = URI.parse(target_url).port.to_i
|
|
1612
1664
|
active_scan_url_arr = []
|
|
1613
1665
|
|
|
1614
|
-
json_sitemap = get_sitemap(burp_obj: burp_obj,
|
|
1666
|
+
json_sitemap = get_sitemap(burp_obj: burp_obj, url: target_url)
|
|
1615
1667
|
json_sitemap.uniq.each do |site|
|
|
1616
1668
|
# Skip if the site does not have a request or http_service
|
|
1617
1669
|
next if site[:request].empty?
|
|
@@ -2058,6 +2110,9 @@ module PWN
|
|
|
2058
2110
|
|
|
2059
2111
|
json_proxy_history = #{self}.get_proxy_history(
|
|
2060
2112
|
burp_obj: 'required - burp_obj returned by #start method',
|
|
2113
|
+
limit: 'optional - integer to limit number of proxy history entries returned (default: 200)',
|
|
2114
|
+
offset: 'optional - integer to offset proxy history results (default: 0)',
|
|
2115
|
+
uri: 'optional - URI to filter proxy history results (default: nil)',
|
|
2061
2116
|
keyword: 'optional - keyword to filter proxy history results (default: nil)',
|
|
2062
2117
|
return_as: 'optional - :base64 or :har (defaults to :base64)'
|
|
2063
2118
|
)
|
|
@@ -2069,6 +2124,8 @@ module PWN
|
|
|
2069
2124
|
|
|
2070
2125
|
json_proxy_history = #{self}.get_websocket_history(
|
|
2071
2126
|
burp_obj: 'required - burp_obj returned by #start method',
|
|
2127
|
+
limit: 'optional - integer to limit number of websocket history entries returned (default: 200)',
|
|
2128
|
+
offset: 'optional - integer to offset websocket history results (default: 0)',
|
|
2072
2129
|
keyword: 'optional - keyword to filter websocket history results (default: nil)'
|
|
2073
2130
|
)
|
|
2074
2131
|
|
|
@@ -2079,6 +2136,9 @@ module PWN
|
|
|
2079
2136
|
|
|
2080
2137
|
json_sitemap = #{self}.get_sitemap(
|
|
2081
2138
|
burp_obj: 'required - burp_obj returned by #start method',
|
|
2139
|
+
limit: 'optional - integer to limit number of sitemap entries returned (default: 200)',
|
|
2140
|
+
offset: 'optional - integer to offset sitemap results (default: 0)',
|
|
2141
|
+
uri: 'optional - URI to filter sitemap results (default: nil)',
|
|
2082
2142
|
keyword: 'optional - keyword to filter sitemap results (default: nil)',
|
|
2083
2143
|
return_as: 'optional - :base64 or :har (defaults to :base64)'
|
|
2084
2144
|
)
|
data/lib/pwn/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pwn
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.552
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - "<"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 8.1.
|
|
18
|
+
version: 8.1.3
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "<"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 8.1.
|
|
25
|
+
version: 8.1.3
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: anemone
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -141,14 +141,14 @@ dependencies:
|
|
|
141
141
|
requirements:
|
|
142
142
|
- - ">="
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: 4.0.
|
|
144
|
+
version: 4.0.9
|
|
145
145
|
type: :development
|
|
146
146
|
prerelease: false
|
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
|
149
149
|
- - ">="
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: 4.0.
|
|
151
|
+
version: 4.0.9
|
|
152
152
|
- !ruby/object:Gem::Dependency
|
|
153
153
|
name: bundler-audit
|
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -295,14 +295,14 @@ dependencies:
|
|
|
295
295
|
requirements:
|
|
296
296
|
- - '='
|
|
297
297
|
- !ruby/object:Gem::Version
|
|
298
|
-
version: 1.17.
|
|
298
|
+
version: 1.17.4
|
|
299
299
|
type: :runtime
|
|
300
300
|
prerelease: false
|
|
301
301
|
version_requirements: !ruby/object:Gem::Requirement
|
|
302
302
|
requirements:
|
|
303
303
|
- - '='
|
|
304
304
|
- !ruby/object:Gem::Version
|
|
305
|
-
version: 1.17.
|
|
305
|
+
version: 1.17.4
|
|
306
306
|
- !ruby/object:Gem::Dependency
|
|
307
307
|
name: gdb
|
|
308
308
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -533,28 +533,28 @@ dependencies:
|
|
|
533
533
|
requirements:
|
|
534
534
|
- - '='
|
|
535
535
|
- !ruby/object:Gem::Version
|
|
536
|
-
version: 0.
|
|
536
|
+
version: 0.9.2
|
|
537
537
|
type: :runtime
|
|
538
538
|
prerelease: false
|
|
539
539
|
version_requirements: !ruby/object:Gem::Requirement
|
|
540
540
|
requirements:
|
|
541
541
|
- - '='
|
|
542
542
|
- !ruby/object:Gem::Version
|
|
543
|
-
version: 0.
|
|
543
|
+
version: 0.9.2
|
|
544
544
|
- !ruby/object:Gem::Dependency
|
|
545
545
|
name: meshtastic
|
|
546
546
|
requirement: !ruby/object:Gem::Requirement
|
|
547
547
|
requirements:
|
|
548
548
|
- - '='
|
|
549
549
|
- !ruby/object:Gem::Version
|
|
550
|
-
version: 0.0.
|
|
550
|
+
version: 0.0.158
|
|
551
551
|
type: :runtime
|
|
552
552
|
prerelease: false
|
|
553
553
|
version_requirements: !ruby/object:Gem::Requirement
|
|
554
554
|
requirements:
|
|
555
555
|
- - '='
|
|
556
556
|
- !ruby/object:Gem::Version
|
|
557
|
-
version: 0.0.
|
|
557
|
+
version: 0.0.158
|
|
558
558
|
- !ruby/object:Gem::Dependency
|
|
559
559
|
name: metasm
|
|
560
560
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -673,14 +673,14 @@ dependencies:
|
|
|
673
673
|
requirements:
|
|
674
674
|
- - '='
|
|
675
675
|
- !ruby/object:Gem::Version
|
|
676
|
-
version: 1.19.
|
|
676
|
+
version: 1.19.2
|
|
677
677
|
type: :runtime
|
|
678
678
|
prerelease: false
|
|
679
679
|
version_requirements: !ruby/object:Gem::Requirement
|
|
680
680
|
requirements:
|
|
681
681
|
- - '='
|
|
682
682
|
- !ruby/object:Gem::Version
|
|
683
|
-
version: 1.19.
|
|
683
|
+
version: 1.19.2
|
|
684
684
|
- !ruby/object:Gem::Dependency
|
|
685
685
|
name: nokogiri-diff
|
|
686
686
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -981,14 +981,14 @@ dependencies:
|
|
|
981
981
|
requirements:
|
|
982
982
|
- - '='
|
|
983
983
|
- !ruby/object:Gem::Version
|
|
984
|
-
version: 1.
|
|
984
|
+
version: 1.86.0
|
|
985
985
|
type: :runtime
|
|
986
986
|
prerelease: false
|
|
987
987
|
version_requirements: !ruby/object:Gem::Requirement
|
|
988
988
|
requirements:
|
|
989
989
|
- - '='
|
|
990
990
|
- !ruby/object:Gem::Version
|
|
991
|
-
version: 1.
|
|
991
|
+
version: 1.86.0
|
|
992
992
|
- !ruby/object:Gem::Dependency
|
|
993
993
|
name: rubocop-rake
|
|
994
994
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1093,14 +1093,14 @@ dependencies:
|
|
|
1093
1093
|
requirements:
|
|
1094
1094
|
- - '='
|
|
1095
1095
|
- !ruby/object:Gem::Version
|
|
1096
|
-
version: 0.
|
|
1096
|
+
version: 0.145.0
|
|
1097
1097
|
type: :runtime
|
|
1098
1098
|
prerelease: false
|
|
1099
1099
|
version_requirements: !ruby/object:Gem::Requirement
|
|
1100
1100
|
requirements:
|
|
1101
1101
|
- - '='
|
|
1102
1102
|
- !ruby/object:Gem::Version
|
|
1103
|
-
version: 0.
|
|
1103
|
+
version: 0.145.0
|
|
1104
1104
|
- !ruby/object:Gem::Dependency
|
|
1105
1105
|
name: selenium-webdriver
|
|
1106
1106
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1163,14 +1163,14 @@ dependencies:
|
|
|
1163
1163
|
requirements:
|
|
1164
1164
|
- - '='
|
|
1165
1165
|
- !ruby/object:Gem::Version
|
|
1166
|
-
version: 2.9.
|
|
1166
|
+
version: 2.9.2
|
|
1167
1167
|
type: :runtime
|
|
1168
1168
|
prerelease: false
|
|
1169
1169
|
version_requirements: !ruby/object:Gem::Requirement
|
|
1170
1170
|
requirements:
|
|
1171
1171
|
- - '='
|
|
1172
1172
|
- !ruby/object:Gem::Version
|
|
1173
|
-
version: 2.9.
|
|
1173
|
+
version: 2.9.2
|
|
1174
1174
|
- !ruby/object:Gem::Dependency
|
|
1175
1175
|
name: thin
|
|
1176
1176
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -2483,7 +2483,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
2483
2483
|
- !ruby/object:Gem::Version
|
|
2484
2484
|
version: '0'
|
|
2485
2485
|
requirements: []
|
|
2486
|
-
rubygems_version: 4.0.
|
|
2486
|
+
rubygems_version: 4.0.9
|
|
2487
2487
|
specification_version: 4
|
|
2488
2488
|
summary: Automated Security Testing for CI/CD Pipelines & Beyond
|
|
2489
2489
|
test_files: []
|