arachni 1.3.2 → 1.4

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.
Files changed (727) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +108 -0
  3. data/Gemfile +2 -6
  4. data/LICENSE.md +1 -1
  5. data/README.md +34 -16
  6. data/Rakefile +1 -1
  7. data/arachni.gemspec +28 -20
  8. data/bin/arachni +1 -1
  9. data/bin/arachni_console +1 -1
  10. data/bin/arachni_multi +1 -1
  11. data/bin/arachni_reporter +1 -1
  12. data/bin/arachni_rest_server +13 -0
  13. data/bin/arachni_restore +1 -1
  14. data/bin/arachni_rpc +1 -1
  15. data/bin/arachni_rpcd +1 -1
  16. data/bin/arachni_rpcd_monitor +1 -1
  17. data/bin/arachni_script +1 -1
  18. data/components/checks/active/code_injection.rb +8 -10
  19. data/components/checks/active/code_injection_php_input_wrapper.rb +5 -6
  20. data/components/checks/active/code_injection_timing.rb +1 -1
  21. data/components/checks/active/csrf.rb +1 -1
  22. data/components/checks/active/file_inclusion.rb +20 -26
  23. data/components/checks/active/ldap_injection.rb +4 -5
  24. data/components/checks/active/no_sql_injection.rb +11 -20
  25. data/components/checks/active/no_sql_injection/substrings/mongodb +1 -0
  26. data/components/checks/active/no_sql_injection_differential.rb +3 -4
  27. data/components/checks/active/os_cmd_injection.rb +5 -9
  28. data/components/checks/active/os_cmd_injection_timing.rb +1 -1
  29. data/components/checks/active/path_traversal.rb +4 -17
  30. data/components/checks/active/response_splitting.rb +8 -2
  31. data/components/checks/active/rfi.rb +4 -5
  32. data/components/checks/active/session_fixation.rb +9 -3
  33. data/components/checks/active/source_code_disclosure.rb +5 -20
  34. data/components/checks/active/sql_injection.rb +30 -18
  35. data/components/checks/active/sql_injection/{regexp_ignore.txt → ignore_substrings} +0 -0
  36. data/components/checks/active/sql_injection/regexps/db2.yaml +2 -0
  37. data/components/checks/active/sql_injection/regexps/frontbase.yaml +1 -0
  38. data/components/checks/active/sql_injection/regexps/informix.yaml +1 -0
  39. data/components/checks/active/sql_injection/regexps/ingres.yaml +2 -0
  40. data/components/checks/active/sql_injection/regexps/maxdb.yaml +2 -0
  41. data/components/checks/active/sql_injection/regexps/mssql.yaml +8 -0
  42. data/components/checks/active/sql_injection/regexps/mysql.yaml +4 -0
  43. data/components/checks/active/sql_injection/regexps/oracle.yaml +4 -0
  44. data/components/checks/active/sql_injection/regexps/pgsql.yaml +3 -0
  45. data/components/checks/active/sql_injection/regexps/sqlite.yaml +2 -0
  46. data/components/checks/active/sql_injection/regexps/sybase.yaml +2 -0
  47. data/components/checks/active/sql_injection/substrings/access +3 -0
  48. data/components/checks/active/sql_injection/substrings/db2 +2 -0
  49. data/components/checks/active/sql_injection/{patterns → substrings}/emc +1 -1
  50. data/components/checks/active/sql_injection/{patterns → substrings}/firebird +0 -1
  51. data/components/checks/active/sql_injection/substrings/hsqldb +1 -0
  52. data/components/checks/active/sql_injection/{patterns → substrings}/informix +1 -2
  53. data/components/checks/active/sql_injection/substrings/ingres +1 -0
  54. data/components/checks/active/sql_injection/{patterns → substrings}/interbase +0 -0
  55. data/components/checks/active/sql_injection/substrings/mssql +17 -0
  56. data/components/checks/active/sql_injection/{patterns → substrings}/mysql +3 -6
  57. data/components/checks/active/sql_injection/substrings/oracle +2 -0
  58. data/components/checks/active/sql_injection/{patterns → substrings}/pgsql +3 -6
  59. data/components/checks/active/sql_injection/substrings/sqlite +3 -0
  60. data/components/checks/active/sql_injection/substrings/sybase +1 -0
  61. data/components/checks/active/sql_injection_differential.rb +5 -7
  62. data/components/checks/active/sql_injection_differential/payloads.txt +1 -1
  63. data/components/checks/active/sql_injection_timing.rb +1 -1
  64. data/components/checks/active/trainer.rb +5 -4
  65. data/components/checks/active/unvalidated_redirect.rb +1 -1
  66. data/components/checks/active/unvalidated_redirect_dom.rb +1 -1
  67. data/components/checks/active/xpath_injection.rb +3 -4
  68. data/components/checks/active/xss.rb +33 -12
  69. data/components/checks/active/xss_dom.rb +7 -4
  70. data/components/checks/active/xss_dom_script_context.rb +1 -1
  71. data/components/checks/active/xss_event.rb +43 -20
  72. data/components/checks/active/xss_path.rb +5 -4
  73. data/components/checks/active/xss_script_context.rb +41 -11
  74. data/components/checks/active/xss_tag.rb +14 -15
  75. data/components/checks/active/xxe.rb +5 -16
  76. data/components/checks/passive/allowed_methods.rb +1 -1
  77. data/components/checks/passive/backdoors.rb +4 -2
  78. data/components/checks/passive/backup_directories.rb +4 -2
  79. data/components/checks/passive/backup_files.rb +4 -2
  80. data/components/checks/passive/common_admin_interfaces.rb +4 -3
  81. data/components/checks/passive/common_directories.rb +3 -1
  82. data/components/checks/passive/common_files.rb +3 -1
  83. data/components/checks/passive/directory_listing.rb +4 -4
  84. data/components/checks/passive/grep/captcha.rb +1 -1
  85. data/components/checks/passive/grep/cookie_set_for_parent_domain.rb +1 -1
  86. data/components/checks/passive/grep/credit_card.rb +5 -7
  87. data/components/checks/passive/grep/cvs_svn_users.rb +1 -1
  88. data/components/checks/passive/grep/emails.rb +135 -8
  89. data/components/checks/passive/grep/form_upload.rb +1 -1
  90. data/components/checks/passive/grep/hsts.rb +4 -3
  91. data/components/checks/passive/grep/html_objects.rb +1 -1
  92. data/components/checks/passive/grep/http_only_cookies.rb +5 -3
  93. data/components/checks/passive/grep/insecure_cookies.rb +5 -3
  94. data/components/checks/passive/grep/insecure_cors_policy.rb +1 -1
  95. data/components/checks/passive/grep/mixed_resource.rb +1 -1
  96. data/components/checks/passive/grep/password_autocomplete.rb +1 -1
  97. data/components/checks/passive/grep/private_ip.rb +1 -1
  98. data/components/checks/passive/grep/ssn.rb +6 -3
  99. data/components/checks/passive/grep/unencrypted_password_forms.rb +1 -1
  100. data/components/checks/passive/grep/x_frame_options.rb +4 -3
  101. data/components/checks/passive/htaccess_limit.rb +1 -1
  102. data/components/checks/passive/http_put.rb +1 -1
  103. data/components/checks/passive/insecure_client_access_policy.rb +2 -2
  104. data/components/checks/passive/insecure_cross_domain_policy_access.rb +2 -2
  105. data/components/checks/passive/insecure_cross_domain_policy_headers.rb +2 -2
  106. data/components/checks/passive/interesting_responses.rb +1 -1
  107. data/components/checks/passive/localstart_asp.rb +1 -1
  108. data/components/checks/passive/origin_spoof_access_restriction_bypass.rb +1 -1
  109. data/components/checks/passive/webdav.rb +1 -1
  110. data/components/checks/passive/xst.rb +1 -1
  111. data/components/fingerprinters/frameworks/aspx_mvc.rb +1 -1
  112. data/components/fingerprinters/frameworks/cakephp.rb +1 -1
  113. data/components/fingerprinters/frameworks/cherrypy.rb +1 -1
  114. data/components/fingerprinters/frameworks/django.rb +1 -1
  115. data/components/fingerprinters/frameworks/jsf.rb +1 -1
  116. data/components/fingerprinters/frameworks/nette.rb +1 -1
  117. data/components/fingerprinters/frameworks/rack.rb +1 -1
  118. data/components/fingerprinters/frameworks/rails.rb +1 -1
  119. data/components/fingerprinters/frameworks/symfony.rb +1 -1
  120. data/components/fingerprinters/languages/asp.rb +1 -1
  121. data/components/fingerprinters/languages/aspx.rb +1 -1
  122. data/components/fingerprinters/languages/java.rb +1 -1
  123. data/components/fingerprinters/languages/php.rb +1 -1
  124. data/components/fingerprinters/languages/python.rb +1 -1
  125. data/components/fingerprinters/languages/ruby.rb +1 -1
  126. data/components/fingerprinters/os/bsd.rb +1 -1
  127. data/components/fingerprinters/os/linux.rb +1 -1
  128. data/components/fingerprinters/os/solaris.rb +1 -1
  129. data/components/fingerprinters/os/unix.rb +1 -1
  130. data/components/fingerprinters/os/windows.rb +1 -1
  131. data/components/fingerprinters/servers/apache.rb +1 -1
  132. data/components/fingerprinters/servers/gunicorn.rb +1 -1
  133. data/components/fingerprinters/servers/iis.rb +1 -1
  134. data/components/fingerprinters/servers/jetty.rb +1 -1
  135. data/components/fingerprinters/servers/nginx.rb +1 -1
  136. data/components/fingerprinters/servers/tomcat.rb +1 -1
  137. data/components/path_extractors/anchors.rb +1 -1
  138. data/components/path_extractors/areas.rb +1 -1
  139. data/components/path_extractors/comments.rb +1 -1
  140. data/components/path_extractors/data_url.rb +1 -1
  141. data/components/path_extractors/forms.rb +1 -1
  142. data/components/path_extractors/frames.rb +1 -1
  143. data/components/path_extractors/generic.rb +1 -1
  144. data/components/path_extractors/links.rb +1 -1
  145. data/components/path_extractors/meta_refresh.rb +3 -3
  146. data/components/path_extractors/scripts.rb +1 -1
  147. data/components/plugins/autologin.rb +16 -24
  148. data/components/plugins/beep_notify.rb +1 -1
  149. data/components/plugins/content_types.rb +1 -1
  150. data/components/plugins/cookie_collector.rb +1 -1
  151. data/components/plugins/defaults/autothrottle.rb +1 -1
  152. data/components/plugins/defaults/healthmap.rb +1 -1
  153. data/components/plugins/defaults/meta/remedies/discovery.rb +10 -9
  154. data/components/plugins/defaults/meta/remedies/timing_attacks.rb +1 -1
  155. data/components/plugins/defaults/meta/uniformity.rb +1 -1
  156. data/components/plugins/email_notify.rb +3 -5
  157. data/components/plugins/exec.rb +1 -1
  158. data/components/plugins/form_dicattack.rb +1 -1
  159. data/components/plugins/headers_collector.rb +1 -1
  160. data/components/plugins/http_dicattack.rb +1 -1
  161. data/components/plugins/login_script.rb +47 -22
  162. data/components/plugins/metrics.rb +1 -1
  163. data/components/plugins/proxy.rb +69 -44
  164. data/components/plugins/proxy/panel/help.html.erb +1 -18
  165. data/components/plugins/proxy/panel/inspect.html.erb +4 -3
  166. data/components/plugins/proxy/panel/page_accordion.html.erb +78 -43
  167. data/components/plugins/proxy/panel/panel.html.erb +2 -7
  168. data/components/plugins/proxy/template_scope.rb +1 -1
  169. data/components/plugins/restrict_to_dom_state.rb +3 -15
  170. data/components/plugins/script.rb +1 -1
  171. data/components/plugins/uncommon_headers.rb +1 -1
  172. data/components/plugins/vector_collector.rb +1 -1
  173. data/components/plugins/vector_feed.rb +3 -11
  174. data/components/plugins/waf_detector.rb +1 -1
  175. data/components/reporters/ap.rb +1 -1
  176. data/components/reporters/html.rb +2 -2
  177. data/components/reporters/json.rb +1 -1
  178. data/components/reporters/marshal.rb +1 -1
  179. data/components/reporters/plugin_formatters/html/autologin.rb +1 -1
  180. data/components/reporters/plugin_formatters/html/content_types.rb +1 -1
  181. data/components/reporters/plugin_formatters/html/cookie_collector.rb +1 -1
  182. data/components/reporters/plugin_formatters/html/exec.rb +1 -1
  183. data/components/reporters/plugin_formatters/html/form_dicattack.rb +1 -1
  184. data/components/reporters/plugin_formatters/html/healthmap.rb +1 -1
  185. data/components/reporters/plugin_formatters/html/http_dicattack.rb +1 -1
  186. data/components/reporters/plugin_formatters/html/login_script.rb +1 -1
  187. data/components/reporters/plugin_formatters/html/metrics.rb +1 -1
  188. data/components/reporters/plugin_formatters/html/uncommon_headers.rb +1 -1
  189. data/components/reporters/plugin_formatters/html/uniformity.rb +1 -1
  190. data/components/reporters/plugin_formatters/html/vector_collector.rb +1 -1
  191. data/components/reporters/plugin_formatters/html/waf_detector.rb +1 -1
  192. data/components/reporters/plugin_formatters/stdout/autologin.rb +1 -1
  193. data/components/reporters/plugin_formatters/stdout/content_types.rb +1 -1
  194. data/components/reporters/plugin_formatters/stdout/cookie_collector.rb +1 -1
  195. data/components/reporters/plugin_formatters/stdout/exec.rb +1 -1
  196. data/components/reporters/plugin_formatters/stdout/form_dicattack.rb +1 -1
  197. data/components/reporters/plugin_formatters/stdout/healthmap.rb +1 -1
  198. data/components/reporters/plugin_formatters/stdout/http_dicattack.rb +1 -1
  199. data/components/reporters/plugin_formatters/stdout/login_script.rb +1 -1
  200. data/components/reporters/plugin_formatters/stdout/metrics.rb +1 -1
  201. data/components/reporters/plugin_formatters/stdout/uncommon_headers.rb +1 -1
  202. data/components/reporters/plugin_formatters/stdout/uniformity.rb +1 -1
  203. data/components/reporters/plugin_formatters/stdout/vector_collector.rb +1 -1
  204. data/components/reporters/plugin_formatters/stdout/waf_detector.rb +1 -1
  205. data/components/reporters/plugin_formatters/xml/autologin.rb +1 -1
  206. data/components/reporters/plugin_formatters/xml/content_types.rb +1 -1
  207. data/components/reporters/plugin_formatters/xml/cookie_collector.rb +1 -1
  208. data/components/reporters/plugin_formatters/xml/exec.rb +1 -1
  209. data/components/reporters/plugin_formatters/xml/form_dicattack.rb +1 -1
  210. data/components/reporters/plugin_formatters/xml/healthmap.rb +1 -1
  211. data/components/reporters/plugin_formatters/xml/http_dicattack.rb +1 -1
  212. data/components/reporters/plugin_formatters/xml/login_script.rb +1 -1
  213. data/components/reporters/plugin_formatters/xml/metrics.rb +1 -1
  214. data/components/reporters/plugin_formatters/xml/uncommon_headers.rb +1 -1
  215. data/components/reporters/plugin_formatters/xml/uniformity.rb +1 -1
  216. data/components/reporters/plugin_formatters/xml/vector_collector.rb +1 -1
  217. data/components/reporters/plugin_formatters/xml/waf_detector.rb +1 -1
  218. data/components/reporters/stdout.rb +1 -1
  219. data/components/reporters/txt.rb +1 -1
  220. data/components/reporters/xml.rb +29 -4
  221. data/components/reporters/yaml.rb +1 -1
  222. data/lib/arachni.rb +48 -3
  223. data/lib/arachni/banner.rb +1 -1
  224. data/lib/arachni/browser.rb +601 -358
  225. data/lib/arachni/browser/element_locator.rb +25 -6
  226. data/lib/arachni/browser/javascript.rb +103 -35
  227. data/lib/arachni/browser/javascript/dom_monitor.rb +1 -1
  228. data/lib/arachni/browser/javascript/proxy.rb +28 -16
  229. data/lib/arachni/browser/javascript/proxy/stub.rb +1 -1
  230. data/lib/arachni/browser/javascript/scripts/dom_monitor.js +138 -67
  231. data/lib/arachni/browser/javascript/scripts/polyfills.js +28 -0
  232. data/lib/arachni/browser/javascript/scripts/taint_tracer.js +27 -6
  233. data/lib/arachni/browser/javascript/taint_tracer.rb +1 -1
  234. data/lib/arachni/browser/javascript/taint_tracer/frame.rb +1 -1
  235. data/lib/arachni/browser/javascript/taint_tracer/frame/called_function.rb +1 -1
  236. data/lib/arachni/browser/javascript/taint_tracer/sink/base.rb +1 -1
  237. data/lib/arachni/browser/javascript/taint_tracer/sink/data_flow.rb +1 -1
  238. data/lib/arachni/browser/javascript/taint_tracer/sink/execution_flow.rb +1 -1
  239. data/lib/arachni/browser_cluster.rb +10 -14
  240. data/lib/arachni/browser_cluster/job.rb +1 -1
  241. data/lib/arachni/browser_cluster/job/result.rb +1 -1
  242. data/lib/arachni/browser_cluster/jobs/browser_provider.rb +1 -1
  243. data/lib/arachni/browser_cluster/jobs/{resource_exploration.rb → dom_exploration.rb} +5 -5
  244. data/lib/arachni/browser_cluster/jobs/{resource_exploration → dom_exploration}/event_trigger.rb +7 -4
  245. data/lib/arachni/browser_cluster/jobs/{resource_exploration → dom_exploration}/event_trigger/result.rb +3 -3
  246. data/lib/arachni/browser_cluster/jobs/{resource_exploration → dom_exploration}/result.rb +2 -2
  247. data/lib/arachni/browser_cluster/jobs/taint_trace.rb +3 -3
  248. data/lib/arachni/browser_cluster/jobs/taint_trace/event_trigger.rb +2 -2
  249. data/lib/arachni/browser_cluster/jobs/taint_trace/event_trigger/result.rb +2 -2
  250. data/lib/arachni/browser_cluster/jobs/taint_trace/result.rb +1 -1
  251. data/lib/arachni/browser_cluster/worker.rb +12 -40
  252. data/lib/arachni/check.rb +1 -1
  253. data/lib/arachni/check/auditor.rb +15 -1
  254. data/lib/arachni/check/base.rb +1 -1
  255. data/lib/arachni/check/manager.rb +1 -1
  256. data/lib/arachni/component.rb +1 -1
  257. data/lib/arachni/component/base.rb +5 -5
  258. data/lib/arachni/component/manager.rb +39 -13
  259. data/lib/arachni/component/options.rb +1 -1
  260. data/lib/arachni/component/options/address.rb +1 -1
  261. data/lib/arachni/component/options/base.rb +1 -1
  262. data/lib/arachni/component/options/bool.rb +1 -1
  263. data/lib/arachni/component/options/float.rb +1 -1
  264. data/lib/arachni/component/options/int.rb +1 -1
  265. data/lib/arachni/component/options/multiple_choice.rb +1 -1
  266. data/lib/arachni/component/options/object.rb +1 -1
  267. data/lib/arachni/component/options/path.rb +1 -1
  268. data/lib/arachni/component/options/port.rb +1 -1
  269. data/lib/arachni/component/options/string.rb +1 -1
  270. data/lib/arachni/component/options/url.rb +1 -1
  271. data/lib/arachni/component/output.rb +1 -1
  272. data/lib/arachni/component/utilities.rb +1 -1
  273. data/lib/arachni/data.rb +1 -1
  274. data/lib/arachni/data/framework.rb +1 -1
  275. data/lib/arachni/data/framework/rpc.rb +1 -1
  276. data/lib/arachni/data/issues.rb +1 -1
  277. data/lib/arachni/data/plugins.rb +1 -1
  278. data/lib/arachni/data/session.rb +1 -1
  279. data/lib/arachni/element/base.rb +19 -5
  280. data/lib/arachni/element/body.rb +1 -1
  281. data/lib/arachni/element/capabilities/analyzable.rb +1 -1
  282. data/lib/arachni/element/capabilities/analyzable/differential.rb +15 -5
  283. data/lib/arachni/element/capabilities/analyzable/signature.rb +147 -89
  284. data/lib/arachni/element/capabilities/analyzable/timeout.rb +43 -16
  285. data/lib/arachni/element/capabilities/auditable.rb +20 -15
  286. data/lib/arachni/element/capabilities/dom_only.rb +5 -4
  287. data/lib/arachni/element/capabilities/inputtable.rb +62 -12
  288. data/lib/arachni/element/capabilities/mutable.rb +74 -13
  289. data/lib/arachni/element/capabilities/refreshable.rb +1 -1
  290. data/lib/arachni/element/capabilities/submittable.rb +5 -2
  291. data/lib/arachni/element/capabilities/with_auditor.rb +1 -1
  292. data/lib/arachni/element/capabilities/with_auditor/output.rb +5 -5
  293. data/lib/arachni/element/capabilities/with_dom.rb +1 -1
  294. data/lib/arachni/element/capabilities/with_node.rb +2 -2
  295. data/lib/arachni/element/capabilities/with_scope.rb +1 -1
  296. data/lib/arachni/element/capabilities/with_scope/scope.rb +1 -1
  297. data/lib/arachni/element/capabilities/with_source.rb +4 -4
  298. data/lib/arachni/element/cookie.rb +57 -34
  299. data/lib/arachni/element/cookie/capabilities/inputtable.rb +1 -1
  300. data/lib/arachni/element/cookie/capabilities/mutable.rb +10 -1
  301. data/lib/arachni/element/cookie/capabilities/with_dom.rb +1 -1
  302. data/lib/arachni/element/cookie/dom.rb +1 -1
  303. data/lib/arachni/element/dom.rb +1 -15
  304. data/lib/arachni/element/dom/capabilities/auditable.rb +1 -1
  305. data/lib/arachni/element/dom/capabilities/inputtable.rb +1 -1
  306. data/lib/arachni/element/dom/capabilities/locatable.rb +29 -0
  307. data/lib/arachni/element/dom/capabilities/mutable.rb +11 -1
  308. data/lib/arachni/element/dom/capabilities/submittable.rb +2 -2
  309. data/lib/arachni/element/form.rb +33 -14
  310. data/lib/arachni/element/form/capabilities/auditable.rb +1 -1
  311. data/lib/arachni/element/form/capabilities/mutable.rb +18 -17
  312. data/lib/arachni/element/form/capabilities/submittable.rb +1 -1
  313. data/lib/arachni/element/form/capabilities/with_dom.rb +2 -1
  314. data/lib/arachni/element/form/dom.rb +3 -2
  315. data/lib/arachni/element/generic_dom.rb +1 -1
  316. data/lib/arachni/element/header.rb +16 -4
  317. data/lib/arachni/element/header/capabilities/inputtable.rb +1 -1
  318. data/lib/arachni/element/header/capabilities/mutable.rb +11 -1
  319. data/lib/arachni/element/json.rb +2 -2
  320. data/lib/arachni/element/json/capabilities/inputtable.rb +1 -1
  321. data/lib/arachni/element/json/capabilities/mutable.rb +8 -2
  322. data/lib/arachni/element/link.rb +14 -7
  323. data/lib/arachni/element/link/capabilities/auditable.rb +1 -1
  324. data/lib/arachni/element/link/capabilities/submittable.rb +1 -1
  325. data/lib/arachni/element/link/capabilities/with_dom.rb +8 -1
  326. data/lib/arachni/element/link/dom.rb +2 -1
  327. data/lib/arachni/element/link/dom/capabilities/submittable.rb +1 -1
  328. data/lib/arachni/element/link_template.rb +8 -3
  329. data/lib/arachni/element/link_template/capabilities/auditable.rb +1 -1
  330. data/lib/arachni/element/link_template/capabilities/inputtable.rb +1 -1
  331. data/lib/arachni/element/link_template/capabilities/with_dom.rb +1 -1
  332. data/lib/arachni/element/link_template/dom.rb +2 -1
  333. data/lib/arachni/element/link_template/dom/capabilities/submittable.rb +1 -1
  334. data/lib/arachni/element/path.rb +1 -1
  335. data/lib/arachni/element/server.rb +3 -3
  336. data/lib/arachni/element/ui_form.rb +24 -21
  337. data/lib/arachni/element/ui_form/dom.rb +12 -3
  338. data/lib/arachni/element/ui_input.rb +17 -11
  339. data/lib/arachni/element/{input → ui_input}/dom.rb +11 -2
  340. data/lib/arachni/element/xml.rb +3 -3
  341. data/lib/arachni/element/xml/capabilities/inputtable.rb +7 -1
  342. data/lib/arachni/element/xml/capabilities/mutable.rb +7 -13
  343. data/lib/arachni/element_filter.rb +1 -1
  344. data/lib/arachni/error.rb +1 -1
  345. data/lib/arachni/ethon/easy.rb +1 -1
  346. data/lib/arachni/framework.rb +2 -5
  347. data/lib/arachni/framework/parts/audit.rb +8 -2
  348. data/lib/arachni/framework/parts/browser.rb +8 -9
  349. data/lib/arachni/framework/parts/check.rb +2 -6
  350. data/lib/arachni/framework/parts/data.rb +23 -8
  351. data/lib/arachni/framework/parts/platform.rb +1 -1
  352. data/lib/arachni/framework/parts/plugin.rb +2 -8
  353. data/lib/arachni/framework/parts/report.rb +3 -9
  354. data/lib/arachni/framework/parts/scope.rb +1 -1
  355. data/lib/arachni/framework/parts/state.rb +8 -8
  356. data/lib/arachni/http.rb +1 -1
  357. data/lib/arachni/http/client.rb +72 -68
  358. data/lib/arachni/http/client/dynamic_404_handler.rb +85 -60
  359. data/lib/arachni/http/cookie_jar.rb +48 -27
  360. data/lib/arachni/http/headers.rb +4 -3
  361. data/lib/arachni/http/message.rb +17 -3
  362. data/lib/arachni/http/message/scope.rb +1 -1
  363. data/lib/arachni/http/proxy_server.rb +46 -344
  364. data/lib/arachni/http/proxy_server/connection.rb +316 -0
  365. data/lib/arachni/http/proxy_server/ssl_interceptor.rb +102 -0
  366. data/lib/arachni/http/proxy_server/tunnel.rb +54 -0
  367. data/lib/arachni/http/request.rb +126 -29
  368. data/lib/arachni/http/request/scope.rb +1 -1
  369. data/lib/arachni/http/response.rb +42 -12
  370. data/lib/arachni/http/response/scope.rb +1 -1
  371. data/lib/arachni/issue.rb +2 -2
  372. data/lib/arachni/issue/severity.rb +1 -1
  373. data/lib/arachni/issue/severity/base.rb +1 -1
  374. data/lib/arachni/option_group.rb +1 -1
  375. data/lib/arachni/option_groups.rb +1 -1
  376. data/lib/arachni/option_groups/audit.rb +20 -4
  377. data/lib/arachni/option_groups/browser_cluster.rb +8 -4
  378. data/lib/arachni/option_groups/datastore.rb +1 -1
  379. data/lib/arachni/option_groups/dispatcher.rb +1 -1
  380. data/lib/arachni/option_groups/http.rb +2 -2
  381. data/lib/arachni/option_groups/input.rb +6 -3
  382. data/lib/arachni/option_groups/output.rb +1 -1
  383. data/lib/arachni/option_groups/paths.rb +10 -3
  384. data/lib/arachni/option_groups/rpc.rb +1 -1
  385. data/lib/arachni/option_groups/scope.rb +35 -6
  386. data/lib/arachni/option_groups/session.rb +1 -1
  387. data/lib/arachni/option_groups/snapshot.rb +1 -1
  388. data/lib/arachni/options.rb +1 -1
  389. data/lib/arachni/page.rb +26 -12
  390. data/lib/arachni/page/dom.rb +29 -22
  391. data/lib/arachni/page/dom/transition.rb +2 -2
  392. data/lib/arachni/page/scope.rb +1 -1
  393. data/lib/arachni/parser.rb +42 -5
  394. data/lib/arachni/platform.rb +1 -1
  395. data/lib/arachni/platform/fingerprinter.rb +1 -1
  396. data/lib/arachni/platform/list.rb +1 -1
  397. data/lib/arachni/platform/manager.rb +2 -2
  398. data/lib/arachni/plugin.rb +1 -1
  399. data/lib/arachni/plugin/base.rb +1 -1
  400. data/lib/arachni/plugin/formatter.rb +1 -1
  401. data/lib/arachni/plugin/manager.rb +7 -13
  402. data/lib/arachni/processes.rb +1 -1
  403. data/lib/arachni/processes/dispatchers.rb +2 -2
  404. data/lib/arachni/processes/executables/base.rb +45 -4
  405. data/lib/arachni/processes/executables/browser.rb +91 -0
  406. data/lib/arachni/processes/executables/rest_service.rb +14 -0
  407. data/lib/arachni/processes/helpers.rb +1 -1
  408. data/lib/arachni/processes/helpers/dispatchers.rb +1 -1
  409. data/lib/arachni/processes/helpers/instances.rb +1 -1
  410. data/lib/arachni/processes/helpers/processes.rb +1 -1
  411. data/lib/arachni/processes/instances.rb +5 -5
  412. data/lib/arachni/processes/manager.rb +68 -9
  413. data/lib/arachni/report.rb +1 -1
  414. data/lib/arachni/reporter.rb +1 -1
  415. data/lib/arachni/reporter/base.rb +1 -1
  416. data/lib/arachni/reporter/formatter_manager.rb +4 -2
  417. data/lib/arachni/reporter/manager.rb +3 -2
  418. data/lib/arachni/reporter/options.rb +1 -1
  419. data/lib/arachni/rest/server.rb +231 -0
  420. data/lib/arachni/rest/server/instance_helpers.rb +37 -0
  421. data/lib/arachni/rpc/client/base.rb +1 -1
  422. data/lib/arachni/rpc/client/dispatcher.rb +1 -1
  423. data/lib/arachni/rpc/client/instance.rb +1 -1
  424. data/lib/arachni/rpc/client/instance/framework.rb +1 -1
  425. data/lib/arachni/rpc/client/instance/service.rb +1 -1
  426. data/lib/arachni/rpc/serializer.rb +1 -1
  427. data/lib/arachni/rpc/server/active_options.rb +20 -3
  428. data/lib/arachni/rpc/server/base.rb +1 -1
  429. data/lib/arachni/rpc/server/check/manager.rb +1 -1
  430. data/lib/arachni/rpc/server/dispatcher.rb +4 -4
  431. data/lib/arachni/rpc/server/dispatcher/node.rb +1 -1
  432. data/lib/arachni/rpc/server/dispatcher/service.rb +1 -1
  433. data/lib/arachni/rpc/server/framework.rb +3 -1
  434. data/lib/arachni/rpc/server/framework/distributor.rb +1 -1
  435. data/lib/arachni/rpc/server/framework/master.rb +1 -1
  436. data/lib/arachni/rpc/server/framework/multi_instance.rb +1 -1
  437. data/lib/arachni/rpc/server/framework/slave.rb +1 -1
  438. data/lib/arachni/rpc/server/instance.rb +1 -3
  439. data/lib/arachni/rpc/server/output.rb +1 -1
  440. data/lib/arachni/rpc/server/plugin/manager.rb +1 -1
  441. data/lib/arachni/ruby.rb +1 -2
  442. data/lib/arachni/ruby/array.rb +1 -1
  443. data/lib/arachni/ruby/hash.rb +1 -1
  444. data/lib/arachni/ruby/object.rb +15 -1
  445. data/lib/arachni/ruby/set.rb +1 -1
  446. data/lib/arachni/ruby/string.rb +23 -4
  447. data/lib/arachni/ruby/webrick.rb +1 -1
  448. data/lib/arachni/ruby/webrick/cookie.rb +1 -1
  449. data/lib/arachni/ruby/webrick/httprequest.rb +1 -1
  450. data/lib/arachni/scope.rb +1 -1
  451. data/lib/arachni/{watir → selenium/webdriver}/element.rb +12 -13
  452. data/lib/arachni/session.rb +19 -4
  453. data/lib/arachni/snapshot.rb +9 -5
  454. data/lib/arachni/state.rb +1 -1
  455. data/lib/arachni/state/audit.rb +1 -1
  456. data/lib/arachni/state/element_filter.rb +1 -1
  457. data/lib/arachni/state/framework.rb +1 -1
  458. data/lib/arachni/state/framework/rpc.rb +1 -1
  459. data/lib/arachni/state/http.rb +1 -1
  460. data/lib/arachni/state/options.rb +1 -1
  461. data/lib/arachni/state/plugins.rb +1 -1
  462. data/lib/arachni/support.rb +2 -1
  463. data/lib/arachni/support/buffer.rb +1 -1
  464. data/lib/arachni/support/buffer/autoflush.rb +1 -1
  465. data/lib/arachni/support/buffer/base.rb +1 -1
  466. data/lib/arachni/support/cache.rb +1 -1
  467. data/lib/arachni/support/cache/base.rb +20 -8
  468. data/lib/arachni/support/cache/least_cost_replacement.rb +1 -1
  469. data/lib/arachni/support/cache/least_recently_pushed.rb +1 -1
  470. data/lib/arachni/support/cache/least_recently_used.rb +8 -9
  471. data/lib/arachni/support/cache/preference.rb +7 -20
  472. data/lib/arachni/support/cache/random_replacement.rb +1 -1
  473. data/lib/arachni/support/crypto.rb +1 -1
  474. data/lib/arachni/support/crypto/rsa_aes_cbc.rb +1 -1
  475. data/lib/arachni/support/database.rb +1 -1
  476. data/lib/arachni/support/database/base.rb +2 -2
  477. data/lib/arachni/support/database/hash.rb +1 -1
  478. data/lib/arachni/support/database/queue.rb +1 -1
  479. data/lib/arachni/support/glob.rb +35 -0
  480. data/lib/arachni/support/lookup.rb +1 -1
  481. data/lib/arachni/support/lookup/base.rb +1 -1
  482. data/lib/arachni/support/lookup/hash_set.rb +1 -1
  483. data/lib/arachni/support/lookup/moolb.rb +1 -1
  484. data/lib/arachni/support/mixins.rb +1 -1
  485. data/lib/arachni/support/mixins/observable.rb +1 -1
  486. data/lib/arachni/support/mixins/terminal.rb +1 -1
  487. data/lib/arachni/support/profiler.rb +12 -10
  488. data/lib/arachni/support/signature.rb +12 -5
  489. data/lib/arachni/trainer.rb +18 -4
  490. data/lib/arachni/ui/foo/output.rb +17 -1
  491. data/lib/arachni/uri.rb +285 -203
  492. data/lib/arachni/uri/scope.rb +13 -2
  493. data/lib/arachni/utilities.rb +22 -5
  494. data/lib/arachni/version.rb +1 -1
  495. data/lib/version +1 -1
  496. data/spec/arachni/browser/element_locator_spec.rb +42 -14
  497. data/spec/arachni/browser/javascript/dom_monitor_spec.rb +34 -304
  498. data/spec/arachni/browser/javascript/polyfills_spec.rb +35 -0
  499. data/spec/arachni/browser/javascript/taint_tracer_spec.rb +24 -4
  500. data/spec/arachni/browser/javascript_spec.rb +92 -65
  501. data/spec/arachni/browser_cluster/job_spec.rb +3 -3
  502. data/spec/arachni/browser_cluster/jobs/{resource_exploration → dom_exploration}/event_trigger/result_spec.rb +1 -1
  503. data/spec/arachni/browser_cluster/jobs/{resource_exploration → dom_exploration}/event_trigger_spec.rb +4 -4
  504. data/spec/arachni/browser_cluster/jobs/{resource_exploration → dom_exploration}/result_spec.rb +1 -1
  505. data/spec/arachni/browser_cluster/jobs/{resource_exploration_spec.rb → dom_exploration_spec.rb} +4 -4
  506. data/spec/arachni/browser_cluster/jobs/taint_tracer_spec.rb +9 -9
  507. data/spec/arachni/browser_cluster/worker_spec.rb +46 -67
  508. data/spec/arachni/browser_cluster_spec.rb +19 -17
  509. data/spec/arachni/browser_spec.rb +506 -183
  510. data/spec/arachni/check/auditor_spec.rb +70 -25
  511. data/spec/arachni/component/manager_spec.rb +19 -20
  512. data/spec/arachni/data/framework/rpc_spec.rb +1 -1
  513. data/spec/arachni/data/framework_spec.rb +1 -1
  514. data/spec/arachni/data/issues_spec.rb +3 -3
  515. data/spec/arachni/element/capabilities/analyzable/differential_spec.rb +44 -0
  516. data/spec/arachni/element/capabilities/analyzable/signature_spec.rb +33 -162
  517. data/spec/arachni/element/capabilities/analyzable/timeout_spec.rb +4 -4
  518. data/spec/arachni/element/cookie_spec.rb +98 -49
  519. data/spec/arachni/element/form/dom_spec.rb +1 -22
  520. data/spec/arachni/element/form_spec.rb +7 -7
  521. data/spec/arachni/element/header_spec.rb +2 -2
  522. data/spec/arachni/element/json_spec.rb +2 -2
  523. data/spec/arachni/element/link/dom_spec.rb +1 -22
  524. data/spec/arachni/element/link_spec.rb +17 -1
  525. data/spec/arachni/element/link_template/dom_spec.rb +1 -22
  526. data/spec/arachni/element/link_template_spec.rb +3 -3
  527. data/spec/arachni/element/ui_form/{ui_form_dom_spec.rb → dom_spec.rb} +72 -22
  528. data/spec/arachni/element/ui_form_spec.rb +1 -0
  529. data/spec/arachni/element/ui_input/dom_spec.rb +64 -22
  530. data/spec/arachni/element/ui_input_spec.rb +1 -0
  531. data/spec/arachni/element/xml_spec.rb +1 -0
  532. data/spec/arachni/framework/parts/audit_spec.rb +7 -5
  533. data/spec/arachni/framework/parts/browser_spec.rb +8 -8
  534. data/spec/arachni/framework/parts/check_spec.rb +1 -1
  535. data/spec/arachni/framework/parts/data_spec.rb +4 -4
  536. data/spec/arachni/framework/parts/scope_spec.rb +2 -2
  537. data/spec/arachni/framework_spec.rb +1 -1
  538. data/spec/arachni/http/client/dynamic_404_handlers_spec.rb +26 -13
  539. data/spec/arachni/http/client_spec.rb +80 -45
  540. data/spec/arachni/http/cookie_jar_spec.rb +6 -6
  541. data/spec/arachni/http/proxy_server_spec.rb +69 -66
  542. data/spec/arachni/http/request_spec.rb +147 -23
  543. data/spec/arachni/http/response/scope_spec.rb +12 -12
  544. data/spec/arachni/http/response_spec.rb +62 -4
  545. data/spec/arachni/issue_spec.rb +6 -6
  546. data/spec/arachni/option_groups/audit_spec.rb +25 -8
  547. data/spec/arachni/option_groups/browser_cluster_spec.rb +27 -1
  548. data/spec/arachni/option_groups/dispatcher_spec.rb +3 -3
  549. data/spec/arachni/option_groups/input_spec.rb +9 -9
  550. data/spec/arachni/option_groups/paths_spec.rb +2 -2
  551. data/spec/arachni/option_groups/scope_spec.rb +32 -16
  552. data/spec/arachni/options_spec.rb +4 -4
  553. data/spec/arachni/page/dom/transition_spec.rb +17 -10
  554. data/spec/arachni/page/dom_spec.rb +19 -0
  555. data/spec/arachni/page/scope_spec.rb +4 -4
  556. data/spec/arachni/page_spec.rb +15 -15
  557. data/spec/arachni/platform/manager_spec.rb +2 -2
  558. data/spec/arachni/plugin/base_spec.rb +1 -0
  559. data/spec/arachni/reporter/base_spec.rb +2 -2
  560. data/spec/arachni/reporter/manager_spec.rb +2 -2
  561. data/spec/arachni/rest/server_spec.rb +495 -0
  562. data/spec/arachni/rpc/server/active_options_spec.rb +63 -12
  563. data/spec/arachni/rpc/server/base_spec.rb +1 -1
  564. data/spec/arachni/rpc/server/framework/distributor_spec.rb +2 -2
  565. data/spec/arachni/rpc/server/framework_multi_spec.rb +6 -6
  566. data/spec/arachni/rpc/server/framework_spec.rb +4 -4
  567. data/spec/arachni/rpc/server/instance_spec.rb +24 -24
  568. data/spec/arachni/ruby/array_spec.rb +2 -2
  569. data/spec/arachni/ruby/string_spec.rb +52 -0
  570. data/spec/arachni/session_spec.rb +19 -2
  571. data/spec/arachni/snapshot_spec.rb +1 -1
  572. data/spec/arachni/state/audit_spec.rb +1 -1
  573. data/spec/arachni/state/framework_spec.rb +2 -2
  574. data/spec/arachni/support/cache/least_recently_used_spec.rb +0 -2
  575. data/spec/arachni/support/glob_spec.rb +75 -0
  576. data/spec/arachni/support/lookup/hash_set_spec.rb +1 -1
  577. data/spec/arachni/support/lookup/moolb_spec.rb +2 -2
  578. data/spec/arachni/support/signature_spec.rb +4 -4
  579. data/spec/arachni/trainer_spec.rb +48 -4
  580. data/spec/arachni/uri/scope_spec.rb +54 -10
  581. data/spec/arachni/uri_spec.rb +110 -89
  582. data/spec/arachni/utilities_spec.rb +8 -8
  583. data/spec/components/checks/active/code_injection_spec.rb +9 -9
  584. data/spec/components/checks/active/file_inclusion_spec.rb +20 -20
  585. data/spec/components/checks/active/ldap_injection_spec.rb +1 -1
  586. data/spec/components/checks/active/no_sql_injection_spec.rb +1 -1
  587. data/spec/components/checks/active/os_cmd_injection_spec.rb +3 -3
  588. data/spec/components/checks/active/path_traversal_spec.rb +11 -11
  589. data/spec/components/checks/active/response_splitting_spec.rb +2 -2
  590. data/spec/components/checks/active/rfi_spec.rb +3 -3
  591. data/spec/components/checks/active/session_fixation_spec.rb +1 -1
  592. data/spec/components/checks/active/source_code_disclosure_spec.rb +4 -4
  593. data/spec/components/checks/active/sql_injection_spec.rb +58 -59
  594. data/spec/components/checks/active/unvalidated_redirect_spec.rb +2 -2
  595. data/spec/components/checks/active/xpath_injection_spec.rb +3 -3
  596. data/spec/components/checks/active/xss_dom_script_context_spec.rb +1 -1
  597. data/spec/components/checks/active/xss_dom_spec.rb +1 -1
  598. data/spec/components/checks/active/xss_script_context_spec.rb +5 -5
  599. data/spec/components/checks/active/xss_spec.rb +5 -5
  600. data/spec/components/checks/passive/grep/credit_card_spec.rb +1 -1
  601. data/spec/components/checks/passive/grep/emails_spec.rb +12 -2
  602. data/spec/components/checks/passive/grep/ssn_spec.rb +1 -1
  603. data/spec/components/path_extractors/meta_refresh_spec.rb +3 -1
  604. data/spec/components/plugins/exec_spec.rb +2 -2
  605. data/spec/components/plugins/login_script_spec.rb +22 -2
  606. data/spec/components/plugins/vector_feed_spec.rb +3 -3
  607. data/spec/spec_helper.rb +10 -4
  608. data/spec/support/factories/browser_cluster/job.rb +1 -0
  609. data/spec/support/fixtures/check_with_invalid_platforms/with_invalid_platforms.rb +1 -1
  610. data/spec/support/fixtures/checks/test.rb +1 -1
  611. data/spec/support/fixtures/checks/test2.rb +1 -1
  612. data/spec/support/fixtures/checks/test3.rb +1 -1
  613. data/spec/support/fixtures/fingerprinters/test.rb +1 -1
  614. data/spec/support/fixtures/plugins/bad.rb +1 -1
  615. data/spec/support/fixtures/plugins/defaults/default.rb +1 -1
  616. data/spec/support/fixtures/plugins/distributable.rb +1 -1
  617. data/spec/support/fixtures/plugins/loop.rb +1 -1
  618. data/spec/support/fixtures/plugins/suspendable.rb +1 -1
  619. data/spec/support/fixtures/plugins/wait.rb +1 -1
  620. data/spec/support/fixtures/plugins/with_options.rb +1 -1
  621. data/spec/support/fixtures/plugins_with_priorities/p0.rb +1 -1
  622. data/spec/support/fixtures/plugins_with_priorities/p00.rb +1 -1
  623. data/spec/support/fixtures/plugins_with_priorities/p1.rb +1 -1
  624. data/spec/support/fixtures/plugins_with_priorities/p2.rb +1 -1
  625. data/spec/support/fixtures/plugins_with_priorities/p22.rb +1 -1
  626. data/spec/support/fixtures/plugins_with_priorities/p222.rb +1 -1
  627. data/spec/support/fixtures/plugins_with_priorities/p_nil.rb +1 -1
  628. data/spec/support/fixtures/plugins_with_priorities/p_nil2.rb +1 -1
  629. data/spec/support/fixtures/report.afr +0 -0
  630. data/spec/support/fixtures/reporters/base_spec/plugin_formatters/with_formatters/foobar.rb +1 -1
  631. data/spec/support/fixtures/reporters/base_spec/with_formatters.rb +1 -1
  632. data/spec/support/fixtures/reporters/base_spec/with_outfile.rb +1 -1
  633. data/spec/support/fixtures/reporters/base_spec/without_outfile.rb +1 -1
  634. data/spec/support/fixtures/reporters/manager_spec/afr.rb +1 -1
  635. data/spec/support/fixtures/reporters/manager_spec/error.rb +1 -1
  636. data/spec/support/fixtures/reporters/manager_spec/foo.rb +1 -1
  637. data/spec/support/fixtures/run_check/body.rb +1 -1
  638. data/spec/support/fixtures/run_check/cookies.rb +1 -1
  639. data/spec/support/fixtures/run_check/empty.rb +1 -1
  640. data/spec/support/fixtures/run_check/flch.rb +1 -1
  641. data/spec/support/fixtures/run_check/forms.rb +1 -1
  642. data/spec/support/fixtures/run_check/headers.rb +1 -1
  643. data/spec/support/fixtures/run_check/links.rb +1 -1
  644. data/spec/support/fixtures/run_check/nil.rb +1 -1
  645. data/spec/support/fixtures/run_check/path.rb +1 -1
  646. data/spec/support/fixtures/run_check/server.rb +1 -1
  647. data/spec/support/fixtures/signature_check/signature.rb +1 -1
  648. data/spec/support/fixtures/wait_check/wait.rb +1 -1
  649. data/spec/support/helpers/framework.rb +1 -1
  650. data/spec/support/helpers/misc.rb +1 -1
  651. data/spec/support/helpers/paths.rb +1 -1
  652. data/spec/support/helpers/request_helpers.rb +38 -0
  653. data/spec/support/helpers/requires.rb +1 -1
  654. data/spec/support/helpers/resets.rb +1 -1
  655. data/spec/support/helpers/web_server.rb +1 -1
  656. data/spec/support/lib/factory.rb +1 -1
  657. data/spec/support/lib/web_server_client.rb +1 -1
  658. data/spec/support/lib/web_server_dispatcher.rb +1 -1
  659. data/spec/support/lib/web_server_manager.rb +2 -2
  660. data/spec/support/servers/arachni/browser.rb +182 -15
  661. data/spec/support/servers/arachni/browser/javascript/angular-1.2.8.js +1 -1
  662. data/spec/support/servers/arachni/browser/javascript/angular-route.js +1 -1
  663. data/spec/support/servers/arachni/browser/javascript/dom_monitor.rb +27 -4
  664. data/spec/support/servers/arachni/element/capabilities/analyzable/differential.rb +103 -0
  665. data/spec/support/servers/arachni/element/capabilities/analyzable/timeout.rb +5 -2
  666. data/spec/support/servers/arachni/element/header.rb +1 -1
  667. data/spec/support/servers/arachni/http/client.rb +46 -0
  668. data/spec/support/servers/arachni/http/client/dynamic_404_handler.rb +7 -1
  669. data/spec/support/servers/checks/active/code_injection.rb +5 -5
  670. data/spec/support/servers/checks/active/no_sql_injection.rb +0 -6
  671. data/spec/support/servers/checks/active/no_sql_injection_differential.rb +1 -1
  672. data/spec/support/servers/checks/active/sql_injection.rb +5 -2
  673. data/spec/support/servers/checks/active/sql_injection_differential.rb +1 -1
  674. data/spec/support/servers/checks/active/trainer_check.rb +6 -6
  675. data/spec/support/servers/checks/passive/backdoors.rb +1 -0
  676. data/spec/support/servers/checks/passive/backup_directories.rb +2 -0
  677. data/spec/support/servers/checks/passive/backup_files.rb +2 -0
  678. data/spec/support/servers/checks/passive/grep/emails.rb +6 -6
  679. data/spec/support/shared/check.rb +28 -0
  680. data/spec/support/shared/element/capabilities/auditable.rb +76 -13
  681. data/spec/support/shared/element/capabilities/dom_only.rb +5 -6
  682. data/spec/support/shared/element/capabilities/inputtable.rb +74 -4
  683. data/spec/support/shared/element/capabilities/mutable.rb +86 -14
  684. data/spec/support/shared/element/capabilities/submittable.rb +12 -0
  685. data/spec/support/shared/element/capabilities/with_dom.rb +13 -4
  686. data/spec/support/shared/element/capabilities/with_node.rb +1 -1
  687. data/spec/support/shared/element/capabilities/with_source.rb +1 -6
  688. data/spec/support/shared/element/dom/locatable.rb +20 -0
  689. data/spec/support/shared/element/dom/submittable.rb +4 -17
  690. data/spec/support/shared/http/message.rb +37 -5
  691. data/spec/support/shared/support/cache.rb +5 -4
  692. data/ui/cli/framework.rb +4 -3
  693. data/ui/cli/framework/option_parser.rb +20 -8
  694. data/ui/cli/option_parser.rb +1 -1
  695. data/ui/cli/output.rb +40 -4
  696. data/ui/cli/reporter.rb +1 -1
  697. data/ui/cli/reporter/option_parser.rb +4 -4
  698. data/ui/cli/rest/server.rb +43 -0
  699. data/ui/cli/rest/server/option_parser.rb +115 -0
  700. data/ui/cli/restored_framework.rb +1 -1
  701. data/ui/cli/restored_framework/option_parser.rb +1 -1
  702. data/ui/cli/rpc/client/dispatcher_monitor.rb +1 -1
  703. data/ui/cli/rpc/client/dispatcher_monitor/option_parser.rb +1 -1
  704. data/ui/cli/rpc/client/instance.rb +1 -1
  705. data/ui/cli/rpc/client/local.rb +1 -1
  706. data/ui/cli/rpc/client/local/option_parser.rb +1 -1
  707. data/ui/cli/rpc/client/remote.rb +1 -1
  708. data/ui/cli/rpc/client/remote/option_parser.rb +1 -1
  709. data/ui/cli/rpc/server/dispatcher.rb +1 -1
  710. data/ui/cli/rpc/server/dispatcher/option_parser.rb +1 -1
  711. data/ui/cli/utilities.rb +1 -1
  712. metadata +197 -84
  713. data/components/checks/active/no_sql_injection/patterns/mongodb +0 -1
  714. data/components/checks/active/no_sql_injection/regexp_ignore.txt +0 -0
  715. data/components/checks/active/sql_injection/patterns/access +0 -3
  716. data/components/checks/active/sql_injection/patterns/db2 +0 -5
  717. data/components/checks/active/sql_injection/patterns/frontbase +0 -1
  718. data/components/checks/active/sql_injection/patterns/hsqldb +0 -1
  719. data/components/checks/active/sql_injection/patterns/ingres +0 -3
  720. data/components/checks/active/sql_injection/patterns/maxdb +0 -2
  721. data/components/checks/active/sql_injection/patterns/mssql +0 -25
  722. data/components/checks/active/sql_injection/patterns/oracle +0 -6
  723. data/components/checks/active/sql_injection/patterns/sqlite +0 -5
  724. data/components/checks/active/sql_injection/patterns/sybase +0 -3
  725. data/lib/arachni/ruby/io.rb +0 -39
  726. data/lib/arachni/selenium/webdriver/remote/http/typhoeus.rb +0 -63
  727. data/spec/arachni/ruby/io_spec.rb +0 -26
