better ubuntu version check

This commit is contained in:
Christian Mehlmauer
2015-12-16 14:18:44 +01:00
parent 60181feb51
commit fa3fb1affc
@@ -69,11 +69,7 @@ class Metasploit3 < Msf::Exploit::Remote
vprint_status("Found PHP version: #{php_version}")
version = Gem::Version.new(php_version)
vulnerable = false
vulnerable = true if version <= Gem::Version.new('5.4.44')
vulnerable = true if version.between?(Gem::Version.new('5.5.0'), Gem::Version.new('5.5.28'))
vulnerable = true if version.between?(Gem::Version.new('5.6.0'), Gem::Version.new('5.6.12'))
# check for ubuntu specific versions. Was fixed in
# * 5.5.9+dfsg-1ubuntu4.13
@@ -85,13 +81,19 @@ class Metasploit3 < Msf::Exploit::Remote
sub_version = rest.scan(/^\dubuntu([\d\.]+)/i).flatten.first || ''
vprint_status("Found Ubuntu PHP version: #{php_version}-#{sub_version}")
if version == Gem::Version.new('5.5.9') && Gem::Version.new(sub_version) < Gem::Version.new(4.13)
vulnerable = true
elsif version == Gem::Version.new('5.3.10') && Gem::Version.new(sub_version) < Gem::Version.new(3.20)
vulnerable = true
else
if version > Gem::Version.new('5.5.9')
vulnerable = false
elsif version == Gem::Version.new('5.5.9') && Gem::Version.new(sub_version) >= Gem::Version.new('4.13')
vulnerable = false
elsif version == Gem::Version.new('5.3.10') && Gem::Version.new(sub_version) >= Gem::Version.new('3.20')
vulnerable = false
else
vulnerable = true
end
else
vulnerable = true if version <= Gem::Version.new('5.4.44')
vulnerable = true if version.between?(Gem::Version.new('5.5.0'), Gem::Version.new('5.5.28'))
vulnerable = true if version.between?(Gem::Version.new('5.6.0'), Gem::Version.new('5.6.12'))
end
unless vulnerable