pwn 0.4.735 → 0.4.737

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91ea0aaa9a3d3f2f0e7e6a38c58a4199bd770cf7784486cc59e99e4add3ec9c3
4
- data.tar.gz: c047b603b26553c23b13ac4e4c856a11556908f1020d3d6bd5b4160d380a0b9d
3
+ metadata.gz: '01249a06b7f5f3b1bcd331c75d9946a1f1aedfa947cb72ca492e97191229ad10'
4
+ data.tar.gz: cfbbfb84754859f5e9b2e2727bcc02c2c392682027d58764d1abb70f83334e7f
5
5
  SHA512:
6
- metadata.gz: 45e128055e6a8bf97a62d2c9dae4cfe44589648ed297d677df52142bec308c83f0416a8ce19f500ab20113955a666bee8ebf56408770e3e83f6746f2f27654e6
7
- data.tar.gz: 11cdcd0233d414543d90e85b6c78d51b9af6e1de24b6b1e8f95ba66d251d3d1448d66f3330f0f622b991b655625002e52c29491b6c26c33b7e25d5a4fab3dd3f
6
+ metadata.gz: b45b7cd565ddab92c10e5187b750f30533727b0ead8e94ee1e808c669b789ff4cd87122535eb424ad262496bb2f203822c89cb2808ff07b98985a1050496ed90
7
+ data.tar.gz: 8a56c95492231605c2bce0e2cf141655e2374b0810cc51ccb445781b5c77b01438ab5d50680b1646c2bdf0d3f2c48c42c86c3d046fbd50edc8f0b1e626566237
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.2.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.735]:001 >>> PWN.help
40
+ pwn[v0.4.737]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.2.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.735]:001 >>> PWN.help
55
+ pwn[v0.4.737]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -32,7 +32,7 @@ module PWN
32
32
 
33
33
  headers = opts[:http_headers]
34
34
  headers ||= {
35
- content_type: content_type,
35
+ content_type: 'application/json; charset=UTF-8',
36
36
  authorization: "Bearer #{token}"
37
37
  }
38
38
 
@@ -40,8 +40,6 @@ module PWN
40
40
  base_bd_bin_analysis_api_uri = 'https://protecode-sc.com/api'
41
41
  token = opts[:token]
42
42
 
43
- content_type = 'application/json; charset=UTF-8'
44
-
45
43
  browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
46
44
  rest_client = browser_obj[:browser]::Request
47
45
 
@@ -59,13 +57,25 @@ module PWN
59
57
  )
60
58
 
61
59
  when :post, :put
62
- response = rest_client.execute(
63
- method: :post,
64
- url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
65
- headers: headers,
66
- payload: http_body,
67
- verify_ssl: false
68
- )
60
+ if http_body.key?(:multipart)
61
+ headers[:content_type] = 'multipart/form-data'
62
+
63
+ response = rest_client.execute(
64
+ method: :post,
65
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
66
+ headers: headers,
67
+ payload: http_body,
68
+ verify_ssl: false
69
+ )
70
+ else
71
+ response = rest_client.execute(
72
+ method: :post,
73
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
74
+ headers: headers,
75
+ payload: http_body.to_json,
76
+ verify_ssl: false
77
+ )
78
+ end
69
79
  else
70
80
  raise @@logger.error("Unsupported HTTP Method #{http_method} for #{self} Plugin")
71
81
  end
@@ -122,7 +132,16 @@ module PWN
122
132
  # Supported Method Parameters::
123
133
  # response = PWN::Plugins::BlackDuckBinaryAnalysis.upload_file(
124
134
  # token: 'required - Bearer token',
125
- # file: 'required - file to upload'
135
+ # file: 'required - path of file to upload',
136
+ # group_id: 'optional - group id',
137
+ # delete_binary: 'optional - delete binary after upload (defaults to false)',
138
+ # force_scan: 'optional - force scan (defaults to false)',
139
+ # callback_url: 'optional - callback url',
140
+ # scan_infoleak: 'optional - scan infoleak (defaults to true)',
141
+ # code_analysis: 'optional - code analysis (defaults to true)',
142
+ # scan_code_familiarity: 'optional - scan code familiarity (defaults to true)',
143
+ # version: 'optional - version',
144
+ # product_id: 'optional - product id'
126
145
  # )