@@ -0,0 +1,43 @@
1
+ =begin
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
+
4
+ This file is part of the Arachni Framework project and is subject to
5
+ redistribution and commercial restrictions. Please see the Arachni Framework
6
+ web site for more information on licensing and terms of use.
7
+ =end
8
+
9
+ require_relative 'server/option_parser'
10
+
11
+ module Arachni
12
+
13
+ require Options.paths.lib + 'rest/server'
14
+ require_relative '../utilities'
15
+
16
+ module UI::CLI
17
+ module Rest
18
+
19
+ # @author Tasos "Zapotek" Laskos <tasos.laskos@arachni-scanner.com>
20
+ class Server
21
+
22
+ def initialize
23
+ parser = OptionParser.new
24
+ parser.parse
25
+
26
+ Arachni::Rest::Server.run!(
27
+ port: Arachni::Options.rpc.server_port,
28
+ bind: Arachni::Options.rpc.server_address,
29
+
30
+ username: parser.username,
31
+ password: parser.password,
32
+
33
+ ssl_ca: Arachni::Options.rpc.ssl_ca,
34
+ ssl_key: Arachni::Options.rpc.server_ssl_private_key,
35
+ ssl_certificate: Arachni::Options.rpc.server_ssl_certificate
36
+ )
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,115 @@
1
+ =begin
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
+
4
+ This file is part of the Arachni Framework project and is subject to
5
+ redistribution and commercial restrictions. Please see the Arachni Framework
6
+ web site for more information on licensing and terms of use.
7
+ =end
8
+
9
+ require_relative '../../output'
10
+ require_relative '../../option_parser'
11
+
12
+ module Arachni
13
+ module UI::CLI
14
+ module Rest
15
+ class Server
16
+
17
+ # @author Tasos "Zapotek" Laskos <tasos.laskos@arachni-scanner.com>
18
+ class OptionParser < UI::CLI::OptionParser
19
+
20
+ attr_reader :cli
21
+ attr_reader :username
22
+ attr_reader :password
23
+
24
+ def initialize
25
+ super
26
+
27
+ separator 'Server'
28
+
29
+ on( '--address ADDRESS', 'Hostname or IP address to bind to.',
30
+ "(Default: #{options.rpc.server_address})"
31
+ ) do |address|
32
+ options.rpc.server_address = address
33
+ end
34
+
35
+ on( '--port NUMBER', 'Port to listen to.', Integer,
36
+ "(Default: #{options.rpc.server_port})"
37
+ ) do |port|
38
+ options.rpc.server_port = port
39
+ end
40
+
41
+ separator ''
42
+ separator 'Output'
43
+
44
+ on( '--reroute-to-logfile',
45
+ "Reroute scan output to log-files under: #{options.paths.logs}"
46
+ ) do
47
+ options.output.reroute_to_logfile = true
48
+ end
49
+
50
+ on( '--verbose', 'Show verbose output.',
51
+ "(Only applicable when '--reroute-to-logfile' is enabled.)"
52
+ ) do
53
+ verbose_on
54
+ end
55
+
56
+ on( '--debug [LEVEL 1-3]', Integer, 'Show debugging information.',
57
+ "(Only applicable when '--reroute-to-logfile' is enabled.)"
58
+ ) do |level|
59
+ debug_on( level || 1 )
60
+ end
61
+
62
+ on( '--only-positives', 'Only output positive results.',
63
+ "(Only applicable when '--reroute-to-logfile' is enabled.)"
64
+ ) do
65
+ only_positives
66
+ end
67
+
68
+ separator ''
69
+ separator 'Authentication'
70
+
71
+ on( '--authentication-username USERNAME',
72
+ 'Username to use for HTTP authentication.'
73
+ ) do |username|
74
+ @username = username
75
+ end
76
+
77
+ on( '--authentication-password PASSWORD',
78
+ 'Password to use for HTTP authentication.'
79
+ ) do |password|
80
+ @password = password
81
+ end
82
+
83
+ # Puma SSL doesn't seem to be working on MS Windows.
84
+ if !Arachni.windows?
85
+ separator ''
86
+ separator 'SSL'
87
+
88
+ on( '--ssl-ca FILE',
89
+ 'Location of the CA certificate (.pem).',
90
+ 'If provided, peer verification will be enabled, otherwise no' +
91
+ ' verification will take place.'
92
+ ) do |file|
93
+ options.rpc.ssl_ca = file
94
+ end
95
+
96
+ on( '--ssl-private-key FILE',
97
+ 'Location of the SSL private key (.pem).'
98
+ ) do |file|
99
+ options.rpc.server_ssl_private_key = file
100
+ end
101
+
102
+ on( '--ssl-certificate FILE',
103
+ 'Location of the SSL certificate (.pem).'
104
+ ) do |file|
105
+ options.rpc.server_ssl_certificate = file
106
+ end
107
+ end
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+ end
114
+ end
115
+ end
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
@@ -1,5 +1,5 @@
1
1
  =begin
