New json structure implemented #853

This commit is contained in:
ethicalhack3r
2015-09-03 22:04:44 +02:00
parent 57f6206aee
commit e6d29f6f18
9 changed files with 78 additions and 96 deletions

View File

@@ -172,19 +172,19 @@ class WpItems < Array
case type
when :vulnerable
item_names = json.select { |item| !item['vulnerabilities'].empty? }.map {|item| item['name'] }
items = json.select { |item| !json[item]['vulnerabilities'].empty? }
when :popular
item_names = json.select { |item| item['popular'] == true }.map {|item| item['name'] }
items = json.select { |item| json[item]['popular'] == true }
when :all
item_names = [*json].map { |item| item['name'] }
items = [*json]
else
raise "Unknown type #{type}"
end
item_names.each do |item_name|
items.each do |item|
targets << create_item(
item_class,
item_name,
item[0],
wp_target,
vulns_file
)

View File

@@ -8,21 +8,15 @@ class WpItem
# Filters out already fixed vulnerabilities
#
# @return [ Vulnerabilities ]
def vulnerabilities
def vulnerabilities
json = json(vulns_file)
vulnerabilities = Vulnerabilities.new
json.each do |item|
asset = item['version'] || item['name']
return vulnerabilities if json.empty?
next unless asset == identifier
item['vulnerabilities'].each do |vulnerability|
vulnerability = Vulnerability.load_from_json_item(vulnerability)
vulnerabilities << vulnerability if vulnerable_to?(vulnerability)
end
break # No need to iterate any further
json[identifier]['vulnerabilities'].each do |vulnerability|
vulnerability = Vulnerability.load_from_json_item(vulnerability)
vulnerabilities << vulnerability if vulnerable_to?(vulnerability)
end
vulnerabilities