more detailed update exception
This commit is contained in:
@@ -80,6 +80,15 @@ class DbUpdater
|
|||||||
local_file_checksum(filename)
|
local_file_checksum(filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_cloudflare_info
|
||||||
|
begin
|
||||||
|
res = Browser.get(remote_file_url('/cdn-cgi/trace'), request_params)
|
||||||
|
res.body
|
||||||
|
rescue
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def update(verbose = false)
|
def update(verbose = false)
|
||||||
FILES.each do |filename|
|
FILES.each do |filename|
|
||||||
begin
|
begin
|
||||||
@@ -101,7 +110,7 @@ class DbUpdater
|
|||||||
puts " [i] Database File Checksum : #{db_checksum}" if verbose
|
puts " [i] Database File Checksum : #{db_checksum}" if verbose
|
||||||
|
|
||||||
unless dl_checksum == db_checksum
|
unless dl_checksum == db_checksum
|
||||||
fail "#{filename}: checksums do not match (local: #{dl_checksum} remote: #{db_checksum})"
|
raise ChecksumError.new(File.read(local_file_path(filename)), get_cloudflare_info), "#{filename}: checksums do not match (local: #{dl_checksum} remote: #{db_checksum})"
|
||||||
end
|
end
|
||||||
rescue => e
|
rescue => e
|
||||||
puts ' [i] Restoring Backup due to error' if verbose
|
puts ' [i] Restoring Backup due to error' if verbose
|
||||||
|
|||||||
@@ -31,3 +31,12 @@ class DownloadError < HttpError
|
|||||||
"Unable to get #{failure_details}"
|
"Unable to get #{failure_details}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class ChecksumError < StandardError
|
||||||
|
attr_reader :file, :cloudflare_info
|
||||||
|
|
||||||
|
def initialize(file, cloudflare_info)
|
||||||
|
@file = file
|
||||||
|
@cloudflare_info = cloudflare_info
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
11
wpscan.rb
11
wpscan.rb
@@ -454,6 +454,17 @@ def main
|
|||||||
|
|
||||||
rescue Interrupt
|
rescue Interrupt
|
||||||
# do nothing on interrupt
|
# do nothing on interrupt
|
||||||
|
# Error on Updating
|
||||||
|
rescue ChecksumError => e
|
||||||
|
puts critical(e.message)
|
||||||
|
puts critical('Downloaded File Content:')
|
||||||
|
puts e.file[0..500]
|
||||||
|
puts '.........'
|
||||||
|
puts
|
||||||
|
puts critical('Cloudflare Info:')
|
||||||
|
puts e.cloudflare_info
|
||||||
|
puts
|
||||||
|
puts critical('Please submit this info as an Github issue')
|
||||||
rescue => e
|
rescue => e
|
||||||
puts
|
puts
|
||||||
puts critical(e.message)
|
puts critical(e.message)
|
||||||
|
|||||||
Reference in New Issue
Block a user