2
- Copyright 2010-2015 Tasos Laskos <tasos.laskos@arachni-scanner.com>
2
+ Copyright 2010-2016 Tasos Laskos <tasos.laskos@arachni-scanner.com>
3
3
 
4
4
  This file is part of the Arachni Framework project and is subject to
5
5
  redistribution and commercial restrictions. Please see the Arachni Framework
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arachni
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tasos Laskos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-20 00:00:00.000000000 Z
11
+ date: 2016-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: awesome_print
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rack
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,34 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: concurrent-ruby
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: concurrent-ruby-ext
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 1.0.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 1.0.0
41
83
  - !ruby/object:Gem::Dependency
42
84
  name: rubyzip
43
85
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +94,20 @@ dependencies:
52
94
  - - '='
53
95
  - !ruby/object:Gem::Version
54
96
  version: 1.1.6
97
+ - !ruby/object:Gem::Dependency
98
+ name: http_parser.rb
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
55
111
  - !ruby/object:Gem::Dependency
56
112
  name: coderay
57
113
  requirement: !ruby/object:Gem::Requirement
@@ -86,112 +142,140 @@ dependencies:
86
142
  requirements:
87
143
  - - '='
88
144
  - !ruby/object:Gem::Version
89
- version: 0.5.8
145
+ version: 0.7.0
90
146
  type: :runtime