127
146
 
128
147
  public_class_method def self.upload_file(opts = {})
@@ -130,8 +149,29 @@ module PWN
130
149
  file = opts[:file]
131
150
  raise "ERROR: #{file} not found." unless File.exist?(file)
132
151
 
152
+ file_name = File.basename(file)
153
+
154
+ group_id = opts[:group_id]
155
+ delete_binary = true if opts[:delete_binary] ||= false
156
+ force_scan = true if opts[:force_scan] ||= false
157
+ callback_url = opts[:callback_url]
158
+ scan_infoleak = false if opts[:scan_infoleak] ||= true
159
+ code_analysis = false if opts[:code_analysis] ||= true
160
+ scan_code_familiarity = false if opts[:scan_code_familiarity] ||= true
161
+ version = opts[:version]
162
+ product_id = opts[:product_id]
163
+
133
164
  http_headers = {
134
- authorization: "Bearer #{token}"
165
+ authorization: "Bearer #{token}",
166
+ delete_binary: delete_binary,
167
+ force_scan: force_scan,
168
+ group: group_id,
169
+ callback: callback_url,
170
+ scan_infoleak: scan_infoleak,
171
+ code_analysis: code_analysis,
172
+ scan_code_familiarity: scan_code_familiarity,
173
+ version: version,
174
+ replace: product_id
135
175
  }
136
176
 
137
177
  http_body = {
@@ -140,9 +180,9 @@ module PWN
140
180
  }
141
181
 
142
182
  response = bd_bin_analysis_rest_call(
143
- http_method: :post,
183
+ http_method: :put,
144
184
  token: token,
145
- rest_call: 'files',
185
+ rest_call: "upload/#{file_name}",
146
186
  http_headers: http_headers,
147
187
  http_body: http_body
148
188
  )
@@ -193,7 +233,7 @@ module PWN
193
233
  # token: 'required - Bearer token',
194
234
  # name: 'required - group name',
195
235
  # desc: 'optional - group description',
196
- # parent: 'optional - parent group id',
236
+ # parent_id: 'optional - parent group id',
197
237
  # delete_binary: 'optional - delete binary after analysis C|Y|N (Default: C== company default)',
198
238
  # binary_cleanup_age: 'optional - after how long the binary will be deleted in seconds (Default: 604_800 / 1 week)',
199
239
  # product_cleanup_age: 'optional - after how long the product will be deleted in seconds (Default: 604_800 / 1 week)',
@@ -212,7 +252,7 @@ module PWN
212
252
  token = opts[:token]
213
253
  name = opts[:name]
214
254
  desc = opts[:desc]
215
- parent = opts[:parent]
255
+ parent_id = opts[:parent_id]
216
256
  delete_binary = opts[:delete_binary] ||= 'C'
217
257
  binary_cleanup_age = opts[:binary_cleanup_age] ||= 604_800
218
258
  product_cleanup_age = opts[:product_cleanup_age] ||= 604_800
@@ -230,7 +270,7 @@ module PWN
230
270
  authorization: "Bearer #{token}",
231
271
  name: name,
232
272
  description: desc,
233
- parent: parent,
273
+ parent: parent_id,
234
274
  delete_binary_after_scan: delete_binary,
235
275
  binary_cleanup_age: binary_cleanup_age,
236
276
  product_cleanup_age: product_cleanup_age,
@@ -473,9 +513,18 @@ module PWN
473
513
  token: 'required - Bearer token'
474
514
  )
475
515
 
