arachni 0.2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. data/ACKNOWLEDGMENTS.md +14 -0
  2. data/AUTHORS.md +6 -0
  3. data/CHANGELOG.md +162 -0
  4. data/CONTRIBUTORS.md +10 -0
  5. data/EXPLOITATION.md +429 -0
  6. data/HACKING.md +101 -0
  7. data/LICENSE.md +341 -0
  8. data/README.md +350 -0
  9. data/Rakefile +86 -0
  10. data/bin/arachni +22 -0
  11. data/bin/arachni_web +77 -0
  12. data/bin/arachni_xmlrpc +21 -0
  13. data/bin/arachni_xmlrpcd +82 -0
  14. data/bin/arachni_xmlrpcd_monitor +74 -0
  15. data/conf/README.webui.yaml.txt +44 -0
  16. data/conf/webui.yaml +11 -0
  17. data/external/metasploit/LICENSE +24 -0
  18. data/external/metasploit/modules/exploits/unix/webapp/arachni_exec.rb +142 -0
  19. data/external/metasploit/modules/exploits/unix/webapp/arachni_path_traversal.rb +113 -0
  20. data/external/metasploit/modules/exploits/unix/webapp/arachni_php_eval.rb +150 -0
  21. data/external/metasploit/modules/exploits/unix/webapp/arachni_php_include.rb +141 -0
  22. data/external/metasploit/modules/exploits/unix/webapp/arachni_sqlmap.rb +92 -0
  23. data/external/metasploit/plugins/arachni.rb +536 -0
  24. data/getoptslong.rb +241 -0
  25. data/lib/anemone.rb +2 -0
  26. data/lib/anemone/cookie_store.rb +35 -0
  27. data/lib/anemone/core.rb +371 -0
  28. data/lib/anemone/exceptions.rb +5 -0
  29. data/lib/anemone/http.rb +144 -0
  30. data/lib/anemone/page.rb +337 -0
  31. data/lib/anemone/page_store.rb +160 -0
  32. data/lib/anemone/storage.rb +34 -0
  33. data/lib/anemone/storage/base.rb +75 -0
  34. data/lib/anemone/storage/exceptions.rb +15 -0
  35. data/lib/anemone/storage/mongodb.rb +89 -0
  36. data/lib/anemone/storage/pstore.rb +50 -0
  37. data/lib/anemone/storage/redis.rb +90 -0
  38. data/lib/anemone/storage/tokyo_cabinet.rb +57 -0
  39. data/lib/anemone/tentacle.rb +40 -0
  40. data/lib/arachni.rb +16 -0
  41. data/lib/audit_store.rb +346 -0
  42. data/lib/component_manager.rb +293 -0
  43. data/lib/component_options.rb +395 -0
  44. data/lib/exceptions.rb +76 -0
  45. data/lib/framework.rb +637 -0
  46. data/lib/http.rb +809 -0
  47. data/lib/issue.rb +302 -0
  48. data/lib/module.rb +4 -0
  49. data/lib/module/auditor.rb +455 -0
  50. data/lib/module/base.rb +188 -0
  51. data/lib/module/element_db.rb +158 -0
  52. data/lib/module/key_filler.rb +87 -0
  53. data/lib/module/manager.rb +87 -0
  54. data/lib/module/output.rb +68 -0
  55. data/lib/module/trainer.rb +240 -0
  56. data/lib/module/utilities.rb +110 -0
  57. data/lib/options.rb +547 -0
  58. data/lib/parser.rb +2 -0
  59. data/lib/parser/auditable.rb +522 -0
  60. data/lib/parser/elements.rb +296 -0
  61. data/lib/parser/page.rb +149 -0
  62. data/lib/parser/parser.rb +717 -0
  63. data/lib/plugin.rb +4 -0
  64. data/lib/plugin/base.rb +110 -0
  65. data/lib/plugin/manager.rb +162 -0
  66. data/lib/report.rb +4 -0
  67. data/lib/report/base.rb +119 -0
  68. data/lib/report/manager.rb +92 -0
  69. data/lib/rpc/xml/client/base.rb +71 -0
  70. data/lib/rpc/xml/client/dispatcher.rb +49 -0
  71. data/lib/rpc/xml/client/instance.rb +88 -0
  72. data/lib/rpc/xml/server/base.rb +90 -0
  73. data/lib/rpc/xml/server/dispatcher.rb +357 -0
  74. data/lib/rpc/xml/server/framework.rb +206 -0
  75. data/lib/rpc/xml/server/instance.rb +191 -0
  76. data/lib/rpc/xml/server/module/manager.rb +46 -0
  77. data/lib/rpc/xml/server/options.rb +124 -0
  78. data/lib/rpc/xml/server/output.rb +299 -0
  79. data/lib/rpc/xml/server/plugin/manager.rb +58 -0
  80. data/lib/ruby.rb +5 -0
  81. data/lib/ruby/object.rb +32 -0
  82. data/lib/ruby/string.rb +74 -0
  83. data/lib/ruby/xmlrpc/server.rb +27 -0
  84. data/lib/spider.rb +200 -0
  85. data/lib/typhoeus/request.rb +91 -0
  86. data/lib/typhoeus/response.rb +34 -0
  87. data/lib/ui/cli/cli.rb +744 -0
  88. data/lib/ui/cli/output.rb +279 -0
  89. data/lib/ui/web/log.rb +82 -0
  90. data/lib/ui/web/output_stream.rb +94 -0
  91. data/lib/ui/web/report_manager.rb +222 -0
  92. data/lib/ui/web/server.rb +903 -0
  93. data/lib/ui/web/server/db/placeholder +0 -0
  94. data/lib/ui/web/server/public/banner.png +0 -0
  95. data/lib/ui/web/server/public/bodybg-small.png +0 -0
  96. data/lib/ui/web/server/public/bodybg.png +0 -0
  97. data/lib/ui/web/server/public/css/smoothness/images/pbar-ani.gif +0 -0
  98. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  99. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  100. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  101. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  102. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  103. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  104. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  105. data/lib/ui/web/server/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  106. data/lib/ui/web/server/public/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  107. data/lib/ui/web/server/public/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  108. data/lib/ui/web/server/public/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  109. data/lib/ui/web/server/public/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  110. data/lib/ui/web/server/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  111. data/lib/ui/web/server/public/css/smoothness/jquery-ui-1.8.9.custom.css +573 -0
  112. data/lib/ui/web/server/public/favicon.ico +0 -0
  113. data/lib/ui/web/server/public/footer.jpg +0 -0
  114. data/lib/ui/web/server/public/icons/error.png +0 -0
  115. data/lib/ui/web/server/public/icons/info.png +0 -0
  116. data/lib/ui/web/server/public/icons/ok.png +0 -0
  117. data/lib/ui/web/server/public/icons/status.png +0 -0
  118. data/lib/ui/web/server/public/js/jquery-1.4.4.min.js +167 -0
  119. data/lib/ui/web/server/public/js/jquery-ui-1.8.9.custom.min.js +781 -0
  120. data/lib/ui/web/server/public/logo.png +0 -0
  121. data/lib/ui/web/server/public/nav-left.jpg +0 -0
  122. data/lib/ui/web/server/public/nav-right.jpg +0 -0
  123. data/lib/ui/web/server/public/nav-selected-left.jpg +0 -0
  124. data/lib/ui/web/server/public/nav-selected-right.jpg +0 -0
  125. data/lib/ui/web/server/public/reports/placeholder +1 -0
  126. data/lib/ui/web/server/public/sidebar-bottom.jpg +0 -0
  127. data/lib/ui/web/server/public/sidebar-h4.jpg +0 -0
  128. data/lib/ui/web/server/public/sidebar-top.jpg +0 -0
  129. data/lib/ui/web/server/public/spider.png +0 -0
  130. data/lib/ui/web/server/public/style.css +604 -0
  131. data/lib/ui/web/server/tmp/placeholder +0 -0
  132. data/lib/ui/web/server/views/dispatcher.erb +85 -0
  133. data/lib/ui/web/server/views/dispatcher_error.erb +14 -0
  134. data/lib/ui/web/server/views/error.erb +1 -0
  135. data/lib/ui/web/server/views/flash.erb +18 -0
  136. data/lib/ui/web/server/views/home.erb +14 -0
  137. data/lib/ui/web/server/views/instance.erb +213 -0
  138. data/lib/ui/web/server/views/layout.erb +95 -0
  139. data/lib/ui/web/server/views/log.erb +40 -0
  140. data/lib/ui/web/server/views/modules.erb +71 -0
  141. data/lib/ui/web/server/views/options.erb +23 -0
  142. data/lib/ui/web/server/views/output_results.erb +51 -0
  143. data/lib/ui/web/server/views/plugins.erb +42 -0
  144. data/lib/ui/web/server/views/report_formats.erb +30 -0
  145. data/lib/ui/web/server/views/reports.erb +55 -0
  146. data/lib/ui/web/server/views/settings.erb +120 -0
  147. data/lib/ui/web/server/views/welcome.erb +38 -0
  148. data/lib/ui/xmlrpc/dispatcher_monitor.rb +204 -0
  149. data/lib/ui/xmlrpc/xmlrpc.rb +843 -0
  150. data/logs/placeholder +0 -0
  151. data/metamodules/autothrottle.rb +74 -0
  152. data/metamodules/timeout_notice.rb +118 -0
  153. data/metamodules/uniformity.rb +98 -0
  154. data/modules/audit/code_injection.rb +136 -0
  155. data/modules/audit/code_injection_timing.rb +115 -0
  156. data/modules/audit/code_injection_timing/payloads.txt +4 -0
  157. data/modules/audit/csrf.rb +301 -0
  158. data/modules/audit/ldapi.rb +103 -0
  159. data/modules/audit/ldapi/errors.txt +26 -0
  160. data/modules/audit/os_cmd_injection.rb +103 -0
  161. data/modules/audit/os_cmd_injection/payloads.txt +2 -0
  162. data/modules/audit/os_cmd_injection_timing.rb +104 -0
  163. data/modules/audit/os_cmd_injection_timing/payloads.txt +3 -0
  164. data/modules/audit/path_traversal.rb +141 -0
  165. data/modules/audit/response_splitting.rb +105 -0
  166. data/modules/audit/rfi.rb +193 -0
  167. data/modules/audit/sqli.rb +120 -0
  168. data/modules/audit/sqli/regexp_ids.txt +90 -0
  169. data/modules/audit/sqli_blind_rdiff.rb +321 -0
  170. data/modules/audit/sqli_blind_timing.rb +103 -0
  171. data/modules/audit/sqli_blind_timing/payloads.txt +51 -0
  172. data/modules/audit/trainer.rb +89 -0
  173. data/modules/audit/unvalidated_redirect.rb +90 -0
  174. data/modules/audit/xpath.rb +104 -0
  175. data/modules/audit/xpath/errors.txt +26 -0
  176. data/modules/audit/xss.rb +99 -0
  177. data/modules/audit/xss_event.rb +134 -0
  178. data/modules/audit/xss_path.rb +125 -0
  179. data/modules/audit/xss_script_tag.rb +112 -0
  180. data/modules/audit/xss_tag.rb +112 -0
  181. data/modules/audit/xss_uri.rb +125 -0
  182. data/modules/recon/allowed_methods.rb +104 -0
  183. data/modules/recon/backdoors.rb +131 -0
  184. data/modules/recon/backdoors/filenames.txt +16 -0
  185. data/modules/recon/backup_files.rb +177 -0
  186. data/modules/recon/backup_files/extensions.txt +28 -0
  187. data/modules/recon/common_directories.rb +138 -0
  188. data/modules/recon/common_directories/directories.txt +265 -0
  189. data/modules/recon/common_files.rb +138 -0
  190. data/modules/recon/common_files/filenames.txt +17 -0
  191. data/modules/recon/directory_listing.rb +171 -0
  192. data/modules/recon/grep/captcha.rb +62 -0
  193. data/modules/recon/grep/credit_card.rb +85 -0
  194. data/modules/recon/grep/cvs_svn_users.rb +73 -0
  195. data/modules/recon/grep/emails.rb +59 -0
  196. data/modules/recon/grep/html_objects.rb +53 -0
  197. data/modules/recon/grep/private_ip.rb +54 -0
  198. data/modules/recon/grep/ssn.rb +53 -0
  199. data/modules/recon/htaccess_limit.rb +82 -0
  200. data/modules/recon/http_put.rb +95 -0
  201. data/modules/recon/interesting_responses.rb +118 -0
  202. data/modules/recon/unencrypted_password_forms.rb +119 -0
  203. data/modules/recon/webdav.rb +126 -0
  204. data/modules/recon/xst.rb +107 -0
  205. data/path_extractors/anchors.rb +35 -0
  206. data/path_extractors/forms.rb +35 -0
  207. data/path_extractors/frames.rb +38 -0
  208. data/path_extractors/generic.rb +39 -0
  209. data/path_extractors/links.rb +35 -0
  210. data/path_extractors/meta_refresh.rb +39 -0
  211. data/path_extractors/scripts.rb +37 -0
  212. data/path_extractors/sitemap.rb +31 -0
  213. data/plugins/autologin.rb +137 -0
  214. data/plugins/content_types.rb +90 -0
  215. data/plugins/cookie_collector.rb +99 -0
  216. data/plugins/form_dicattack.rb +185 -0
  217. data/plugins/healthmap.rb +94 -0
  218. data/plugins/http_dicattack.rb +133 -0
  219. data/plugins/metamodules.rb +118 -0
  220. data/plugins/proxy.rb +248 -0
  221. data/plugins/proxy/server.rb +66 -0
  222. data/plugins/waf_detector.rb +184 -0
  223. data/profiles/comprehensive.afp +74 -0
  224. data/profiles/full.afp +75 -0
  225. data/reports/afr.rb +59 -0
  226. data/reports/ap.rb +55 -0
  227. data/reports/html.rb +179 -0
  228. data/reports/html/default.erb +967 -0
  229. data/reports/metareport.rb +139 -0
  230. data/reports/metareport/arachni_metareport.rb +174 -0
  231. data/reports/plugin_formatters/html/content_types.rb +82 -0
  232. data/reports/plugin_formatters/html/cookie_collector.rb +66 -0
  233. data/reports/plugin_formatters/html/form_dicattack.rb +54 -0
  234. data/reports/plugin_formatters/html/healthmap.rb +76 -0
  235. data/reports/plugin_formatters/html/http_dicattack.rb +54 -0
  236. data/reports/plugin_formatters/html/metaformatters/timeout_notice.rb +65 -0
  237. data/reports/plugin_formatters/html/metaformatters/uniformity.rb +71 -0
  238. data/reports/plugin_formatters/html/metamodules.rb +93 -0
  239. data/reports/plugin_formatters/html/waf_detector.rb +54 -0
  240. data/reports/plugin_formatters/stdout/content_types.rb +73 -0
  241. data/reports/plugin_formatters/stdout/cookie_collector.rb +61 -0
  242. data/reports/plugin_formatters/stdout/form_dicattack.rb +52 -0
  243. data/reports/plugin_formatters/stdout/healthmap.rb +72 -0
  244. data/reports/plugin_formatters/stdout/http_dicattack.rb +53 -0
  245. data/reports/plugin_formatters/stdout/metaformatters/timeout_notice.rb +55 -0
  246. data/reports/plugin_formatters/stdout/metaformatters/uniformity.rb +68 -0
  247. data/reports/plugin_formatters/stdout/metamodules.rb +89 -0
  248. data/reports/plugin_formatters/stdout/waf_detector.rb +48 -0
  249. data/reports/plugin_formatters/xml/content_types.rb +91 -0
  250. data/reports/plugin_formatters/xml/cookie_collector.rb +70 -0
  251. data/reports/plugin_formatters/xml/form_dicattack.rb +57 -0
  252. data/reports/plugin_formatters/xml/healthmap.rb +82 -0
  253. data/reports/plugin_formatters/xml/http_dicattack.rb +57 -0
  254. data/reports/plugin_formatters/xml/metaformatters/timeout_notice.rb +67 -0
  255. data/reports/plugin_formatters/xml/metaformatters/uniformity.rb +82 -0
  256. data/reports/plugin_formatters/xml/metamodules.rb +91 -0
  257. data/reports/plugin_formatters/xml/waf_detector.rb +58 -0
  258. data/reports/stdout.rb +182 -0
  259. data/reports/txt.rb +77 -0
  260. data/reports/xml.rb +231 -0
  261. data/reports/xml/buffer.rb +98 -0
  262. metadata +516 -0
