enchant 0.4.2 → 0.99.0

Sign up to get free protection for your applications and to get access to all the features.
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