Class: W4bFile::Scanner

Inherits:
Object
  • Object
show all
Defined in:
lib/w4b-file/scanner.rb

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ Scanner

Returns a new instance of Scanner.



7
8
9
# File 'lib/w4b-file/scanner.rb', line 7

def initialize(url)
  @url = url
end

Instance Method Details

#scan_hidden_filesObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/w4b-file/scanner.rb', line 20

def scan_hidden_files
  uri = URI.parse(@url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = (uri.scheme == 'https')
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER

  request = Net::HTTP::Get.new(uri)
  request['User-Agent'] = 'Googlebot'
  response = http.request(request)

  hidden_files = []
  if response.is_a?(Net::HTTPSuccess)
    response.body.scan(/href="([^"#]*)"/).flatten.compact.each do |file|
      hidden_files << file if file.start_with?(".") || file.include?("/.")
    end
  end

  hidden_files
end

#scan_websiteObject



11
12
13
14
15
16
17
18
# File 'lib/w4b-file/scanner.rb', line 11

def scan_website
  uri = URI.parse(@url)
  response = Net::HTTP.get_response(uri)

  return [] unless response.is_a?(Net::HTTPSuccess)

  response.body.scan(/href="([^"#]*)"|\ssrc="([^"#]*)"/).flatten.compact
end