@@ -0,0 +1,231 @@
1
+ =begin
2
+ Arachni
3
+ Copyright (c) 2010-2011 Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
4
+
5
+ This is free software; you can copy and distribute and modify
6
+ this program under the term of the GPL v2.0 License
7
+ (See LICENSE file for details)
8
+
9
+ =end
10
+
11
+ require 'base64'
12
+
13
+ module Arachni
14
+
15
+ require Arachni::Options.instance.dir['reports'] + '/xml/buffer.rb'
16
+
17
+ module Reports
18
+
19
+ #
20
+ # Creates an XML report of the audit.
21
+ #
22
+ # @author: Tasos "Zapotek" Laskos
23
+ # <tasos.laskos@gmail.com>
24
+ # <zapotek@segfault.gr>
25
+ # @version: 0.2
26
+ #
27
+ class XML < Arachni::Report::Base
28
+
29
+ include Arachni::Reports::Buffer
30
+
31
+ #
32
+ # @param [AuditStore] audit_store
33
+ # @param [Hash] options options passed to the report
34
+ #
35
+ def initialize( audit_store, options )
36
+ @audit_store = audit_store
37
+ @outfile = options['outfile']
38
+
39
+ # XML buffer
40
+ @__buffer = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
41
+ end
42
+
43
+ def run( )
44
+
45
+ print_line( )
46
+ print_status( 'Creating XML report...' )
47
+
48
+ start_tag( 'arachni_report' )
49
+
50
+ simple_tag( 'title', 'Web Application Security Report - Arachni Framework' )
51
+ simple_tag( 'generated_on', Time.now.to_s )
52
+ simple_tag( 'report_false_positives', REPORT_FP )
53
+
54
+ start_tag( 'system' )
55
+ simple_tag( 'version', @audit_store.version )
56
+ simple_tag( 'revision', @audit_store.revision )
57
+ simple_tag( 'start_datetime', @audit_store.start_datetime )
58
+ simple_tag( 'finish_datetime', @audit_store.finish_datetime )
59
+ simple_tag( 'delta_time', @audit_store.delta_time )
60
+
61
+ simple_tag( 'url', @audit_store.options['url'] )
62
+ simple_tag( 'user_agent', @audit_store.options['user_agent'] )
63
+
64
+ start_tag( 'audited_elements' )
65
+ simple_tag( 'element', 'links' ) if @audit_store.options['audit_links']
66
+ simple_tag( 'element', 'forms' ) if @audit_store.options['audit_forms']
67
+ simple_tag( 'element', 'cookies' ) if @audit_store.options['audit_cookies']
68
+ simple_tag( 'element', 'headers' ) if @audit_store.options['audit_headers']
69
+ end_tag( 'audited_elements' )
70
+
71
+ start_tag( 'modules')
72
+ @audit_store.options['mods'].each { |mod| add_mod( mod ) }
73
+ end_tag( 'modules' )
74
+
75
+ start_tag( 'filters' )
76
+ if @audit_store.options['exclude']
77
+ start_tag( "exclude" )
78
+ @audit_store.options['exclude'].each {
79
+ |ex|
80
+ simple_tag( 'regexp', ex )
81
+ }
82
+ end_tag( "exclude" )
83
+ end
84
+
85
+
86
+ if @audit_store.options['include']
87
+ start_tag( "include" )
88
+ @audit_store.options['include'].each {
89
+ |inc|
90
+ simple_tag( 'regexp', inc )
91
+ }
92
+ end_tag( "include" )
93
+ end
94
+
95
+
96
+ if @audit_store.options['redundant']
97
+ start_tag( "redundant" )
98
+ @audit_store.options['redundant'].each {
99
+ |red|
100
+ simple_tag( 'filter', red['regexp'] + ':' + red['count'].to_s )
101
+ }
102
+ end_tag( "redundant" )
103
+ end
104
+ end_tag( 'filters' )
105
+
106
+
107
+ start_tag( 'cookies' )
108
+ if( @audit_store.options['cookies'] )
109
+ @audit_store.options['cookies'].each {
110
+ |name, value|
111
+ add_cookie( name, value )
112
+ }
113
+ end
114
+ end_tag( 'cookies' )
115
+
116
+
117
+ end_tag( 'system' )
118
+
119
+
120
+ start_tag( 'issues' )
121
+ @audit_store.issues.each {
122
+ |issue|
123
+
124
+ start_tag( 'issue' )
125
+ simple_tag( 'name', issue.name )
126
+
127
+ simple_tag( 'url', issue.url )
128
+ simple_tag( 'element', issue.elem )
129
+ simple_tag( 'method', issue.method ) if issue.method
130
+ add_tags( issue.tags ) if issue.tags.is_a?( Array )
131
+ simple_tag( 'variable', issue.var ) if issue.var
132
+ simple_tag( 'description', issue.description )
133
+ simple_tag( 'manual_verification', issue.verification.to_s )
134
+
135
+
136
+ start_tag( 'references' )
137
+ issue.references.each{
138
+ |name, url|
139
+ add_reference( name, url )
140
+ }
141
+ end_tag( 'references' )
142
+
143
+
144
+ add_variations( issue )
145
+
146
+ end_tag( 'issue' )
147
+ }
148
+
149
+ end_tag( 'issues' )
150
+
151
+ start_tag( 'plugins' )
152
+
153
+ # get XML formatted plugin data and append them to the XML buffer
154
+ format_plugin_results( @audit_store.plugins ).values.compact.each { |xml| append( xml ) }
155
+
156
+ end_tag( 'plugins' )
157
+
158
+ end_tag( 'arachni_report' )
159
+
160
+ xml_write( )
161
+ print_status( 'Saved in \'' + @outfile + '\'.' )
162
+ end
163
+
164
+ def xml_write( )
165
+ file = File.new( @outfile, 'w' )
166
+ file.write( @__buffer )
167
+ file.close
168
+ end
169
+
170
+
171
+ def self.info
172
+ {
173
+ :name => 'XML report',
174
+ :description => %q{Exports a report as an XML file.},
175
+ :author => 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
176
+ :version => '0.2',
177
+ :options => [
178
+ Arachni::OptString.new( 'outfile', [ false, 'Where to save the report.',
179
+ Time.now.to_s + '.xml' ] ),
180
+ ]
181
+ }
182
+ end
183
+
184
+ def add_variations( issue )
185
+ start_tag( 'variations' )
186
+ issue.variations.each_with_index {
187
+ |var|
188
+ start_tag( 'variation' )
189
+
190
+ simple_tag( 'url', var['url'] )
191
+ simple_tag( 'id', URI.encode( var['id'] ) ) if var['id']
192
+ simple_tag( 'injected', URI.encode( var['injected'] ) ) if var['injected']
193
+ simple_tag( 'regexp', var['regexp'].to_s ) if var['regexp']
194
+ simple_tag( 'regexp_match', var['regexp_match'] ) if var['regexp_match']
195
+
196
+ start_tag( 'headers' )
197
+
198
+ if var['headers']['request'].is_a?( Hash )
199
+ add_headers( 'request', var['headers']['request'] )
200
+ end
201
+
202
+ response = {}
203
+ if var['headers']['response'].is_a?( Hash )
204
+ response = var['headers']['response']
205
+ else
206
+ var['headers']['response'].split( "\n" ).each {
207
+ |line|
208
+ field, value = line.split( ':', 2 )
209
+ next if !value
210
+ response[field] = value
211
+ }
212
+ end
213
+
214
+ if response.is_a?( Hash )
215
+ add_headers( 'response', response )
216
+ end
217
+
218
+ end_tag( 'headers' )
219
+
220
+ if var['response'] && !var['response'].empty?
221
+ simple_tag( 'html', Base64.encode64( var['response'] ) )
222
+ end
223
+
224
+ end_tag( 'variation' )
225
+ }
226
+ end_tag( 'variations' )
227
+ end
228
+
229
+ end
230
+ end
231
+ end
@@ -0,0 +1,98 @@
1
+ =begin
2
+ Arachni
3
+ Copyright (c) 2010-2011 Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
4
+
5
+ This is free software; you can copy and distribute and modify
6
+ this program under the term of the GPL v2.0 License
7
+ (See LICENSE file for details)
8
+
9
+ =end
10
+
11
+ require 'base64'
12
+
13
+ module Arachni
14
+ module Reports
15
+
16
+ module Buffer
17
+
18
+ require 'cgi'
19
+
20
+ def append( str )
21
+ __add( str, true )
22
+ end
23
+
24
+ def simple_tag( tag, text, no_escape = false )
25
+ start_tag( tag )
26
+ __add( text, no_escape )
27
+ end_tag( tag )
28
+ end
29
+
30
+ def start_tag( tag )
31
+ __buffer( "\n<#{tag}>" )
32
+ end
33
+
34
+ def end_tag( tag )
35
+ __buffer( "</#{tag}>\n" )
36
+ end
37
+
38
+ def add_cookie( name, value )
39
+ __buffer( "<cookie name=\"#{name}\" value=\"#{value}\" />" )
40
+ end
41
+
42
+ def add_credentials( username, password )
43
+ __buffer( "<credentials username=\"#{username}\" password=\"#{password}\" />" )
44
+ end
45
+
46
+ def add_reference( name, url )
47
+ __buffer( "<reference name=\"#{name}\" url=\"#{url}\" />" )
48
+ end
49
+
50
+ def add_param( name, value )
51
+ __buffer( "<param name=\"#{name}\" value=\"#{value}\" />" )
52
+ end
53
+
54
+ def add_mod( name )
55
+ __buffer( "<module name=\"#{name}\" />" )
56
+ end
57
+
58
+ def add_headers( type, headers )
59
+
60
+ start_tag( type )
61
+ headers.each_pair {
62
+ |name, value|
63
+ __buffer( "<field name=\"#{name}\" value=\"#{CGI.escapeHTML( value.strip )}\" />" )
64
+ }
65
+ end_tag( type )
66
+ end
67
+
68
+ def add_tags( tags )
69
+
70
+ start_tag( 'tags' )
71
+ tags.each {
72
+ |name|
73
+ __buffer( "<tag name=\"#{name}\" />" )
74
+ }
75
+ end_tag( 'tags' )
76
+ end
77
+
78
+
79
+ def buffer
80
+ return @__buffer
81
+ end
82
+
83
+ def __buffer( str = '' )
84
+ @__buffer ||= ''
85
+ @__buffer += str
86
+ end
87
+
88
+ def __add( text, no_escape = false )
89
+ if !no_escape
90
+ __buffer( CGI.escapeHTML( text ) )
91
+ else
92
+ __buffer( text )
93
+ end
94
+ end
95
+
96
+ end
97
+ end
98
+ end
metadata ADDED
@@ -0,0 +1,516 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: arachni
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 2
9
+ - 1
10
+ version: 0.2.2.1
11
+ platform: ruby
12
+ authors:
13
+ - Tasos Laskos
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-02-13 00:00:00 +00:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: arachni-typhoeus
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ segments:
30
+ - 0
31
+ - 2
32
+ - 0
33
+ - 1
34
+ version: 0.2.0.1
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: nokogiri
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ segments:
46
+ - 1
47
+ - 4
48
+ - 4
49
+ version: 1.4.4
50
+ type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: awesome_print
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ segments:
61
+ - 0
62
+ - 3
63
+ - 1
64
+ version: 0.3.1
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: robots
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ segments:
76
+ - 0
77
+ - 10
78
+ - 0
79
+ version: 0.10.0
80
+ type: :runtime
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
83
+ name: sys-proctable
84
+ prerelease: false
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ segments:
91
+ - 0
92
+ - 8
93
+ - 1
94
+ version: 0.8.1
95
+ type: :runtime
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ name: terminal-table
99
+ prerelease: false
100
+ requirement: &id006 !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ~>
104
+ - !ruby/object:Gem::Version
105
+ segments:
106
+ - 1
107
+ - 4
108
+ - 2
109
+ version: 1.4.2
110
+ type: :runtime
111
+ version_requirements: *id006
112
+ - !ruby/object:Gem::Dependency
113
+ name: sinatra
114
+ prerelease: false
115
+ requirement: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ segments:
121
+ - 0
122
+ - 9
123
+ - 2
124
+ version: 0.9.2
125
+ type: :runtime
126
+ version_requirements: *id007
127
+ - !ruby/object:Gem::Dependency
128
+ name: datamapper
129
+ prerelease: false
130
+ requirement: &id008 !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ segments:
136
+ - 1
137
+ - 0
138
+ - 2
139
+ version: 1.0.2
140
+ type: :runtime
141
+ version_requirements: *id008
142
+ - !ruby/object:Gem::Dependency
143
+ name: rack_csrf
144
+ prerelease: false
145
+ requirement: &id009 !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ segments:
151
+ - 2
152
+ - 1
153
+ - 0
154
+ version: 2.1.0
155
+ type: :runtime
156
+ version_requirements: *id009
157
+ - !ruby/object:Gem::Dependency
158
+ name: rack-flash
159
+ prerelease: false
160
+ requirement: &id010 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ segments:
166
+ - 0
167
+ - 1
168
+ - 1
169
+ version: 0.1.1
170
+ type: :runtime
171
+ version_requirements: *id010
172
+ - !ruby/object:Gem::Dependency
173
+ name: json
174
+ prerelease: false
175
+ requirement: &id011 !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ~>
179
+ - !ruby/object:Gem::Version
180
+ segments:
181
+ - 1
182
+ - 4
183
+ - 6
184
+ version: 1.4.6
185
+ type: :runtime
186
+ version_requirements: *id011
187
+ - !ruby/object:Gem::Dependency
188
+ name: dm-sqlite-adapter
189
+ prerelease: false
190
+ requirement: &id012 !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ~>
194
+ - !ruby/object:Gem::Version
195
+ segments:
196
+ - 1
197
+ - 0
198
+ - 2
199
+ version: 1.0.2
200
+ type: :runtime
201
+ version_requirements: *id012
202
+ description: " Arachni is a feature-full, modular, high-performance Ruby framework aimed towards\n helping penetration testers and administrators evaluate the security of web applications.\n\n Arachni is smart, it trains itself by learning from the HTTP responses it receives during the audit process.\n Unlike other scanners, Arachni takes into account the dynamic nature of web applications and can detect changes caused while travelling\n through the paths of a web application's cyclomatic complexity.\n This way attack/input vectors that would otherwise be undetectable by non-humans are seamlessly handled by Arachni.\n\n Finally, Arachni yields great performance due to its asynchronous HTTP model (courtesy of Typhoeus).\n Thus, you'll only be limited by the responsiveness of the server under audit and your available bandwidth.\n\n Note: Despite the fact that Arachni is mostly targeted towards web application security,\n it can easily be used for general purpose scraping, data-mining, etc with the addition of custom modules.\n"
203
+ email: tasos.laskos@gmail.com
204
+ executables:
205
+ - arachni
206
+ - arachni_xmlrpcd_monitor
207
+ - arachni_xmlrpcd
208
+ - arachni_xmlrpc
209
+ - arachni_web
210
+ extensions: []
211
+
212
+ extra_rdoc_files:
213
+ - README.md
214
+ - ACKNOWLEDGMENTS.md
215
+ - LICENSE.md
216
+ - AUTHORS.md
217
+ - CHANGELOG.md
218
+ - CONTRIBUTORS.md
219
+ - EXPLOITATION.md
220
+ - HACKING.md
221
+ files:
222
+ - README.md
223
+ - ACKNOWLEDGMENTS.md
224
+ - Rakefile
225
+ - getoptslong.rb
226
+ - LICENSE.md
227
+ - AUTHORS.md
228
+ - CHANGELOG.md
229
+ - CONTRIBUTORS.md
230
+ - EXPLOITATION.md
231
+ - HACKING.md
232
+ - lib/module.rb
233
+ - lib/module/trainer.rb
234
+ - lib/module/output.rb
235
+ - lib/module/utilities.rb
236
+ - lib/module/auditor.rb
237
+ - lib/module/key_filler.rb
238
+ - lib/module/element_db.rb
239
+ - lib/module/base.rb
240
+ - lib/module/manager.rb
241
+ - lib/parser.rb
242
+ - lib/component_options.rb
243
+ - lib/anemone/storage.rb
244
+ - lib/anemone/page.rb
245
+ - lib/anemone/cookie_store.rb
246
+ - lib/anemone/page_store.rb
247
+ - lib/anemone/tentacle.rb
248
+ - lib/anemone/storage/pstore.rb
249
+ - lib/anemone/storage/mongodb.rb
250
+ - lib/anemone/storage/redis.rb
251
+ - lib/anemone/storage/exceptions.rb
252
+ - lib/anemone/storage/base.rb
253
+ - lib/anemone/storage/tokyo_cabinet.rb
254
+ - lib/anemone/http.rb
255
+ - lib/anemone/core.rb
256
+ - lib/anemone/exceptions.rb
257
+ - lib/report.rb
258
+ - lib/options.rb
259
+ - lib/issue.rb
260
+ - lib/component_manager.rb
261
+ - lib/plugin/base.rb
262
+ - lib/plugin/manager.rb
263
+ - lib/arachni.rb
264
+ - lib/framework.rb
265
+ - lib/http.rb
266
+ - lib/spider.rb
267
+ - lib/audit_store.rb
268
+ - lib/rpc/xml/server/module/manager.rb
269
+ - lib/rpc/xml/server/output.rb
270
+ - lib/rpc/xml/server/options.rb
271
+ - lib/rpc/xml/server/plugin/manager.rb
272
+ - lib/rpc/xml/server/framework.rb
273
+ - lib/rpc/xml/server/dispatcher.rb
274
+ - lib/rpc/xml/server/instance.rb
275
+ - lib/rpc/xml/server/base.rb
276
+ - lib/rpc/xml/client/dispatcher.rb
277
+ - lib/rpc/xml/client/instance.rb
278
+ - lib/rpc/xml/client/base.rb
279
+ - lib/ruby/xmlrpc/server.rb
280
+ - lib/ruby/string.rb
281
+ - lib/ruby/object.rb
282
+ - lib/anemone.rb
283
+ - lib/exceptions.rb
284
+ - lib/ui/xmlrpc/xmlrpc.rb
285
+ - lib/ui/xmlrpc/dispatcher_monitor.rb
286
+ - lib/ui/cli/output.rb
287
+ - lib/ui/cli/cli.rb
288
+ - lib/ui/web/server/public/sidebar-top.jpg
289
+ - lib/ui/web/server/public/style.css
290
+ - lib/ui/web/server/public/bodybg.png
291
+ - lib/ui/web/server/public/nav-selected-right.jpg
292
+ - lib/ui/web/server/public/logo.png
293
+ - lib/ui/web/server/public/favicon.ico
294
+ - lib/ui/web/server/public/nav-right.jpg
295
+ - lib/ui/web/server/public/css/smoothness/jquery-ui-1.8.9.custom.css
296
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
297
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
298
+ - lib/ui/web/server/public/css/smoothness/images/ui-icons_2e83ff_256x240.png
299
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
300
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
301
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
302
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
303
+ - lib/ui/web/server/public/css/smoothness/images/ui-icons_888888_256x240.png
304
+ - lib/ui/web/server/public/css/smoothness/images/ui-icons_222222_256x240.png
305
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
306
+ - lib/ui/web/server/public/css/smoothness/images/pbar-ani.gif
307
+ - lib/ui/web/server/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png
308
+ - lib/ui/web/server/public/css/smoothness/images/ui-icons_454545_256x240.png
309
+ - lib/ui/web/server/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
310
+ - lib/ui/web/server/public/nav-left.jpg
311
+ - lib/ui/web/server/public/sidebar-bottom.jpg
312
+ - lib/ui/web/server/public/nav-selected-left.jpg
313
+ - lib/ui/web/server/public/js/jquery-1.4.4.min.js
314
+ - lib/ui/web/server/public/js/jquery-ui-1.8.9.custom.min.js
315
+ - lib/ui/web/server/public/spider.png
316
+ - lib/ui/web/server/public/banner.png
317
+ - lib/ui/web/server/public/bodybg-small.png
318
+ - lib/ui/web/server/public/reports/placeholder
319
+ - lib/ui/web/server/public/icons/status.png
320
+ - lib/ui/web/server/public/icons/info.png
321
+ - lib/ui/web/server/public/icons/error.png
322
+ - lib/ui/web/server/public/icons/ok.png
323
+ - lib/ui/web/server/public/sidebar-h4.jpg
324
+ - lib/ui/web/server/public/footer.jpg
325
+ - lib/ui/web/server/tmp/placeholder
326
+ - lib/ui/web/server/db/placeholder
327
+ - lib/ui/web/server/views/dispatcher_error.erb
328
+ - lib/ui/web/server/views/instance.erb
329
+ - lib/ui/web/server/views/log.erb
330
+ - lib/ui/web/server/views/dispatcher.erb
331
+ - lib/ui/web/server/views/flash.erb
332
+ - lib/ui/web/server/views/report_formats.erb
333
+ - lib/ui/web/server/views/modules.erb
334
+ - lib/ui/web/server/views/plugins.erb
335
+ - lib/ui/web/server/views/layout.erb
336
+ - lib/ui/web/server/views/output_results.erb
337
+ - lib/ui/web/server/views/options.erb
338
+ - lib/ui/web/server/views/error.erb
339
+ - lib/ui/web/server/views/home.erb
340
+ - lib/ui/web/server/views/welcome.erb
341
+ - lib/ui/web/server/views/reports.erb
342
+ - lib/ui/web/server/views/settings.erb
343
+ - lib/ui/web/report_manager.rb
344
+ - lib/ui/web/server.rb
345
+ - lib/ui/web/log.rb
346
+ - lib/ui/web/output_stream.rb
347
+ - lib/parser/auditable.rb
348
+ - lib/parser/parser.rb
349
+ - lib/parser/page.rb
350
+ - lib/parser/elements.rb
351
+ - lib/report/base.rb
352
+ - lib/report/manager.rb
353
+ - lib/plugin.rb
354
+ - lib/typhoeus/response.rb
355
+ - lib/typhoeus/request.rb
356
+ - lib/ruby.rb
357
+ - conf/webui.yaml
358
+ - conf/README.webui.yaml.txt
359
+ - metamodules/timeout_notice.rb
360
+ - metamodules/autothrottle.rb
361
+ - metamodules/uniformity.rb
362
+ - external/metasploit/modules/exploits/unix/webapp/arachni_php_include.rb
363
+ - external/metasploit/modules/exploits/unix/webapp/arachni_path_traversal.rb
364
+ - external/metasploit/modules/exploits/unix/webapp/arachni_exec.rb
365
+ - external/metasploit/modules/exploits/unix/webapp/arachni_php_eval.rb
366
+ - external/metasploit/modules/exploits/unix/webapp/arachni_sqlmap.rb
367
+ - external/metasploit/LICENSE
368
+ - external/metasploit/plugins/arachni.rb
369
+ - logs/placeholder
370
+ - modules/recon/backup_files/extensions.txt
371
+ - modules/recon/interesting_responses.rb
372
+ - modules/recon/common_files.rb
373
+ - modules/recon/xst.rb
374
+ - modules/recon/http_put.rb
375
+ - modules/recon/webdav.rb
376
+ - modules/recon/directory_listing.rb
377
+ - modules/recon/backdoors/filenames.txt
378
+ - modules/recon/allowed_methods.rb
379
+ - modules/recon/common_directories/directories.txt
380
+ - modules/recon/htaccess_limit.rb
381
+ - modules/recon/grep/ssn.rb
382
+ - modules/recon/grep/private_ip.rb
383
+ - modules/recon/grep/emails.rb
384
+ - modules/recon/grep/credit_card.rb
385
+ - modules/recon/grep/cvs_svn_users.rb
386
+ - modules/recon/grep/captcha.rb
387
+ - modules/recon/grep/html_objects.rb
388
+ - modules/recon/unencrypted_password_forms.rb
389
+ - modules/recon/backdoors.rb
390
+ - modules/recon/backup_files.rb
391
+ - modules/recon/common_files/filenames.txt
392
+ - modules/recon/common_directories.rb
393
+ - modules/audit/trainer.rb
394
+ - modules/audit/code_injection_timing/payloads.txt
395
+ - modules/audit/os_cmd_injection.rb
396
+ - modules/audit/sqli_blind_timing/payloads.txt
397
+ - modules/audit/sqli.rb
398
+ - modules/audit/xss_script_tag.rb
399
+ - modules/audit/sqli_blind_rdiff.rb
400
+ - modules/audit/path_traversal.rb
401
+ - modules/audit/xss_event.rb
402
+ - modules/audit/xss_uri.rb
403
+ - modules/audit/os_cmd_injection/payloads.txt
404
+ - modules/audit/sqli_blind_timing.rb
405
+ - modules/audit/code_injection.rb
406
+ - modules/audit/rfi.rb
407
+ - modules/audit/xpath/errors.txt
408
+ - modules/audit/xss_tag.rb
409
+ - modules/audit/response_splitting.rb
410
+ - modules/audit/csrf.rb
411
+ - modules/audit/os_cmd_injection_timing.rb
412
+ - modules/audit/ldapi.rb
413
+ - modules/audit/ldapi/errors.txt
414
+ - modules/audit/code_injection_timing.rb
415
+ - modules/audit/os_cmd_injection_timing/payloads.txt
416
+ - modules/audit/sqli/regexp_ids.txt
417
+ - modules/audit/xss_path.rb
418
+ - modules/audit/xpath.rb
419
+ - modules/audit/unvalidated_redirect.rb
420
+ - modules/audit/xss.rb
421
+ - path_extractors/scripts.rb
422
+ - path_extractors/links.rb
423
+ - path_extractors/frames.rb
424
+ - path_extractors/generic.rb
425
+ - path_extractors/anchors.rb
426
+ - path_extractors/meta_refresh.rb
427
+ - path_extractors/forms.rb
428
+ - path_extractors/sitemap.rb
429
+ - plugins/proxy/server.rb
430
+ - plugins/metamodules.rb
431
+ - plugins/healthmap.rb
432
+ - plugins/cookie_collector.rb
433
+ - plugins/http_dicattack.rb
434
+ - plugins/content_types.rb
435
+ - plugins/waf_detector.rb
436
+ - plugins/form_dicattack.rb
437
+ - plugins/autologin.rb
438
+ - plugins/proxy.rb
439
+ - profiles/comprehensive.afp
440
+ - profiles/full.afp
441
+ - reports/html.rb
442
+ - reports/plugin_formatters/stdout/metamodules.rb
443
+ - reports/plugin_formatters/stdout/healthmap.rb
444
+ - reports/plugin_formatters/stdout/cookie_collector.rb
445
+ - reports/plugin_formatters/stdout/http_dicattack.rb
446
+ - reports/plugin_formatters/stdout/content_types.rb
447
+ - reports/plugin_formatters/stdout/waf_detector.rb
448
+ - reports/plugin_formatters/stdout/form_dicattack.rb
449
+ - reports/plugin_formatters/stdout/metaformatters/timeout_notice.rb
450
+ - reports/plugin_formatters/stdout/metaformatters/uniformity.rb
451
+ - reports/plugin_formatters/xml/metamodules.rb
452
+ - reports/plugin_formatters/xml/healthmap.rb
453
+ - reports/plugin_formatters/xml/cookie_collector.rb
454
+ - reports/plugin_formatters/xml/http_dicattack.rb
455
+ - reports/plugin_formatters/xml/content_types.rb
456
+ - reports/plugin_formatters/xml/waf_detector.rb
457
+ - reports/plugin_formatters/xml/form_dicattack.rb
458
+ - reports/plugin_formatters/xml/metaformatters/timeout_notice.rb
459
+ - reports/plugin_formatters/xml/metaformatters/uniformity.rb
460
+ - reports/plugin_formatters/html/metamodules.rb
461
+ - reports/plugin_formatters/html/healthmap.rb
462
+ - reports/plugin_formatters/html/cookie_collector.rb
463
+ - reports/plugin_formatters/html/http_dicattack.rb
464
+ - reports/plugin_formatters/html/content_types.rb
465
+ - reports/plugin_formatters/html/waf_detector.rb
466
+ - reports/plugin_formatters/html/form_dicattack.rb
467
+ - reports/plugin_formatters/html/metaformatters/timeout_notice.rb
468
+ - reports/plugin_formatters/html/metaformatters/uniformity.rb
469
+ - reports/metareport/arachni_metareport.rb
470
+ - reports/txt.rb
471
+ - reports/xml/buffer.rb
472
+ - reports/metareport.rb
473
+ - reports/stdout.rb
474
+ - reports/html/default.erb
475
+ - reports/xml.rb
476
+ - reports/afr.rb
477
+ - reports/ap.rb
478
+ - bin/arachni
479
+ - bin/arachni_xmlrpcd_monitor
480
+ - bin/arachni_xmlrpcd
481
+ - bin/arachni_xmlrpc
482
+ - bin/arachni_web
483
+ has_rdoc: true
484
+ homepage: https://github.com/Zapotek/arachni
485
+ licenses: []
486
+
487
+ post_install_message:
488
+ rdoc_options:
489
+ - --charset=UTF-8
490
+ require_paths:
491
+ - lib
492
+ required_ruby_version: !ruby/object:Gem::Requirement
493
+ none: false
494
+ requirements:
495
+ - - ">="
496
+ - !ruby/object:Gem::Version
497
+ segments:
498
+ - 0
499
+ version: "0"
500
+ required_rubygems_version: !ruby/object:Gem::Requirement
501
+ none: false
502
+ requirements:
503
+ - - ">="
504
+ - !ruby/object:Gem::Version
505
+ segments:
506
+ - 0
507
+ version: "0"
508
+ requirements: []
509
+
510
+ rubyforge_project:
511
+ rubygems_version: 1.3.7
512
+ signing_key:
513
+ specification_version: 3
514
+ summary: Arachni is a feature-full, modular, high-performance Ruby framework aimed towards helping penetration testers and administrators evaluate the security of web applications.
515
+ test_files: []
516
+