91
147
  prerelease: false
92
148
  version_requirements: !ruby/object:Gem::Requirement
93
149
  requirements:
94
150
  - - '='
95
151
  - !ruby/object:Gem::Version
96
- version: 0.5.8
152
+ version: 0.7.0
97
153
  - !ruby/object:Gem::Dependency
98
- name: arachni-rpc
154
+ name: oj
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 2.14.3
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 2.14.3
167
+ - !ruby/object:Gem::Dependency
168
+ name: oj_mimic_json
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: puma
99
183
  requirement: !ruby/object:Gem::Requirement
100
184
  requirements:
101
185
  - - '='
102
186
  - !ruby/object:Gem::Version
103
- version: 0.2.1.2
187
+ version: 2.14.0
104
188
  type: :runtime
105
189
  prerelease: false
106
190
  version_requirements: !ruby/object:Gem::Requirement
107
191
  requirements:
108
192
  - - '='
109
193
  - !ruby/object:Gem::Version
110
- version: 0.2.1.2
194
+ version: 2.14.0
111
195
  - !ruby/object:Gem::Dependency
112
- name: typhoeus
196
+ name: sinatra
113
197
  requirement: !ruby/object:Gem::Requirement
114
198
  requirements:
115
199
  - - '='
116
200
  - !ruby/object:Gem::Version
