arachni 0.2.4 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +33 -0
- data/README.md +2 -4
- data/Rakefile +15 -4
- data/bin/arachni +0 -0
- data/bin/arachni_web +0 -0
- data/bin/arachni_web_autostart +0 -0
- data/bin/arachni_xmlrpc +0 -0
- data/bin/arachni_xmlrpcd +0 -0
- data/bin/arachni_xmlrpcd_monitor +0 -0
- data/lib/arachni.rb +1 -1
- data/lib/framework.rb +36 -6
- data/lib/http.rb +12 -5
- data/lib/module/auditor.rb +482 -59
- data/lib/module/base.rb +17 -0
- data/lib/module/manager.rb +26 -2
- data/lib/module/trainer.rb +1 -12
- data/lib/module/utilities.rb +12 -0
- data/lib/parser/auditable.rb +8 -3
- data/lib/parser/elements.rb +11 -0
- data/lib/parser/page.rb +3 -1
- data/lib/parser/parser.rb +130 -18
- data/lib/rpc/xml/server/dispatcher.rb +21 -0
- data/lib/spider.rb +141 -82
- data/lib/ui/cli/cli.rb +2 -3
- data/lib/ui/web/addon_manager.rb +273 -0
- data/lib/ui/web/addons/autodeploy.rb +172 -0
- data/lib/ui/web/addons/autodeploy/lib/manager.rb +291 -0
- data/lib/ui/web/addons/autodeploy/views/index.erb +124 -0
- data/lib/ui/web/addons/sample.rb +78 -0
- data/lib/ui/web/addons/sample/views/index.erb +4 -0
- data/lib/ui/web/addons/scheduler.rb +139 -0
- data/lib/ui/web/addons/scheduler/views/index.erb +131 -0
- data/lib/ui/web/addons/scheduler/views/options.erb +93 -0
- data/lib/ui/web/dispatcher_manager.rb +80 -13
- data/lib/ui/web/instance_manager.rb +87 -0
- data/lib/ui/web/scheduler.rb +166 -0
- data/lib/ui/web/server.rb +142 -202
- data/lib/ui/web/server/public/js/jquery-ui-timepicker.js +985 -0
- data/lib/ui/web/server/public/plugins/sample/style.css +0 -0
- data/lib/ui/web/server/public/style.css +42 -0
- data/lib/ui/web/server/views/addon.erb +15 -0
- data/lib/ui/web/server/views/addons.erb +46 -0
- data/lib/ui/web/server/views/dispatchers.erb +1 -1
- data/lib/ui/web/server/views/instance.erb +9 -11
- data/lib/ui/web/server/views/layout.erb +14 -1
- data/lib/ui/web/server/views/welcome.erb +7 -6
- data/lib/ui/web/utilities.rb +134 -0
- data/modules/audit/code_injection_timing.rb +6 -2
- data/modules/audit/code_injection_timing/payloads.txt +2 -2
- data/modules/audit/os_cmd_injection_timing.rb +7 -3
- data/modules/audit/os_cmd_injection_timing/payloads.txt +1 -1
- data/modules/audit/sqli_blind_rdiff.rb +18 -233
- data/modules/audit/sqli_blind_rdiff/payloads.txt +5 -0
- data/modules/audit/sqli_blind_timing.rb +9 -2
- data/path_extractors/anchors.rb +1 -1
- data/path_extractors/forms.rb +1 -1
- data/path_extractors/frames.rb +1 -1
- data/path_extractors/generic.rb +1 -1
- data/path_extractors/links.rb +1 -1
- data/path_extractors/meta_refresh.rb +1 -1
- data/path_extractors/scripts.rb +1 -1
- data/path_extractors/sitemap.rb +1 -1
- data/plugins/proxy/server.rb +3 -2
- data/plugins/waf_detector.rb +0 -3
- metadata +37 -34
- data/lib/anemone/cookie_store.rb +0 -35
- data/lib/anemone/core.rb +0 -371
- data/lib/anemone/exceptions.rb +0 -5
- data/lib/anemone/http.rb +0 -144
- data/lib/anemone/page.rb +0 -338
- data/lib/anemone/page_store.rb +0 -160
- data/lib/anemone/storage.rb +0 -34
- data/lib/anemone/storage/base.rb +0 -75
- data/lib/anemone/storage/exceptions.rb +0 -15
- data/lib/anemone/storage/mongodb.rb +0 -89
- data/lib/anemone/storage/pstore.rb +0 -50
- data/lib/anemone/storage/redis.rb +0 -90
- data/lib/anemone/storage/tokyo_cabinet.rb +0 -57
- data/lib/anemone/tentacle.rb +0 -40
@@ -1,57 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'tokyocabinet'
|
3
|
-
rescue LoadError
|
4
|
-
puts "You need the tokyocabinet gem to use Anemone::Storage::TokyoCabinet"
|
5
|
-
exit
|
6
|
-
end
|
7
|
-
|
8
|
-
require 'forwardable'
|
9
|
-
|
10
|
-
module Anemone
|
11
|
-
module Storage
|
12
|
-
class TokyoCabinet
|
13
|
-
extend Forwardable
|
14
|
-
|
15
|
-
def_delegators :@db, :close, :size, :keys, :has_key?
|
16
|
-
|
17
|
-
def initialize(file)
|
18
|
-
raise "TokyoCabinet filename must have .tch extension" if File.extname(file) != '.tch'
|
19
|
-
@db = ::TokyoCabinet::HDB::new
|
20
|
-
@db.open(file, ::TokyoCabinet::HDB::OWRITER | ::TokyoCabinet::HDB::OCREAT)
|
21
|
-
@db.clear
|
22
|
-
end
|
23
|
-
|
24
|
-
def [](key)
|
25
|
-
if value = @db[key]
|
26
|
-
load_value(value)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def []=(key, value)
|
31
|
-
@db[key] = [Marshal.dump(value)].pack("m")
|
32
|
-
end
|
33
|
-
|
34
|
-
def delete(key)
|
35
|
-
value = self[key]
|
36
|
-
@db.delete(key)
|
37
|
-
value
|
38
|
-
end
|
39
|
-
|
40
|
-
def each
|
41
|
-
@db.each { |k, v| yield k, load_value(v) }
|
42
|
-
end
|
43
|
-
|
44
|
-
def merge!(hash)
|
45
|
-
hash.each { |key, value| self[key] = value }
|
46
|
-
self
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def load_value(value)
|
52
|
-
Marshal.load(value.unpack("m")[0])
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
data/lib/anemone/tentacle.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
|
2
|
-
require Arachni::Options.instance.dir['lib'] + 'anemone/http'
|
3
|
-
|
4
|
-
module Anemone
|
5
|
-
class Tentacle
|
6
|
-
|
7
|
-
#
|
8
|
-
# Create a new Tentacle
|
9
|
-
#
|
10
|
-
def initialize(link_queue, page_queue, opts = {})
|
11
|
-
@link_queue = link_queue
|
12
|
-
@page_queue = page_queue
|
13
|
-
@http = Anemone::HTTP.new(opts)
|
14
|
-
@opts = opts
|
15
|
-
end
|
16
|
-
|
17
|
-
#
|
18
|
-
# Gets links from @link_queue, and returns the fetched
|
19
|
-
# Page objects into @page_queue
|
20
|
-
#
|
21
|
-
def run
|
22
|
-
loop do
|
23
|
-
link, referer, depth = @link_queue.deq
|
24
|
-
|
25
|
-
break if link == :END
|
26
|
-
|
27
|
-
@http.fetch_pages(link, referer, depth).each { |page| @page_queue << page }
|
28
|
-
|
29
|
-
delay
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def delay
|
36
|
-
sleep @opts[:delay] if @opts[:delay] > 0
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|