476
- response = #{self}.upload_file(
477
- token: 'required - Black Duck Binary Analysis API token',
478
- file: 'required - file to upload'
516
+ response = PWN::Plugins::BlackDuckBinaryAnalysis.upload_file(
517
+ token: 'required - Bearer token',
518
+ file: 'required - path of file to upload',
519
+ group_id: 'optional - group id',
520
+ delete_binary: 'optional - delete binary after upload (defaults to false)',
521
+ force_scan: 'optional - force scan (defaults to false)',
522
+ callback_url: 'optional - callback url',
523
+ scan_infoleak: 'optional - scan infoleak (defaults to true)',
524
+ code_analysis: 'optional - code analysis (defaults to true)',
525
+ scan_code_familiarity: 'optional - scan code familiarity (defaults to true)',
526
+ version: 'optional - version',
527
+ product_id: 'optional - product id'
479
528
  )
480
529
 
481
530
  response = #{self}.get_tasks(
@@ -495,7 +544,7 @@ module PWN
495
544
  token: 'required - Bearer token',
496
545
  name: 'required - group name',
497
546
  desc: 'optional - group description',
498
- parent: 'optional - parent group id',
547
+ parent_id: 'optional - parent_id group id',
499
548
  delete_binary: 'optional - delete binary after analysis C|Y|N (Default: C== company default)',
500
549
  binary_cleanup_age: 'optional - after how long the binary will be deleted in seconds (Default: 604_800 / 1 week)',
501
550
  product_cleanup_age: 'optional - after how long the product will be deleted in seconds (Default: 604_800 / 1 week)',
@@ -21,6 +21,7 @@ module PWN
21
21
  # )
22
22
 
23
23
  private_class_method def self.open_ai_rest_call(opts = {})
24
+ token = opts[:token]
24
25
  http_method = if opts[:http_method].nil?
25
26
  :get
26
27
  else
@@ -28,12 +29,14 @@ module PWN
28
29
  end
29
30
  rest_call = opts[:rest_call].to_s.scrub
30
31
  params = opts[:params]
32
+ headers = {
33
+ content_type: 'application/json; charset=UTF-8',
34
+ authorization: "Bearer #{token}"
35
+ }
36
+
31
37
  http_body = opts[:http_body]
32
38
  http_body ||= {}
33
39
  base_open_ai_api_uri = 'https://api.openai.com/v1'
34
- token = opts[:token]
35
-
36
- content_type = 'application/json; charset=UTF-8'
37
40
 
38
41
  browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
39
42
  rest_client = browser_obj[:browser]::Request
@@ -43,25 +46,22 @@ module PWN
43
46
 
44
47
  case http_method
45
48
  when :delete, :get
49
+ headers[:params] = params
46
50
  response = rest_client.execute(
47
51
  method: http2_method,
48
52
  url: "#{base_open_ai_api_uri}/#{rest_call}",
49
- headers: {
50
- content_type: content_type,
51
- authorization: "Bearer #{token}",
52
- params: params
53
- },
53
+ headers: headers,
54
54
  verify_ssl: false
55
55
  )
56
56
 
57
57
  when :post
58
58
  if http_body.key?(:multipart)
59
+ headers[:content_type] = 'multipart/form-data'
60
+
59
61
  response = rest_client.execute(
60
62
  method: http_method,
61
63
  url: "#{base_open_ai_api_uri}/#{rest_call}",
62
- headers: {
63
- authorization: "Bearer #{token}"
64
- },
64
+ headers: headers,
65
65
  payload: http_body,
66
66
  verify_ssl: false
67
67
  )
@@ -69,10 +69,7 @@ module PWN
69
69
  response = rest_client.execute(
70
70
  method: http_method,
71
71
  url: "#{base_open_ai_api_uri}/#{rest_call}",
72
- headers: {
73
- content_type: content_type,
74
- authorization: "Bearer #{token}"
75
- },
72
+ headers: headers,
76
73
  payload: http_body.to_json,
77
74
  verify_ssl: false
78
75
  )
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.4.735'
4
+ VERSION = '0.4.737'
5
5
  end
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.4.735
4
+ version: 0.4.737
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.