117
- version: 0.6.9
201
+ version: 1.4.6
118
202
  type: :runtime
119
203
  prerelease: false
120
204
  version_requirements: !ruby/object:Gem::Requirement
121
205
  requirements:
122
206
  - - '='
123
207
  - !ruby/object:Gem::Version
124
- version: 0.6.9
208
+ version: 1.4.6
125
209
  - !ruby/object:Gem::Dependency
126
- name: addressable
210
+ name: sinatra-contrib
127
211
  requirement: !ruby/object:Gem::Requirement
128
212
  requirements:
129
213
  - - '='
130
214
  - !ruby/object:Gem::Version
131
- version: 2.3.6
215
+ version: 1.4.6
132
216
  type: :runtime
133
217
  prerelease: false
134
218
  version_requirements: !ruby/object:Gem::Requirement
135
219
  requirements:
136
220
  - - '='
137
221
  - !ruby/object:Gem::Version
138
- version: 2.3.6
222
+ version: 1.4.6
139
223
  - !ruby/object:Gem::Dependency
140
- name: pony
224
+ name: arachni-rpc
141
225
  requirement: !ruby/object:Gem::Requirement
142
226
  requirements:
143
227
  - - '='
144
228
  - !ruby/object:Gem::Version
145
- version: '1.8'
229
+ version: 0.2.1.3
146
230
  type: :runtime
