arachni 1.3.2 → 1.4

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