File tree Expand file tree Collapse file tree 2 files changed +33
-5
lines changed
lib/metasploit/framework/login_scanner
spec/lib/metasploit/framework/login_scanner Expand file tree Collapse file tree 2 files changed +33
-5
lines changed Original file line number Diff line number Diff line change @@ -194,8 +194,8 @@ def attempt_login(credential)
194
194
# @return [nil] If the banner did not match any of the expected values
195
195
def extract_version ( banner )
196
196
# Set version. Some GlassFish servers return banner "GlassFish v3".
197
- if banner =~ /( GlassFish Server| Open Source Edition)[[:blank:]]*(\d \. \d )/
198
- @version = $2
197
+ if banner =~ /GlassFish Server(?: Open Source Edition)? [[:blank:]]*(\d \. \d )/
198
+ @version = $1
199
199
elsif banner =~ /GlassFish v(\d )/
200
200
@version = $1
201
201
elsif banner =~ /Sun GlassFish Enterprise Server v2/
Original file line number Diff line number Diff line change 297
297
end
298
298
299
299
context '#extract_version' do
300
- let ( :server_header ) { "GlassFish Server Open Source Edition 4.0" }
300
+ # Thanks to shodan for Server headers
301
+ subject ( :extracted_version ) { http_scanner . extract_version ( server_header ) }
301
302
302
- specify do
303
- expect ( http_scanner . extract_version ( server_header ) ) . to eq ( "4.0" )
303
+ context 'with 9.1 header' do
304
+ let ( :server_header ) { "Sun Java System Application Server 9.1_02" }
305
+ it { is_expected . to start_with ( "9" ) }
304
306
end
305
307
308
+ context 'with 4.0 header' do
309
+ let ( :server_header ) { "GlassFish Server Open Source Edition 4.0" }
310
+ it { is_expected . to start_with ( "4" ) }
311
+ end
312
+
313
+ context 'with 3.0 header' do
314
+ let ( :server_header ) { "GlassFish Server Open Source Edition 3.0.1" }
315
+ it { is_expected . to start_with ( "3" ) }
316
+ end
317
+
318
+ context 'with non-open-source header' do
319
+ let ( :server_header ) { "Oracle GlassFish Server 3.1.2.3" }
320
+ it { is_expected . to start_with ( "3" ) }
321
+ end
322
+
323
+ context 'with 2.1 header' do
324
+ let ( :server_header ) { "Sun GlassFish Enterprise Server v2.1" }
325
+ it { is_expected . to start_with ( "2" ) }
326
+ end
327
+
328
+ context 'with bogus header' do
329
+ let ( :server_header ) { "Apache-Coyote/1.1" }
330
+ it { is_expected . to be_nil }
331
+ end
332
+
333
+
306
334
end
307
335
308
336
end
You can’t perform that action at this time.
0 commit comments