147
231
  prerelease: false
148
232
  version_requirements: !ruby/object:Gem::Requirement
149
233
  requirements:
150
234
  - - '='
151
235
  - !ruby/object:Gem::Version
152
- version: '1.8'
236
+ version: 0.2.1.3
153
237
  - !ruby/object:Gem::Dependency
154
- name: awesome_print
238
+ name: typhoeus
155
239
  requirement: !ruby/object:Gem::Requirement
156
240
  requirements:
157
- - - "~>"
241
+ - - '='
158
242
  - !ruby/object:Gem::Version
159
- version: 1.2.0
243
+ version: 1.0.1
160
244
  type: :runtime
161
245
  prerelease: false
162
246
  version_requirements: !ruby/object:Gem::Requirement
163
247
  requirements:
164
- - - "~>"
248
+ - - '='
165
249
  - !ruby/object:Gem::Version
166
- version: 1.2.0
250
+ version: 1.0.1
167
251
  - !ruby/object:Gem::Dependency
168
- name: oj
252
+ name: addressable
169
253
  requirement: !ruby/object:Gem::Requirement
170
254
  requirements:
171
- - - "~>"
255
+ - - '='
172
256
  - !ruby/object:Gem::Version
173
- version: 2.12.9
257
+ version: 2.3.6
174
258
  type: :runtime
175
259
  prerelease: false
176
260
  version_requirements: !ruby/object:Gem::Requirement
177
261
  requirements:
178
- - - "~>"
262
+ - - '='
179
263
  - !ruby/object:Gem::Version
180
- version: 2.12.9
264
+ version: 2.3.6
181
265
  - !ruby/object:Gem::Dependency
182
- name: oj_mimic_json
266
+ name: pony
183
267
  requirement: !ruby/object:Gem::Requirement
184
268
  requirements:
185
- - - ">="
269
+ - - '='
186
270
  - !ruby/object:Gem::Version
187
- version: '0'
271
+ version: '1.8'
188
272
  type: :runtime
189
273
  prerelease: false
190
274
  version_requirements: !ruby/object:Gem::Requirement
191
275
  requirements:
192
- - - ">="
276
+ - - '='
193
277
  - !ruby/object:Gem::Version
194
- version: '0'
278
+ version: '1.8'
195
279
  - !ruby/object:Gem::Dependency
196
280
  name: rb-readline
197
281
  requirement: !ruby/object:Gem::Requirement
@@ -210,16 +294,16 @@ dependencies:
210
294
  name: nokogiri
211
295
  requirement: !ruby/object:Gem::Requirement
212
296
  requirements:
213
- - - "~>"
297
+ - - '='
214
298
  - !ruby/object:Gem::Version
215
- version: 1.6.5
299
+ version: 1.6.8rc2
216
300
  type: :runtime
217
301
  prerelease: false
218
302
  version_requirements: !ruby/object:Gem::Requirement
219
303
  requirements:
220
- - - "~>"
304
+ - - '='
221
305
  - !ruby/object:Gem::Version
222
- version: 1.6.5
306
+ version: 1.6.8rc2
223
307
  - !ruby/object:Gem::Dependency
224
308
  name: terminal-table
225
309
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +324,14 @@ dependencies:
240
324
  requirements:
241
325
  - - '='
242
326
  - !ruby/object:Gem::Version
243
- version: 0.6.9
327
+ version: 0.8.0
244
328
  type: :runtime
245
329
  prerelease: false
246
330
  version_requirements: !ruby/object:Gem::Requirement
247
331
  requirements:
248
332
  - - '='
249
333
  - !ruby/object:Gem::Version
250
- version: 0.6.9
334
+ version: 0.8.0
251
335
  - !ruby/object:Gem::Dependency
252
336
  name: kramdown
253
337
  requirement: !ruby/object:Gem::Requirement
@@ -300,15 +384,16 @@ description: |
300
384
  multi-scan web collaboration platform.
301
385
  email: tasos.laskos@arachni-scanner.com
302
386
  executables:
303
- - arachni
304
- - arachni_rpcd_monitor
305
387
  - arachni_rpcd
306
- - arachni_rpc
388
+ - arachni_restore
307
389
  - arachni_console
308
- - arachni_script
309
- - arachni_multi
390
+ - arachni_rpc
391
+ - arachni_rpcd_monitor
310
392
  - arachni_reporter
311
- - arachni_restore
393
+ - arachni_rest_server
394
+ - arachni_multi
395
+ - arachni_script
396
+ - arachni
312
397
  extensions: []
313
398
  extra_rdoc_files:
314
399
  - README.md
@@ -331,6 +416,7 @@ files:
331
416
  - bin/arachni_console
332
417
  - bin/arachni_multi
