enchant 0.4.2 → 0.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rainbow'
4
+ gem 'progressbar'
5
+ gem "awesome_print"
6
+ gem 'rake'
7
+
8
+ group :development do
9
+ gem "rspec", "~> 2.3.0"
10
+ gem "yard", "~> 0.6.0"
11
+ gem "bundler", "~> 1.0.0"
12
+ gem "jeweler", "~> 1.6.0"
13
+ gem "rcov", ">= 0"
14
+ end
@@ -0,0 +1,37 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ awesome_print (1.0.2)
5
+ diff-lcs (1.1.3)
6
+ git (1.2.5)
7
+ jeweler (1.6.4)
8
+ bundler (~> 1.0)
9
+ git (>= 1.2.5)
10
+ rake
11
+ progressbar (0.9.2)
12
+ rainbow (1.1.3)
13
+ rake (0.9.2.2)
14
+ rcov (0.9.11)
15
+ rspec (2.3.0)
16
+ rspec-core (~> 2.3.0)
17
+ rspec-expectations (~> 2.3.0)
18
+ rspec-mocks (~> 2.3.0)
19
+ rspec-core (2.3.1)
20
+ rspec-expectations (2.3.0)
21
+ diff-lcs (~> 1.1.2)
22
+ rspec-mocks (2.3.0)
23
+ yard (0.6.8)
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ awesome_print
30
+ bundler (~> 1.0.0)
31
+ jeweler (~> 1.6.0)
32
+ progressbar
33
+ rainbow
34
+ rake
35
+ rcov
36
+ rspec (~> 2.3.0)
37
+ yard (~> 0.6.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.99.0
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require 'lib/Enchant'
2
+ require 'enchant'
4
3
  require 'rainbow'
4
+ require 'awesome_print'
5
5
  require 'progressbar'
6
6
  require 'getoptlong'
7
- require 'rdoc/usage'
8
7
 
9
8
  opts = GetoptLong.new(
10
9
  [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
@@ -17,76 +16,66 @@ opts = GetoptLong.new(
17
16
  [ '--port', '-p', GetoptLong::REQUIRED_ARGUMENT]
18
17
  )
19
18
 
20
- flood = -1
21
- ping = -1
22
- wordlist = 'basic.txt'
23
- host = nil
24
- port = nil
25
- domain = nil
19
+ options = { :flood=> -1, :ping=>-1, :wordlist=>'basic.txt', :host=>nil, :port=>80, :domain=>nil }
26
20
 
27
21
  opts.each do |opt, arg|
28
22
  case opt
29
- when '--help'
30
- RDoc::usage
31
- exit 0
32
- when '--version'
33
- puts Enchant.version
34
- exit 0
35
- when '--flood'
36
- flood = arg.to_i
37
- if flood <= 0
38
- puts 'can\'t flood negative requests'
39
- exit 1
40
- end
41
- when '--ping'
42
- ping = 0
43
- when '--host'
44
- host = arg
45
- when '--port'
46
- port = arg.to_i
47
- when '--wordlist'
48
- if arg == ''
49
- wordlist = 'basic.txt'
50
- else
51
- wordlist = arg
52
- end
53
- when '--domain'
54
- domain = arg
55
- end
23
+ when '--help'
24
+ ap "enchant: there is no doc at the moment... sorry."
25
+ exit 0
26
+ when '--version'
27
+ ap "enchant " + Enchant::Version.version[:string]
28
+ exit 0
29
+ when '--flood'
30
+ if arg.to_i <= 0
31
+ ap "enchant: requests number must be positive"
32
+ exit 1
33
+ else
34
+ options[:flood] = arg.to_i
35
+ end
36
+ when '--ping'
37
+ options[:ping] = 0
38
+ when '--host'
39
+ options[:host] = arg
40
+ when '--port'
41
+ options[:port] = arg.to_i
42
+ when '--wordlist'
43
+ options[:wordlist] = arg
44
+ when '--domain'
45
+ options[:domain] = arg
46
+ end
56
47
  end
57
48
 
58
- if host == nil && port == nil && domain == nil
49
+ if options[:host].nil? && options[:domain].nil?
59
50
  if ARGV.length != 1
60
- puts "Missing url argument (try --help)"
51
+ ap "enchant: missing url argument (try --help)"
61
52
  exit 0
62
53
  end
63
54
 
64
55
  url = ARGV.shift
65
- e = Enchant.new(url)
56
+ e = Enchant::Engine.new(url)
66
57
 
67
58
  else
68
- if domain == nil
69
- e = Enchant.new
70
- e.host = host
71
- e.port = port
59
+ if options[:domain].nil?
60
+ e = Enchant::Engine.new
61
+ e.host = options[:host]
62
+ e.port = options[:port]
72
63
  else
73
- e = Enchant.new
74
- e.domain = domain
64
+ e = Enchant::Engine.new
65
+ e.domain = options[:domain]
75
66
  end
76
67
  end
77
68
 
78
- puts e
79
-
80
- if flood != -1
69
+ if options[:flood] != -1
81
70
  if (! e.is_sane?)
82
71
  puts 'Automatic url parsing failed, please consider providing such information by hand.'
83
72
  exit 1
84
73
  end
85
- puts "Flooding "+e.host+" with #{flood} requests"
86
-
87
- pbar = ProgressBar.new("reqs", flood)
74
+ puts "Flooding "+e.host+" with #{options[:flood]} requests"
75
+
76
+ pbar = ProgressBar.new("reqs", options[:flood])
88
77
  start_time = Time.now
89
- (1..flood).each do |i|
78
+ (1..options[:flood]).each do |i|
90
79
  pbar.inc
91
80
  e.get('/')
92
81
  end
@@ -95,16 +84,16 @@ if flood != -1
95
84
  exit 0
96
85
  end
97
86
 
98
- if ping != -1
87
+ if options[:ping] != -1
99
88
  if (! e.is_sane?)
100
89
  puts 'Automatic url parsing failed, please consider providing such information by hand.'
101
90
  exit 1
102
91
  end
103
92
  puts "Pinging "+e.host+" onto port " + e.port.to_s
104
-
93
+
105
94
  start_time = Time.now
106
95
  e.get("/")
107
- if e.is_alive?
96
+ if e.up?
108
97
  puts e.host + " seems to be alive"
109
98
  else
110
99
  puts e.host + " seems having some trouble ("+e.code+")"
@@ -114,7 +103,7 @@ if ping != -1
114
103
  exit 0
115
104
  end
116
105
 
117
- if domain != -1
106
+ if !options[:domain].nil?
118
107
  if (! e.is_sane?)
119
108
  puts 'Automatic url parsing failed, please consider providing such information by hand.'
120
109
  exit 1
@@ -122,7 +111,7 @@ if domain != -1
122
111
  puts "scanning for " + e.domain + " for subdomains"
123
112
  e.list(wordlist)
124
113
  list = e.fuzz
125
-
114
+
126
115
  if list == nil
127
116
  puts "Enchant is giving up since no wordlist file is available"
128
117
  exit -1
@@ -140,7 +129,7 @@ if domain != -1
140
129
  end
141
130
 
142
131
  puts "Sending probe to #{url}"
143
- e.list(wordlist)
132
+ e.list(options[:wordlist])
144
133
  list = e.fuzz()
145
134
  if list == nil
146
135
  puts "Enchant is giving up since no wordlist file is available"
@@ -151,10 +140,10 @@ pbar = ProgressBar.new("urls", list.size)
151
140
 
152
141
  list.each {|x|
153
142
  pbar.inc
154
- code = e.get("/".concat(x).chomp)
155
- unless code != 404
156
- case code
157
- # just hide 404s... when "404" then puts "Status is #{code} for /#{x.chomp}".foreground(:yellow)
143
+ code = e.get("/".concat(x).chomp)
144
+ unless code != 404
145
+ case code
146
+ # just hide 404s... when "404" then puts "Status is #{code} for /#{x.chomp}".foreground(:yellow)
158
147
  when "200" then puts "Status is #{code} for /#{x.chomp}".foreground(:green)
159
148
  when "500" then puts "Status is #{code} for /#{x.chomp}".foreground(:red)
160
149
  else
@@ -1,56 +1,79 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{enchant}
8
- s.version = "0.4.2"
7
+ s.name = "enchant"
8
+ s.version = "0.99.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Paolo Perego"]
12
- s.date = %q{2011-02-03}
13
- s.default_executable = %q{enchant}
14
- s.description = %q{Enchant is tool aimed to discover web application directory and pages by fuzzing the requests using a dictionary approach}
15
- s.email = %q{paolo@armoredcode.com}
12
+ s.date = "2012-01-08"
13
+ s.description = "Enchant is tool aimed to discover web application directory and pages by fuzzing the requests using a dictionary approach"
14
+ s.email = "paolo@armoredcode.com"
16
15
  s.executables = ["enchant"]
17
16
  s.extra_rdoc_files = [
18
17
  "ChangeLog",
19
- "README.textile"
18
+ "README.textile"
20
19
  ]
21
20
  s.files = [
22
- ".gitignore",
23
- "COPYING",
24
- "ChangeLog",
25
- "README.textile",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/enchant",
29
- "enchant.gemspec",
30
- "lib/enchant.rb",
31
- "test/test_enchant.rb"
21
+ "COPYING",
22
+ "ChangeLog",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "README.textile",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/enchant",
29
+ "enchant.gemspec",
30
+ "lib/enchant.rb",
31
+ "lib/enchant/engine.rb",
32
+ "lib/enchant/version.rb"
32
33
  ]
33
- s.homepage = %q{http://github.com/thesp0nge/enchant}
34
- s.rdoc_options = ["--charset=UTF-8"]
34
+ s.homepage = "http://github.com/thesp0nge/enchant"
35
35
  s.require_paths = ["lib"]
36
- s.rubygems_version = %q{1.3.7}
37
- s.summary = %q{Your magical web application fuzzer}
38
- s.test_files = [
39
- "test/test_enchant.rb"
40
- ]
36
+ s.rubygems_version = "1.8.10"
37
+ s.summary = "Your magical web application fuzzer"
41
38
 
42
39
  if s.respond_to? :specification_version then
43
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
40
  s.specification_version = 3
45
41
 
46
42
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<rainbow>, [">= 0"])
44
+ s.add_runtime_dependency(%q<progressbar>, [">= 0"])
45
+ s.add_runtime_dependency(%q<awesome_print>, [">= 0"])
46
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
47
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
48
+ s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
49
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
50
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
51
+ s.add_development_dependency(%q<rcov>, [">= 0"])
47
52
  s.add_runtime_dependency(%q<ruby-progressbar>, [">= 0"])
48
53
  s.add_runtime_dependency(%q<rainbow>, [">= 0"])
49
54
  else
55
+ s.add_dependency(%q<rainbow>, [">= 0"])
56
+ s.add_dependency(%q<progressbar>, [">= 0"])
57
+ s.add_dependency(%q<awesome_print>, [">= 0"])
58
+ s.add_dependency(%q<rake>, [">= 0"])
59
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
60
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
61
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
62
+ s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
63
+ s.add_dependency(%q<rcov>, [">= 0"])
50
64
  s.add_dependency(%q<ruby-progressbar>, [">= 0"])
51
65
  s.add_dependency(%q<rainbow>, [">= 0"])
52
66
  end
53
67
  else
68
+ s.add_dependency(%q<rainbow>, [">= 0"])
69
+ s.add_dependency(%q<progressbar>, [">= 0"])
70
+ s.add_dependency(%q<awesome_print>, [">= 0"])
71
+ s.add_dependency(%q<rake>, [">= 0"])
72
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
73
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
74
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
75
+ s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
76
+ s.add_dependency(%q<rcov>, [">= 0"])
54
77
  s.add_dependency(%q<ruby-progressbar>, [">= 0"])
55
78
  s.add_dependency(%q<rainbow>, [">= 0"])
56
79
  end
@@ -1,97 +1,3 @@
1
- require 'rubygems'
2
- require 'net/http'
3
- require 'uri'
4
- require 'ping'
5
- require 'Net/ping'
6
- include Net
1
+ require 'enchant/version'
2
+ require 'enchant/engine'
7
3
 
8
-
9
- class Enchant
10
- attr_reader :server, :code
11
- attr_accessor :host, :port, :domain
12
-
13
- VERSION = '0.4.0'
14
-
15
- def initialize(*urls)
16
- url = urls.pop || ""
17
-
18
-
19
- if url != ""
20
- tmp = URI.parse(url)
21
- @host = tmp.host
22
- @port = tmp.port
23
-
24
- if @host == nil && @port == nil
25
- @sane = nil
26
- else
27
- @sane = 1
28
- end
29
- else
30
- @sane = 1
31
- end
32
- end
33
-
34
- def is_sane?
35
- @sane
36
- end
37
-
38
- def list(wordlist)
39
- begin
40
- File.open(wordlist, 'r') { |f|
41
- @list = f.readlines
42
- }
43
- rescue Errno::ENOENT
44
- puts "It seems the wordlist file is not present (#{wordlist})"
45
- @list = nil
46
- end
47
- end
48
-
49
- def fuzz(*)
50
- # in future some perturbation will be done here
51
- @list
52
- end
53
-
54
- def get(path)
55
- http = Net::HTTP.new(host, port)
56
- begin
57
- response = http.get(path)
58
- @code = response.code
59
- rescue Net::HTTPBadResponse
60
- puts #{$!}
61
- @code=-1
62
- rescue Errno::ETIMEDOUT
63
- puts #{$!}
64
- @code=-1
65
- end
66
- @code
67
- end
68
-
69
- def is_alive?
70
- code.to_i==200
71
- end
72
-
73
- def ping?(host)
74
- # TCP pinging
75
- if Ping.pingecho(host)
76
- return true
77
- end
78
- #else
79
- # icmp = Net::Ping::ICMP.new(host)
80
- # if icmp.ping?
81
- # return true
82
- # else
83
- # return false
84
- # end
85
- #end
86
- false
87
- end
88
-
89
- def to_s()
90
- "Enchant v"+VERSION+" - (C) 2010, thesp0nge@gmail.com"
91
- end
92
-
93
- def self.version()
94
- @version = File.exist?('VERSION') ? File.read('VERSION') : VERSION
95
- "Enchant v"+@version
96
- end
97
- end
@@ -0,0 +1,68 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+
4
+ module Enchant
5
+
6
+ class Engine
7
+ attr_reader :server, :code
8
+ attr_accessor :host, :port, :domain
9
+
10
+ def initialize(*urls)
11
+ url = urls.pop || ""
12
+
13
+ if url != ""
14
+ tmp = URI.parse(url)
15
+ @host = tmp.host
16
+ @port = tmp.port
17
+
18
+ if @host == nil && @port == nil
19
+ @sane = nil
20
+ else
21
+ @sane = 1
22
+ end
23
+ else
24
+ @sane = 1
25
+ end
26
+ end
27
+
28
+ def is_sane?
29
+ @sane
30
+ end
31
+
32
+ def list(wordlist)
33
+ begin
34
+ File.open(wordlist, 'r') { |f|
35
+ @list = f.readlines
36
+ }
37
+ rescue Errno::ENOENT
38
+ puts "It seems the wordlist file is not present (#{wordlist})"
39
+ @list = nil
40
+ end
41
+ end
42
+
43
+ def fuzz(*)
44
+ # in future some perturbation will be done here
45
+ @list
46
+ end
47
+
48
+ def get(path)
49
+ http = Net::HTTP.new(host, port)
50
+ begin
51
+ response = http.get(path)
52
+ @code = response.code
53
+ rescue Net::HTTPBadResponse
54
+ puts #{$!}
55
+ @code=-1
56
+ rescue Errno::ETIMEDOUT
57
+ puts #{$!}
58
+ @code=-1
59
+ end
60
+ @code
61
+ end
62
+
63
+ def up?(site)
64
+ Net::HTTP.new(site).head('/').kind_of? Net::HTTPOK
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,92 @@
1
+ module Enchant
2
+ # Handles enchant version number taken from VERSION file.
3
+ # The way Haml gem handles it's version.rb inspired me for creating this
4
+ # file.
5
+ class Version
6
+
7
+ # Returns a hash representing the version of enchant.
8
+ # The `:major`, `:minor`, and `:patch` keys have their respective numbers as Fixnums.
9
+ # The `:name` key has the name of the version.
10
+ # The `:string` key contains a human-readable string representation of the version.
11
+ # The `:number` key is the major, minor, and patch keys separated by periods.
12
+ # If enchant is checked out from Git, the `:rev` key will have the revision hash.
13
+ #
14
+ # For example:
15
+ #
16
+ # {
17
+ # :string => "0.1.4.160676a",
18
+ # :rev => "160676ab8924ef36639c7e82aa88a51a24d16949",
19
+ # :number => "0.1.4",
20
+ # :major => 0, :minor => 1, :patch => 4
21
+ # }
22
+ #
23
+ # If a prerelease version of enchant is being used,
24
+ # the `:string` and `:number` fields will reflect the full version
25
+ # (e.g. `"1.0.beta.1"`), and the `:patch` field will be `-1`.
26
+ #
27
+ # A `:prerelease` key will contain the name of the prerelease (e.g. `"beta"`),
28
+ # and a `:prerelease_number` key will contain the rerelease number.
29
+ #
30
+ # For example:
31
+ #
32
+ # {
33
+ # :string => "1.0.beta.1",
34
+ # :number => "1.0.beta.1",
35
+ # :major => 1, :minor => 0, :patch => -1,
36
+ # :prerelease => "beta",
37
+ # :prerelease_number => 1
38
+ # }
39
+ #
40
+ # @return [{Symbol => String/Fixnum}] The version hash
41
+ def self.version
42
+ return @@version if defined?(@@version)
43
+ numbers = File.read('VERSION').strip.split('.').map {|n| n =~ /^[0-9]+$/ ? n.to_i : n}
44
+ @@version = {
45
+ :major => numbers[0],
46
+ :minor => numbers[1],
47
+ :patch => numbers[2]
48
+ }
49
+ if numbers[3].is_a?(String)
50
+ @@version[:patch] = -1
51
+ @@version[:prerelease] = numbers[3]
52
+ @@version[:prerelease_number] = numbers[4]
53
+ end
54
+ @@version[:number] = numbers.join('.')
55
+ @@version[:string] = @@version[:number].dup
56
+
57
+ rev = revision_number
58
+ @@version[:rev] = rev
59
+ unless rev[0] == ?(
60
+ @@version[:string] << "." << rev[0...7]
61
+ end
62
+
63
+ @@version
64
+ end
65
+
66
+ def self.revision_number
67
+ if File.exists?('REVISION')
68
+ rev = File.read('REVISION').strip
69
+ return rev unless rev =~ /^([a-f0-9]+|\(.*\))$/ || rev == '(unknown)'
70
+ end
71
+
72
+ return unless File.exists?('.git/HEAD')
73
+ rev = File.read('.git/HEAD').strip
74
+ return rev unless rev =~ /^ref: (.*)$/
75
+
76
+ ref_name = $1
77
+ ref_file = "./.git/#{ref_name}"
78
+ info_file = "./.git/info/refs"
79
+ return File.read(ref_file).strip if File.exists?(ref_file)
80
+ return unless File.exists?(info_file)
81
+ File.open(info_file) do |f|
82
+ f.each do |l|
83
+ sha, ref = l.strip.split("\t", 2)
84
+ next unless ref == ref_name
85
+ return sha
86
+ end
87
+ end
88
+ return nil
89
+ end
90
+
91
+ end
92
+ end
metadata CHANGED
@@ -1,104 +1,181 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: enchant
3
- version: !ruby/object:Gem::Version
4
- hash: 11
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 4
9
- - 2
10
- version: 0.4.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.99.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Paolo Perego
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-02-03 00:00:00 +01:00
19
- default_executable: enchant
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: ruby-progressbar
12
+ date: 2012-01-08 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rainbow
16
+ requirement: &74330310 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
23
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: *74330310
25
+ - !ruby/object:Gem::Dependency
26
+ name: progressbar
27
+ requirement: &74329910 !ruby/object:Gem::Requirement
25
28
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
33
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rainbow
37
34
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ version_requirements: *74329910
36
+ - !ruby/object:Gem::Dependency
37
+ name: awesome_print
38
+ requirement: &74329590 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *74329590
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: &73873170 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *73873170
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ requirement: &73872830 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 2.3.0
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *73872830
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: &73872380 !ruby/object:Gem::Requirement
39
72
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.6.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *73872380
80
+ - !ruby/object:Gem::Dependency
81
+ name: bundler
82
+ requirement: &73872100 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 1.0.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *73872100
91
+ - !ruby/object:Gem::Dependency
92
+ name: jeweler
93
+ requirement: &73871830 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 1.6.0
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *73871830
102
+ - !ruby/object:Gem::Dependency
103
+ name: rcov
104
+ requirement: &73871490 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *73871490
113
+ - !ruby/object:Gem::Dependency
114
+ name: ruby-progressbar
115
+ requirement: &73871190 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
47
121
  type: :runtime
48
- version_requirements: *id002
49
- description: Enchant is tool aimed to discover web application directory and pages by fuzzing the requests using a dictionary approach
122
+ prerelease: false
123
+ version_requirements: *73871190
124
+ - !ruby/object:Gem::Dependency
125
+ name: rainbow
126
+ requirement: &73870930 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: *73870930
135
+ description: Enchant is tool aimed to discover web application directory and pages
136
+ by fuzzing the requests using a dictionary approach
50
137
  email: paolo@armoredcode.com
51
- executables:
138
+ executables:
52
139
  - enchant
53
140
  extensions: []
54
-
55
- extra_rdoc_files:
141
+ extra_rdoc_files:
56
142
  - ChangeLog
57
143
  - README.textile
58
- files:
59
- - .gitignore
144
+ files:
60
145
  - COPYING
61
146
  - ChangeLog
147
+ - Gemfile
148
+ - Gemfile.lock
62
149
  - README.textile
63
150
  - Rakefile
64
151
  - VERSION
65
152
  - bin/enchant
66
153
  - enchant.gemspec
67
154
  - lib/enchant.rb
68
- - test/test_enchant.rb
69
- has_rdoc: true
155
+ - lib/enchant/engine.rb
156
+ - lib/enchant/version.rb
70
157
  homepage: http://github.com/thesp0nge/enchant
71
158
  licenses: []
72
-
73
159
  post_install_message:
74
- rdoc_options:
75
- - --charset=UTF-8
76
- require_paths:
160
+ rdoc_options: []
161
+ require_paths:
77
162
  - lib
78
- required_ruby_version: !ruby/object:Gem::Requirement
163
+ required_ruby_version: !ruby/object:Gem::Requirement
79
164
  none: false
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- hash: 3
84
- segments:
85
- - 0
86
- version: "0"
87
- required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ! '>='
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
170
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 3
93
- segments:
94
- - 0
95
- version: "0"
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
96
175
  requirements: []
97
-
98
176
  rubyforge_project:
99
- rubygems_version: 1.3.7
177
+ rubygems_version: 1.8.10
100
178
  signing_key:
101
179
  specification_version: 3
102
180
  summary: Your magical web application fuzzer
103
- test_files:
104
- - test/test_enchant.rb
181
+ test_files: []
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- .autotest
2
- doc/*
3
- pkg/
4
-
@@ -1,8 +0,0 @@
1
- require "test/unit"
2
- require "enchant"
3
-
4
- class TestEnchant < Test::Unit::TestCase
5
- def test_sanity
6
- flunk "write tests or I will kneecap you"
7
- end
8
- end