333
418
  - bin/arachni_reporter
419
+ - bin/arachni_rest_server
334
420
  - bin/arachni_restore
335
421
  - bin/arachni_rpc
336
422
  - bin/arachni_rpcd
@@ -344,8 +430,7 @@ files:
344
430
  - components/checks/active/ldap_injection.rb
345
431
  - components/checks/active/ldap_injection/errors.txt
346
432
  - components/checks/active/no_sql_injection.rb
347
- - components/checks/active/no_sql_injection/patterns/mongodb
348
- - components/checks/active/no_sql_injection/regexp_ignore.txt
433
+ - components/checks/active/no_sql_injection/substrings/mongodb
349
434
  - components/checks/active/no_sql_injection_differential.rb
350
435
  - components/checks/active/os_cmd_injection.rb
351
436
  - components/checks/active/os_cmd_injection_timing.rb
@@ -355,23 +440,32 @@ files:
355
440
  - components/checks/active/session_fixation.rb
356
441
  - components/checks/active/source_code_disclosure.rb
357
442
  - components/checks/active/sql_injection.rb
358
- - components/checks/active/sql_injection/patterns/access
359
- - components/checks/active/sql_injection/patterns/db2
360
- - components/checks/active/sql_injection/patterns/emc
361
- - components/checks/active/sql_injection/patterns/firebird
362
- - components/checks/active/sql_injection/patterns/frontbase
363
- - components/checks/active/sql_injection/patterns/hsqldb
364
- - components/checks/active/sql_injection/patterns/informix
365
- - components/checks/active/sql_injection/patterns/ingres
366
- - components/checks/active/sql_injection/patterns/interbase
367
- - components/checks/active/sql_injection/patterns/maxdb
368
- - components/checks/active/sql_injection/patterns/mssql
369
- - components/checks/active/sql_injection/patterns/mysql
370
- - components/checks/active/sql_injection/patterns/oracle
371
- - components/checks/active/sql_injection/patterns/pgsql
372
- - components/checks/active/sql_injection/patterns/sqlite
373
- - components/checks/active/sql_injection/patterns/sybase
374
- - components/checks/active/sql_injection/regexp_ignore.txt
443
+ - components/checks/active/sql_injection/ignore_substrings
444
+ - components/checks/active/sql_injection/regexps/db2.yaml
445
+ - components/checks/active/sql_injection/regexps/frontbase.yaml
446
+ - components/checks/active/sql_injection/regexps/informix.yaml
447
+ - components/checks/active/sql_injection/regexps/ingres.yaml
448
+ - components/checks/active/sql_injection/regexps/maxdb.yaml
449
+ - components/checks/active/sql_injection/regexps/mssql.yaml
450
+ - components/checks/active/sql_injection/regexps/mysql.yaml
451
+ - components/checks/active/sql_injection/regexps/oracle.yaml
452
+ - components/checks/active/sql_injection/regexps/pgsql.yaml
453
+ - components/checks/active/sql_injection/regexps/sqlite.yaml
454
+ - components/checks/active/sql_injection/regexps/sybase.yaml
455
+ - components/checks/active/sql_injection/substrings/access
456
+ - components/checks/active/sql_injection/substrings/db2
457
+ - components/checks/active/sql_injection/substrings/emc
458
+ - components/checks/active/sql_injection/substrings/firebird
459
+ - components/checks/active/sql_injection/substrings/hsqldb
460
+ - components/checks/active/sql_injection/substrings/informix
461
+ - components/checks/active/sql_injection/substrings/ingres
462
+ - components/checks/active/sql_injection/substrings/interbase
463
+ - components/checks/active/sql_injection/substrings/mssql
464
+ - components/checks/active/sql_injection/substrings/mysql
465
+ - components/checks/active/sql_injection/substrings/oracle
466
+ - components/checks/active/sql_injection/substrings/pgsql
467
+ - components/checks/active/sql_injection/substrings/sqlite
468
+ - components/checks/active/sql_injection/substrings/sybase
375
469
  - components/checks/active/sql_injection_differential.rb
376
470
  - components/checks/active/sql_injection_differential/payloads.txt
377
471
  - components/checks/active/sql_injection_timing.rb
@@ -625,6 +719,7 @@ files:
625
719
  - lib/arachni/browser/javascript/proxy.rb
626
720
  - lib/arachni/browser/javascript/proxy/stub.rb
627
721
  - lib/arachni/browser/javascript/scripts/dom_monitor.js
722
+ - lib/arachni/browser/javascript/scripts/polyfills.js
628
723
  - lib/arachni/browser/javascript/scripts/taint_tracer.js
629
724
  - lib/arachni/browser/javascript/taint_tracer.rb
630
725
  - lib/arachni/browser/javascript/taint_tracer/frame.rb
@@ -636,10 +731,10 @@ files:
636
731
  - lib/arachni/browser_cluster/job.rb
637
732
  - lib/arachni/browser_cluster/job/result.rb
638
733
  - lib/arachni/browser_cluster/jobs/browser_provider.rb
639
- - lib/arachni/browser_cluster/jobs/resource_exploration.rb
640
- - lib/arachni/browser_cluster/jobs/resource_exploration/event_trigger.rb
641
- - lib/arachni/browser_cluster/jobs/resource_exploration/event_trigger/result.rb
642
- - lib/arachni/browser_cluster/jobs/resource_exploration/result.rb
734
+ - lib/arachni/browser_cluster/jobs/dom_exploration.rb
735
+ - lib/arachni/browser_cluster/jobs/dom_exploration/event_trigger.rb
736
+ - lib/arachni/browser_cluster/jobs/dom_exploration/event_trigger/result.rb
737
+ - lib/arachni/browser_cluster/jobs/dom_exploration/result.rb
643
738
  - lib/arachni/browser_cluster/jobs/taint_trace.rb
644
739
  - lib/arachni/browser_cluster/jobs/taint_trace/event_trigger.rb
645
740
  - lib/arachni/browser_cluster/jobs/taint_trace/event_trigger/result.rb
@@ -699,6 +794,7 @@ files:
699
794
  - lib/arachni/element/dom.rb
700
795
  - lib/arachni/element/dom/capabilities/auditable.rb
701
796
  - lib/arachni/element/dom/capabilities/inputtable.rb
797
+ - lib/arachni/element/dom/capabilities/locatable.rb
702
798
  - lib/arachni/element/dom/capabilities/mutable.rb
703
799
  - lib/arachni/element/dom/capabilities/submittable.rb
704
800
  - lib/arachni/element/form.rb
@@ -711,7 +807,6 @@ files:
711
807
  - lib/arachni/element/header.rb
712
808
  - lib/arachni/element/header/capabilities/inputtable.rb
713
809
  - lib/arachni/element/header/capabilities/mutable.rb
714
- - lib/arachni/element/input/dom.rb
715
810
  - lib/arachni/element/json.rb
716
811
  - lib/arachni/element/json/capabilities/inputtable.rb
717
812
  - lib/arachni/element/json/capabilities/mutable.rb
@@ -732,6 +827,7 @@ files:
732
827
  - lib/arachni/element/ui_form.rb
733
828
  - lib/arachni/element/ui_form/dom.rb
734
829
  - lib/arachni/element/ui_input.rb
830
+ - lib/arachni/element/ui_input/dom.rb
735
831
  - lib/arachni/element/xml.rb
736
832
  - lib/arachni/element/xml/capabilities/inputtable.rb
737
833
  - lib/arachni/element/xml/capabilities/mutable.rb
@@ -756,8 +852,11 @@ files:
756
852
  - lib/arachni/http/message.rb
757
853
  - lib/arachni/http/message/scope.rb
758
854
  - lib/arachni/http/proxy_server.rb
855
+ - lib/arachni/http/proxy_server/connection.rb
759
856
  - lib/arachni/http/proxy_server/ssl-interceptor-cacert.pem
760
857
  - lib/arachni/http/proxy_server/ssl-interceptor-cakey.pem
858
+ - lib/arachni/http/proxy_server/ssl_interceptor.rb
859
+ - lib/arachni/http/proxy_server/tunnel.rb
761
860
  - lib/arachni/http/request.rb
762
861
  - lib/arachni/http/request/scope.rb
763
862
  - lib/arachni/http/response.rb
@@ -796,8 +895,10 @@ files:
796
895
  - lib/arachni/processes.rb
797
896
  - lib/arachni/processes/dispatchers.rb
798
897
  - lib/arachni/processes/executables/base.rb
898
+ - lib/arachni/processes/executables/browser.rb
799
899
  - lib/arachni/processes/executables/dispatcher.rb
800
900
  - lib/arachni/processes/executables/instance.rb
901
+ - lib/arachni/processes/executables/rest_service.rb
801
902
  - lib/arachni/processes/helpers.rb
802
903
  - lib/arachni/processes/helpers/dispatchers.rb
803
904
  - lib/arachni/processes/helpers/instances.rb
@@ -810,6 +911,8 @@ files:
810
911
  - lib/arachni/reporter/formatter_manager.rb
811
912
  - lib/arachni/reporter/manager.rb
812
913
  - lib/arachni/reporter/options.rb
914
+ - lib/arachni/rest/server.rb
915
+ - lib/arachni/rest/server/instance_helpers.rb
813
916
  - lib/arachni/rpc/client.rb
814
917
  - lib/arachni/rpc/client/base.rb
815
918
  - lib/arachni/rpc/client/dispatcher.rb
@@ -834,7 +937,6 @@ files:
834
937
  - lib/arachni/ruby.rb
835
938
  - lib/arachni/ruby/array.rb
836
939
  - lib/arachni/ruby/hash.rb
837
- - lib/arachni/ruby/io.rb
838
940
  - lib/arachni/ruby/object.rb
839
941
  - lib/arachni/ruby/set.rb
840
942
  - lib/arachni/ruby/string.rb
@@ -842,7 +944,7 @@ files:
842
944
  - lib/arachni/ruby/webrick/cookie.rb
843
945
  - lib/arachni/ruby/webrick/httprequest.rb
844
946
  - lib/arachni/scope.rb
845
- - lib/arachni/selenium/webdriver/remote/http/typhoeus.rb
947
+ - lib/arachni/selenium/webdriver/element.rb
846
948
  - lib/arachni/session.rb
847
949
  - lib/arachni/snapshot.rb
848
950
  - lib/arachni/state.rb
@@ -870,6 +972,7 @@ files:
870
972
  - lib/arachni/support/database/base.rb
871
973
  - lib/arachni/support/database/hash.rb
872
974
  - lib/arachni/support/database/queue.rb
975
+ - lib/arachni/support/glob.rb
873
976
  - lib/arachni/support/lookup.rb
874
977
  - lib/arachni/support/lookup/base.rb
875
978
  - lib/arachni/support/lookup/hash_set.rb
@@ -885,12 +988,12 @@ files:
885
988
  - lib/arachni/uri/scope.rb
886
989
  - lib/arachni/utilities.rb
887
990
  - lib/arachni/version.rb
888
- - lib/arachni/watir/element.rb
889
991
  - lib/version
890
992
  - logs/placeholder
891
993
  - profiles/placeholder
892
994
  - spec/arachni/browser/element_locator_spec.rb
893
995
  - spec/arachni/browser/javascript/dom_monitor_spec.rb
996
+ - spec/arachni/browser/javascript/polyfills_spec.rb
894
997
  - spec/arachni/browser/javascript/proxy/stub_spec.rb
895
998
  - spec/arachni/browser/javascript/proxy_spec.rb
896
999
  - spec/arachni/browser/javascript/taint_tracer/frame/called_function_spec.rb
@@ -901,10 +1004,10 @@ files:
901
1004
  - spec/arachni/browser/javascript_spec.rb
902
1005
  - spec/arachni/browser_cluster/job/result_spec.rb
903
1006
  - spec/arachni/browser_cluster/job_spec.rb
904
- - spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger/result_spec.rb
905
- - spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
906
- - spec/arachni/browser_cluster/jobs/resource_exploration/result_spec.rb
907
- - spec/arachni/browser_cluster/jobs/resource_exploration_spec.rb
1007
+ - spec/arachni/browser_cluster/jobs/dom_exploration/event_trigger/result_spec.rb
1008
+ - spec/arachni/browser_cluster/jobs/dom_exploration/event_trigger_spec.rb
1009
+ - spec/arachni/browser_cluster/jobs/dom_exploration/result_spec.rb
1010
+ - spec/arachni/browser_cluster/jobs/dom_exploration_spec.rb
908
1011
  - spec/arachni/browser_cluster/jobs/taint_tracer_spec.rb
909
1012
  - spec/arachni/browser_cluster/worker_spec.rb
910
1013
  - spec/arachni/browser_cluster_spec.rb
@@ -951,7 +1054,7 @@ files:
951
1054
  - spec/arachni/element/link_template_spec.rb
952
1055
  - spec/arachni/element/path_spec.rb
953
1056
  - spec/arachni/element/server_spec.rb
954
- - spec/arachni/element/ui_form/ui_form_dom_spec.rb
1057
+ - spec/arachni/element/ui_form/dom_spec.rb
955
1058
  - spec/arachni/element/ui_form_spec.rb
956
1059
  - spec/arachni/element/ui_input/dom_spec.rb
957
1060
  - spec/arachni/element/ui_input_spec.rb
@@ -1007,6 +1110,7 @@ files:
1007
1110
  - spec/arachni/reporter/base_spec.rb
1008
1111
  - spec/arachni/reporter/manager_spec.rb
1009
1112
  - spec/arachni/reporter/options_spec.rb
1113
+ - spec/arachni/rest/server_spec.rb
1010
1114
  - spec/arachni/rpc/client/base_spec.rb
1011
1115
  - spec/arachni/rpc/client/dispatcher_spec.rb
1012
1116
  - spec/arachni/rpc/client/instance_spec.rb
@@ -1024,7 +1128,6 @@ files:
1024
1128
  - spec/arachni/rpc/server/plugin/manager_spec.rb
1025
1129
  - spec/arachni/ruby/array_spec.rb
1026
1130
  - spec/arachni/ruby/hash_spec.rb
1027
- - spec/arachni/ruby/io_spec.rb
1028
1131
  - spec/arachni/ruby/object_spec.rb
1029
1132
  - spec/arachni/ruby/set_spec.rb
1030
1133
  - spec/arachni/ruby/string_spec.rb
@@ -1050,6 +1153,7 @@ files:
1050
1153
  - spec/arachni/support/crypto/rsa_aes_cbc_spec.rb
1051
1154
  - spec/arachni/support/database/hash_spec.rb
1052
1155
  - spec/arachni/support/database/queue_spec.rb
1156
+ - spec/arachni/support/glob_spec.rb
1053
1157
  - spec/arachni/support/lookup/hash_set_spec.rb
1054
1158
  - spec/arachni/support/lookup/moolb_spec.rb
1055
1159
  - spec/arachni/support/mixins/observable_spec.rb
@@ -1282,6 +1386,7 @@ files:
1282
1386
  - spec/support/helpers/misc.rb
1283
1387
  - spec/support/helpers/pages.rb
1284
1388
  - spec/support/helpers/paths.rb
1389
+ - spec/support/helpers/request_helpers.rb
1285
1390
  - spec/support/helpers/requires.rb
1286
1391
  - spec/support/helpers/resets.rb
1287
1392
  - spec/support/helpers/web_server.rb
@@ -1461,6 +1566,7 @@ files:
1461
1566
  - spec/support/shared/element/dom.rb
1462
1567
  - spec/support/shared/element/dom/auditable.rb
1463
1568
  - spec/support/shared/element/dom/inputtable.rb
1569
+ - spec/support/shared/element/dom/locatable.rb
1464
1570
  - spec/support/shared/element/dom/mutable.rb
1465
1571
  - spec/support/shared/element/dom/submittable.rb
1466
1572
  - spec/support/shared/external/wavsep.rb
@@ -1479,6 +1585,8 @@ files:
1479
1585
  - ui/cli/output.rb
1480
1586
  - ui/cli/reporter.rb
1481
1587
  - ui/cli/reporter/option_parser.rb
1588
+ - ui/cli/rest/server.rb
1589
+ - ui/cli/rest/server/option_parser.rb
1482
1590
  - ui/cli/restored_framework.rb
1483
1591
  - ui/cli/restored_framework/option_parser.rb
1484
1592
  - ui/cli/rpc/client/dispatcher_monitor.rb
@@ -1510,7 +1618,7 @@ post_install_message: |2+
1510
1618
  (https://github.com/Arachni/arachni/blob/master/LICENSE.md)
1511
1619
  Author - Tasos "Zapotek" Laskos (http://twitter.com/Zap0tek)
1512
1620
  Twitter - http://twitter.com/ArachniScanner
1513
- Copyright - 2010-2015 Tasos Laskos
1621
+ Copyright - 2010-2016 Tasos Laskos
1514
1622
 
1515
1623
  Please do not hesitate to ask for assistance (via the support portal)
1516
1624
  or report a bug (via GitHub Issues) if you come across any problem.
@@ -1531,7 +1639,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1531
1639
  version: '0'
1532
1640
  requirements: []
1533
1641
  rubyforge_project:
1534
- rubygems_version: 2.4.8
1642
+ rubygems_version: 2.5.1
1535
1643
  signing_key:
1536
1644
  specification_version: 4
1537
1645
  summary: Arachni is a feature-full, modular, high-performance Ruby framework aimed
@@ -1741,6 +1849,7 @@ test_files:
1741
1849
  - spec/support/servers/arachni/parser.rb
1742
1850
  - spec/support/helpers/web_server.rb
1743
1851
  - spec/support/helpers/browser.rb
1852
+ - spec/support/helpers/request_helpers.rb
1744
1853
  - spec/support/helpers/paths.rb
1745
1854
  - spec/support/helpers/framework.rb
1746
1855
  - spec/support/helpers/pages.rb
@@ -1800,6 +1909,7 @@ test_files:
1800
1909
  - spec/support/shared/element/capabilities/with_dom.rb
1801
1910
  - spec/support/shared/element/capabilities/auditable.rb
1802
1911
  - spec/support/shared/element/dom/inputtable.rb
1912
+ - spec/support/shared/element/dom/locatable.rb
1803
1913
  - spec/support/shared/element/dom/mutable.rb
1804
1914
  - spec/support/shared/element/dom/submittable.rb
1805
1915
  - spec/support/shared/element/dom/auditable.rb
@@ -1953,6 +2063,7 @@ test_files:
1953
2063
  - spec/components/fingerprinters/frameworks/cherrypy_spec.rb
1954
2064
  - spec/spec_helper.rb
1955
2065
  - spec/arachni/session_spec.rb
2066
+ - spec/arachni/browser/javascript/polyfills_spec.rb
1956
2067
  - spec/arachni/browser/javascript/dom_monitor_spec.rb
1957
2068
  - spec/arachni/browser/javascript/proxy/stub_spec.rb
1958
2069
  - spec/arachni/browser/javascript/taint_tracer_spec.rb
@@ -2022,6 +2133,7 @@ test_files:
2022
2133
  - spec/arachni/support/lookup/moolb_spec.rb
2023
2134
  - spec/arachni/support/lookup/hash_set_spec.rb
2024
2135
  - spec/arachni/support/signature_spec.rb
2136
+ - spec/arachni/support/glob_spec.rb
2025
2137
  - spec/arachni/support/database/queue_spec.rb
2026
2138
  - spec/arachni/support/database/hash_spec.rb
2027
2139
  - spec/arachni/element/body_spec.rb
@@ -2029,7 +2141,7 @@ test_files:
2029
2141
  - spec/arachni/element/ui_form_spec.rb
2030
2142
  - spec/arachni/element/path_spec.rb
2031
2143
  - spec/arachni/element/ui_input_spec.rb
2032
- - spec/arachni/element/ui_form/ui_form_dom_spec.rb
2144
+ - spec/arachni/element/ui_form/dom_spec.rb
2033
2145
  - spec/arachni/element/link/dom_spec.rb
2034
2146
  - spec/arachni/element/form/dom_spec.rb
2035
2147
  - spec/arachni/element/ui_input/dom_spec.rb
@@ -2091,7 +2203,6 @@ test_files:
2091
2203
  - spec/arachni/http/headers_spec.rb
2092
2204
  - spec/arachni/scope_spec.rb
2093
2205
  - spec/arachni/ruby/webrick_spec.rb
2094
- - spec/arachni/ruby/io_spec.rb
2095
2206
  - spec/arachni/ruby/string_spec.rb
2096
2207
  - spec/arachni/ruby/hash_spec.rb
2097
2208
  - spec/arachni/ruby/object_spec.rb
@@ -2106,11 +2217,11 @@ test_files:
2106
2217
  - spec/arachni/issue_spec.rb
2107
2218
  - spec/arachni/browser_cluster/job_spec.rb
2108
2219
  - spec/arachni/browser_cluster/job/result_spec.rb
2109
- - spec/arachni/browser_cluster/jobs/resource_exploration_spec.rb
2110
2220
  - spec/arachni/browser_cluster/jobs/taint_tracer_spec.rb
2111
- - spec/arachni/browser_cluster/jobs/resource_exploration/result_spec.rb
2112
- - spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
2113
- - spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger/result_spec.rb
2221
+ - spec/arachni/browser_cluster/jobs/dom_exploration_spec.rb
2222
+ - spec/arachni/browser_cluster/jobs/dom_exploration/result_spec.rb
2223
+ - spec/arachni/browser_cluster/jobs/dom_exploration/event_trigger_spec.rb
2224
+ - spec/arachni/browser_cluster/jobs/dom_exploration/event_trigger/result_spec.rb
2114
2225
  - spec/arachni/browser_cluster/worker_spec.rb
2115
2226
  - spec/arachni/error_spec.rb
2116
2227
  - spec/arachni/plugin/manager_spec.rb
@@ -2121,4 +2232,6 @@ test_files:
2121
2232
  - spec/arachni/parser_spec.rb
2122
2233
  - spec/arachni/issue/severity/base_spec.rb
2123
2234
  - spec/arachni/issue/severity_spec.rb
2235
+ - spec/arachni/rest/server_spec.rb
2124
2236
  - spec/arachni/data_spec.rb
2237
+ has_rdoc: