arachni 1.4 → 1.6.0
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +195 -0
- data/Gemfile +4 -4
- data/LICENSE.md +1 -1
- data/README.md +7 -3
- data/Rakefile +1 -43
- data/arachni.gemspec +35 -30
- data/bin/arachni +1 -1
- data/bin/arachni_console +1 -1
- data/bin/arachni_multi +6 -1
- data/bin/arachni_reporter +1 -1
- data/bin/arachni_reproduce +12 -0
- data/bin/arachni_rest_server +1 -1
- data/bin/arachni_restore +1 -1
- data/bin/arachni_rpc +6 -1
- data/bin/arachni_rpcd +1 -1
- data/bin/arachni_rpcd_monitor +6 -1
- data/bin/arachni_script +1 -1
- data/components/checks/active/code_injection.rb +1 -1
- data/components/checks/active/code_injection_php_input_wrapper.rb +1 -1
- data/components/checks/active/code_injection_timing.rb +1 -1
- data/components/checks/active/csrf.rb +20 -75
- data/components/checks/active/file_inclusion.rb +1 -1
- data/components/checks/active/ldap_injection.rb +1 -1
- data/components/checks/active/no_sql_injection.rb +1 -1
- data/components/checks/active/no_sql_injection_differential.rb +3 -3
- data/components/checks/active/os_cmd_injection.rb +1 -1
- data/components/checks/active/os_cmd_injection_timing.rb +1 -1
- data/components/checks/active/path_traversal.rb +3 -3
- data/components/checks/active/response_splitting.rb +1 -1
- data/components/checks/active/rfi.rb +1 -1
- data/components/checks/active/session_fixation.rb +1 -1
- data/components/checks/active/source_code_disclosure.rb +1 -1
- data/components/checks/active/sql_injection/regexps/hsqldb.yaml +1 -0
- data/components/checks/active/sql_injection/substrings/hsqldb +1 -0
- data/components/checks/active/sql_injection/substrings/java +4 -0
- data/components/checks/active/sql_injection/substrings/oracle +0 -1
- data/components/checks/active/sql_injection/substrings/sqlite +1 -0
- data/components/checks/active/sql_injection.rb +1 -1
- data/components/checks/active/sql_injection_differential.rb +3 -3
- data/components/checks/active/sql_injection_timing.rb +1 -1
- data/components/checks/active/trainer.rb +1 -1
- data/components/checks/active/unvalidated_redirect.rb +34 -11
- data/components/checks/active/unvalidated_redirect_dom.rb +4 -4
- data/components/checks/active/xpath_injection.rb +1 -1
- data/components/checks/active/xss.rb +54 -29
- data/components/checks/active/xss_dom.rb +15 -11
- data/components/checks/active/xss_dom_script_context.rb +4 -6
- data/components/checks/active/xss_event.rb +46 -34
- data/components/checks/active/xss_path.rb +9 -6
- data/components/checks/active/xss_script_context.rb +100 -47
- data/components/checks/active/xss_tag.rb +41 -15
- data/components/checks/active/xxe.rb +1 -1
- data/components/checks/passive/allowed_methods.rb +1 -1
- data/components/checks/passive/backdoors.rb +1 -1
- data/components/checks/passive/backup_directories.rb +15 -3
- data/components/checks/passive/backup_files.rb +39 -6
- data/components/checks/passive/common_admin_interfaces/admin-panels.txt +1 -0
- data/components/checks/passive/common_admin_interfaces.rb +1 -1
- data/components/checks/passive/common_directories/directories.txt +1 -0
- data/components/checks/passive/common_directories.rb +1 -1
- data/components/checks/passive/common_files.rb +1 -1
- data/components/checks/passive/directory_listing.rb +1 -1
- data/components/checks/passive/grep/captcha.rb +8 -9
- data/components/checks/passive/grep/cookie_set_for_parent_domain.rb +1 -1
- data/components/checks/passive/grep/credit_card.rb +1 -1
- data/components/checks/passive/grep/cvs_svn_users.rb +1 -1
- data/components/checks/passive/grep/emails.rb +1 -1
- data/components/checks/passive/grep/form_upload.rb +3 -5
- data/components/checks/passive/grep/hsts.rb +1 -1
- data/components/checks/passive/grep/html_objects.rb +1 -1
- data/components/checks/passive/grep/http_only_cookies.rb +1 -1
- data/components/checks/passive/grep/insecure_cookies.rb +5 -5
- data/components/checks/passive/grep/insecure_cors_policy.rb +1 -1
- data/components/checks/passive/grep/mixed_resource.rb +4 -4
- data/components/checks/passive/grep/password_autocomplete.rb +1 -1
- data/components/checks/passive/grep/private_ip.rb +1 -1
- data/components/checks/passive/grep/ssn.rb +1 -1
- data/components/checks/passive/grep/unencrypted_password_forms.rb +3 -3
- data/components/checks/passive/grep/x_frame_options.rb +4 -4
- data/components/checks/passive/htaccess_limit.rb +1 -1
- data/components/checks/passive/http_put.rb +1 -1
- data/components/checks/passive/insecure_client_access_policy.rb +2 -2
- data/components/checks/passive/insecure_cross_domain_policy_access.rb +2 -2
- data/components/checks/passive/insecure_cross_domain_policy_headers.rb +2 -2
- data/components/checks/passive/interesting_responses.rb +1 -1
- data/components/checks/passive/localstart_asp.rb +1 -1
- data/components/checks/passive/origin_spoof_access_restriction_bypass.rb +1 -1
- data/components/checks/passive/webdav.rb +1 -1
- data/components/checks/passive/xst.rb +10 -12
- data/components/fingerprinters/frameworks/aspx_mvc.rb +1 -1
- data/components/fingerprinters/frameworks/cakephp.rb +1 -1
- data/components/fingerprinters/frameworks/cherrypy.rb +1 -1
- data/components/fingerprinters/frameworks/django.rb +1 -1
- data/components/fingerprinters/frameworks/jsf.rb +1 -1
- data/components/fingerprinters/frameworks/nette.rb +1 -1
- data/components/fingerprinters/frameworks/rack.rb +1 -1
- data/components/fingerprinters/frameworks/rails.rb +1 -1
- data/components/fingerprinters/frameworks/symfony.rb +1 -1
- data/components/fingerprinters/languages/asp.rb +1 -1
- data/components/fingerprinters/languages/aspx.rb +1 -1
- data/components/fingerprinters/languages/java.rb +1 -1
- data/components/fingerprinters/languages/php.rb +1 -1
- data/components/fingerprinters/languages/python.rb +1 -1
- data/components/fingerprinters/languages/ruby.rb +1 -1
- data/components/fingerprinters/os/bsd.rb +1 -1
- data/components/fingerprinters/os/linux.rb +1 -1
- data/components/fingerprinters/os/solaris.rb +1 -1
- data/components/fingerprinters/os/unix.rb +1 -1
- data/components/fingerprinters/os/windows.rb +1 -1
- data/components/fingerprinters/servers/apache.rb +1 -1
- data/components/fingerprinters/servers/gunicorn.rb +1 -1
- data/components/fingerprinters/servers/iis.rb +1 -1
- data/components/fingerprinters/servers/jetty.rb +1 -1
- data/components/fingerprinters/servers/nginx.rb +1 -1
- data/components/fingerprinters/servers/tomcat.rb +1 -1
- data/components/path_extractors/anchors.rb +3 -5
- data/components/path_extractors/areas.rb +3 -4
- data/components/path_extractors/comments.rb +4 -5
- data/components/path_extractors/data_url.rb +4 -5
- data/components/path_extractors/forms.rb +3 -4
- data/components/path_extractors/frames.rb +3 -5
- data/components/path_extractors/generic.rb +3 -1
- data/components/path_extractors/links.rb +3 -4
- data/components/path_extractors/meta_refresh.rb +11 -17
- data/components/path_extractors/scripts.rb +18 -15
- data/components/plugins/autologin.rb +3 -2
- data/components/plugins/beep_notify.rb +1 -1
- data/components/plugins/content_types.rb +1 -1
- data/components/plugins/cookie_collector.rb +1 -1
- data/components/plugins/debug/browser_cluster_job_monitor.rb +60 -0
- data/components/plugins/defaults/autothrottle.rb +1 -1
- data/components/plugins/defaults/healthmap.rb +3 -1
- data/components/plugins/defaults/meta/remedies/discovery.rb +1 -1
- data/components/plugins/defaults/meta/remedies/timing_attacks.rb +1 -1
- data/components/plugins/defaults/meta/uniformity.rb +1 -1
- data/components/plugins/email_notify.rb +26 -9
- data/components/plugins/exec.rb +1 -1
- data/components/plugins/form_dicattack.rb +3 -4
- data/components/plugins/headers_collector.rb +1 -1
- data/components/plugins/http_dicattack.rb +4 -5
- data/components/plugins/login_script.rb +2 -2
- data/components/plugins/metrics.rb +44 -18
- data/components/plugins/page_dump.rb +60 -0
- data/components/plugins/proxy/panel/verify_login_sequence.html.erb +1 -1
- data/components/plugins/proxy/template_scope.rb +6 -1
- data/components/plugins/proxy.rb +44 -31
- data/components/plugins/rate_limiter.rb +80 -0
- data/components/plugins/restrict_to_dom_state.rb +1 -1
- data/components/plugins/script.rb +1 -1
- data/components/plugins/uncommon_headers.rb +1 -1
- data/components/plugins/vector_collector.rb +1 -1
- data/components/plugins/vector_feed.rb +1 -1
- data/components/plugins/waf_detector.rb +3 -3
- data/components/plugins/webhook_notify.rb +99 -0
- data/components/reporters/ap.rb +1 -1
- data/components/reporters/html/default/configuration.erb +2 -0
- data/components/reporters/html/default.erb +3 -2
- data/components/reporters/html.rb +5 -8
- data/components/reporters/json.rb +1 -1
- data/components/reporters/marshal.rb +1 -1
- data/components/reporters/plugin_formatters/html/autologin.rb +1 -1
- data/components/reporters/plugin_formatters/html/content_types.rb +1 -1
- data/components/reporters/plugin_formatters/html/cookie_collector.rb +1 -1
- data/components/reporters/plugin_formatters/html/exec.rb +1 -1
- data/components/reporters/plugin_formatters/html/form_dicattack.rb +1 -1
- data/components/reporters/plugin_formatters/html/healthmap.rb +1 -1
- data/components/reporters/plugin_formatters/html/http_dicattack.rb +1 -1
- data/components/reporters/plugin_formatters/html/login_script.rb +1 -1
- data/components/reporters/plugin_formatters/html/metrics.rb +46 -1
- data/components/reporters/plugin_formatters/html/uncommon_headers.rb +1 -1
- data/components/reporters/plugin_formatters/html/uniformity.rb +1 -1
- data/components/reporters/plugin_formatters/html/vector_collector.rb +1 -1
- data/components/reporters/plugin_formatters/html/waf_detector.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/autologin.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/content_types.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/cookie_collector.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/exec.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/form_dicattack.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/healthmap.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/http_dicattack.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/login_script.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/metrics.rb +11 -1
- data/components/reporters/plugin_formatters/stdout/uncommon_headers.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/uniformity.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/vector_collector.rb +1 -1
- data/components/reporters/plugin_formatters/stdout/waf_detector.rb +1 -1
- data/components/reporters/plugin_formatters/xml/autologin.rb +1 -1
- data/components/reporters/plugin_formatters/xml/content_types.rb +10 -7
- data/components/reporters/plugin_formatters/xml/cookie_collector.rb +6 -3
- data/components/reporters/plugin_formatters/xml/exec.rb +1 -1
- data/components/reporters/plugin_formatters/xml/form_dicattack.rb +1 -1
- data/components/reporters/plugin_formatters/xml/healthmap.rb +1 -1
- data/components/reporters/plugin_formatters/xml/http_dicattack.rb +1 -1
- data/components/reporters/plugin_formatters/xml/login_script.rb +1 -1
- data/components/reporters/plugin_formatters/xml/metrics.rb +1 -1
- data/components/reporters/plugin_formatters/xml/uncommon_headers.rb +5 -2
- data/components/reporters/plugin_formatters/xml/uniformity.rb +1 -1
- data/components/reporters/plugin_formatters/xml/vector_collector.rb +8 -5
- data/components/reporters/plugin_formatters/xml/waf_detector.rb +1 -1
- data/components/reporters/stdout.rb +3 -2
- data/components/reporters/txt.rb +1 -1
- data/components/reporters/xml/schema.xsd +29 -13
- data/components/reporters/xml.rb +40 -23
- data/components/reporters/yaml.rb +1 -1
- data/config/write_paths.yml +4 -0
- data/lib/arachni/banner.rb +1 -1
- data/lib/arachni/browser/element_locator.rb +9 -5
- data/lib/arachni/browser/javascript/dom_monitor.rb +1 -1
- data/lib/arachni/browser/javascript/proxy/stub.rb +1 -1
- data/lib/arachni/browser/javascript/proxy.rb +1 -1
- data/lib/arachni/browser/javascript/scripts/dom_monitor.js +329 -72
- data/lib/arachni/browser/javascript/scripts/polyfills.js +0 -28
- data/lib/arachni/browser/javascript/scripts/taint_tracer.js +81 -25
- data/lib/arachni/browser/javascript/taint_tracer/frame/called_function.rb +1 -1
- data/lib/arachni/browser/javascript/taint_tracer/frame.rb +1 -1
- data/lib/arachni/browser/javascript/taint_tracer/sink/base.rb +1 -1
- data/lib/arachni/browser/javascript/taint_tracer/sink/data_flow.rb +1 -1
- data/lib/arachni/browser/javascript/taint_tracer/sink/execution_flow.rb +1 -1
- data/lib/arachni/browser/javascript/taint_tracer.rb +1 -1
- data/lib/arachni/browser/javascript.rb +111 -198
- data/lib/arachni/browser.rb +309 -382
- data/lib/arachni/browser_cluster/job/result.rb +1 -1
- data/lib/arachni/browser_cluster/job.rb +9 -2
- data/lib/arachni/browser_cluster/jobs/browser_provider.rb +8 -2
- data/lib/arachni/browser_cluster/jobs/dom_exploration/event_trigger/result.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/dom_exploration/event_trigger.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/dom_exploration/result.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/dom_exploration.rb +13 -1
- data/lib/arachni/browser_cluster/jobs/taint_trace/event_trigger/result.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/taint_trace/event_trigger.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/taint_trace/result.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/taint_trace.rb +1 -1
- data/lib/arachni/browser_cluster/worker.rb +97 -87
- data/lib/arachni/browser_cluster.rb +79 -62
- data/lib/arachni/check/auditor.rb +161 -155
- data/lib/arachni/check/base.rb +1 -1
- data/lib/arachni/check/manager.rb +1 -1
- data/lib/arachni/check.rb +1 -1
- data/lib/arachni/component/base.rb +3 -1
- data/lib/arachni/component/manager.rb +1 -1
- data/lib/arachni/component/options/address.rb +1 -1
- data/lib/arachni/component/options/base.rb +1 -1
- data/lib/arachni/component/options/bool.rb +1 -1
- data/lib/arachni/component/options/float.rb +1 -1
- data/lib/arachni/component/options/int.rb +1 -1
- data/lib/arachni/component/options/multiple_choice.rb +1 -1
- data/lib/arachni/component/options/object.rb +1 -1
- data/lib/arachni/component/options/path.rb +1 -1
- data/lib/arachni/component/options/port.rb +1 -1
- data/lib/arachni/component/options/string.rb +1 -1
- data/lib/arachni/component/options/url.rb +1 -1
- data/lib/arachni/component/options.rb +1 -1
- data/lib/arachni/component/output.rb +8 -2
- data/lib/arachni/component/utilities.rb +1 -1
- data/lib/arachni/component.rb +1 -1
- data/lib/arachni/data/framework/rpc.rb +2 -2
- data/lib/arachni/data/framework.rb +3 -2
- data/lib/arachni/data/issues.rb +1 -1
- data/lib/arachni/data/plugins.rb +1 -1
- data/lib/arachni/data/session.rb +1 -1
- data/lib/arachni/data.rb +1 -1
- data/lib/arachni/element/base.rb +1 -1
- data/lib/arachni/element/body.rb +1 -1
- data/lib/arachni/element/capabilities/analyzable/differential.rb +142 -175
- data/lib/arachni/element/capabilities/analyzable/signature.rb +40 -18
- data/lib/arachni/element/capabilities/analyzable/timeout.rb +1 -1
- data/lib/arachni/element/capabilities/analyzable.rb +1 -1
- data/lib/arachni/element/capabilities/auditable/buffered.rb +92 -0
- data/lib/arachni/element/capabilities/auditable/line_buffered.rb +103 -0
- data/lib/arachni/element/capabilities/auditable.rb +2 -8
- data/lib/arachni/element/capabilities/dom_only.rb +1 -1
- data/lib/arachni/element/capabilities/inputtable.rb +6 -2
- data/lib/arachni/element/capabilities/mutable.rb +1 -1
- data/lib/arachni/element/capabilities/refreshable.rb +1 -1
- data/lib/arachni/element/capabilities/submittable.rb +1 -1
- data/lib/arachni/element/capabilities/with_auditor/output.rb +4 -3
- data/lib/arachni/element/capabilities/with_auditor.rb +1 -1
- data/lib/arachni/element/capabilities/with_dom.rb +1 -1
- data/lib/arachni/element/capabilities/with_node.rb +3 -3
- data/lib/arachni/element/capabilities/with_scope/scope.rb +1 -1
- data/lib/arachni/element/capabilities/with_scope.rb +1 -1
- data/lib/arachni/element/capabilities/with_source.rb +2 -2
- data/lib/arachni/element/cookie/capabilities/inputtable.rb +1 -1
- data/lib/arachni/element/cookie/capabilities/mutable.rb +1 -1
- data/lib/arachni/element/cookie/capabilities/with_dom.rb +1 -1
- data/lib/arachni/element/cookie/dom.rb +1 -1
- data/lib/arachni/element/cookie.rb +49 -24
- data/lib/arachni/element/dom/capabilities/auditable.rb +44 -3
- data/lib/arachni/element/dom/capabilities/inputtable.rb +1 -1
- data/lib/arachni/element/dom/capabilities/locatable.rb +1 -1
- data/lib/arachni/element/dom/capabilities/mutable.rb +7 -3
- data/lib/arachni/element/dom/capabilities/submittable.rb +51 -22
- data/lib/arachni/element/dom.rb +1 -1
- data/lib/arachni/element/form/capabilities/auditable.rb +1 -1
- data/lib/arachni/element/form/capabilities/mutable.rb +16 -11
- data/lib/arachni/element/form/capabilities/submittable.rb +1 -1
- data/lib/arachni/element/form/capabilities/with_dom.rb +1 -1
- data/lib/arachni/element/form/dom.rb +1 -1
- data/lib/arachni/element/form.rb +21 -32
- data/lib/arachni/element/generic_dom.rb +1 -1
- data/lib/arachni/element/header/capabilities/inputtable.rb +1 -1
- data/lib/arachni/element/header/capabilities/mutable.rb +1 -1
- data/lib/arachni/element/header.rb +3 -1
- data/lib/arachni/element/json/capabilities/inputtable.rb +1 -1
- data/lib/arachni/element/json/capabilities/mutable.rb +1 -1
- data/lib/arachni/element/json.rb +4 -8
- data/lib/arachni/element/link/capabilities/auditable.rb +1 -1
- data/lib/arachni/element/link/capabilities/submittable.rb +1 -1
- data/lib/arachni/element/link/capabilities/with_dom.rb +1 -1
- data/lib/arachni/element/link/dom/capabilities/submittable.rb +1 -1
- data/lib/arachni/element/link/dom.rb +1 -1
- data/lib/arachni/element/link.rb +11 -30
- data/lib/arachni/element/link_template/capabilities/auditable.rb +1 -1
- data/lib/arachni/element/link_template/capabilities/inputtable.rb +1 -1
- data/lib/arachni/element/link_template/capabilities/with_dom.rb +1 -1
- data/lib/arachni/element/link_template/dom/capabilities/submittable.rb +1 -1
- data/lib/arachni/element/link_template/dom.rb +2 -2
- data/lib/arachni/element/link_template.rb +10 -19
- data/lib/arachni/element/nested_cookie/capabilities/submittable.rb +35 -0
- data/lib/arachni/element/nested_cookie.rb +370 -0
- data/lib/arachni/element/path.rb +1 -1
- data/lib/arachni/element/server.rb +11 -11
- data/lib/arachni/element/ui_form/dom.rb +1 -1
- data/lib/arachni/element/ui_form.rb +5 -6
- data/lib/arachni/element/ui_input/dom.rb +1 -1
- data/lib/arachni/element/ui_input.rb +4 -6
- data/lib/arachni/element/xml/capabilities/inputtable.rb +1 -1
- data/lib/arachni/element/xml/capabilities/mutable.rb +1 -1
- data/lib/arachni/element/xml.rb +3 -7
- data/lib/arachni/element_filter.rb +1 -1
- data/lib/arachni/error.rb +1 -1
- data/lib/arachni/ethon/easy.rb +1 -1
- data/lib/arachni/framework/parts/audit.rb +6 -1
- data/lib/arachni/framework/parts/browser.rb +14 -14
- data/lib/arachni/framework/parts/check.rb +1 -1
- data/lib/arachni/framework/parts/data.rb +1 -1
- data/lib/arachni/framework/parts/platform.rb +1 -1
- data/lib/arachni/framework/parts/plugin.rb +1 -1
- data/lib/arachni/framework/parts/report.rb +3 -3
- data/lib/arachni/framework/parts/scope.rb +1 -1
- data/lib/arachni/framework/parts/state.rb +1 -1
- data/lib/arachni/framework.rb +1 -1
- data/lib/arachni/http/client/dynamic_404_handler.rb +74 -16
- data/lib/arachni/http/client.rb +38 -11
- data/lib/arachni/http/cookie_jar.rb +13 -8
- data/lib/arachni/http/headers.rb +11 -5
- data/lib/arachni/http/message/scope.rb +1 -1
- data/lib/arachni/http/message.rb +10 -9
- data/lib/arachni/http/proxy_server/connection.rb +110 -82
- data/lib/arachni/http/proxy_server/ssl-interceptor-cacert.pem +18 -32
- data/lib/arachni/http/proxy_server/ssl-interceptor-cakey.pem +28 -49
- data/lib/arachni/http/proxy_server/ssl_interceptor.rb +8 -6
- data/lib/arachni/http/proxy_server/tunnel.rb +4 -4
- data/lib/arachni/http/proxy_server.rb +44 -11
- data/lib/arachni/http/request/scope.rb +1 -1
- data/lib/arachni/http/request.rb +239 -41
- data/lib/arachni/http/response/scope.rb +1 -1
- data/lib/arachni/http/response.rb +73 -10
- data/lib/arachni/http.rb +1 -1
- data/lib/arachni/issue/severity/base.rb +1 -1
- data/lib/arachni/issue/severity.rb +1 -1
- data/lib/arachni/issue.rb +42 -14
- data/lib/arachni/option_group.rb +1 -1
- data/lib/arachni/option_groups/audit.rb +11 -2
- data/lib/arachni/option_groups/browser_cluster.rb +32 -4
- data/lib/arachni/option_groups/datastore.rb +1 -1
- data/lib/arachni/option_groups/dispatcher.rb +1 -1
- data/lib/arachni/option_groups/http.rb +39 -10
- data/lib/arachni/option_groups/input.rb +1 -1
- data/lib/arachni/option_groups/output.rb +1 -1
- data/lib/arachni/option_groups/paths.rb +12 -1
- data/lib/arachni/option_groups/rpc.rb +1 -1
- data/lib/arachni/option_groups/scope.rb +58 -4
- data/lib/arachni/option_groups/session.rb +1 -1
- data/lib/arachni/option_groups/snapshot.rb +1 -1
- data/lib/arachni/option_groups.rb +1 -1
- data/lib/arachni/options.rb +23 -4
- data/lib/arachni/page/dom/transition.rb +5 -2
- data/lib/arachni/page/dom.rb +46 -54
- data/lib/arachni/page/scope.rb +1 -1
- data/lib/arachni/page.rb +10 -8
- data/lib/arachni/parser/document.rb +34 -0
- data/lib/arachni/parser/extractors/base.rb +48 -0
- data/lib/arachni/parser/nodes/base.rb +22 -0
- data/lib/arachni/parser/nodes/comment.rb +32 -0
- data/lib/arachni/parser/nodes/element/with_attributes/attributes.rb +31 -0
- data/lib/arachni/parser/nodes/element/with_attributes.rb +35 -0
- data/lib/arachni/parser/nodes/element.rb +48 -0
- data/lib/arachni/parser/nodes/text.rb +32 -0
- data/lib/arachni/parser/nodes/with_value.rb +29 -0
- data/lib/arachni/parser/sax.rb +76 -0
- data/lib/arachni/parser/with_children/search.rb +92 -0
- data/lib/arachni/parser/with_children.rb +35 -0
- data/lib/arachni/parser.rb +181 -78
- data/lib/arachni/platform/fingerprinter.rb +1 -1
- data/lib/arachni/platform/list.rb +1 -1
- data/lib/arachni/platform/manager.rb +2 -2
- data/lib/arachni/platform.rb +1 -1
- data/lib/arachni/plugin/base.rb +2 -2
- data/lib/arachni/plugin/formatter.rb +1 -1
- data/lib/arachni/plugin/manager.rb +8 -5
- data/lib/arachni/plugin.rb +1 -1
- data/lib/arachni/processes/dispatchers.rb +1 -1
- data/lib/arachni/processes/executables/base.rb +2 -1
- data/lib/arachni/processes/executables/browser.rb +0 -2
- data/lib/arachni/processes/helpers/dispatchers.rb +1 -1
- data/lib/arachni/processes/helpers/instances.rb +1 -1
- data/lib/arachni/processes/helpers/processes.rb +1 -1
- data/lib/arachni/processes/helpers.rb +1 -1
- data/lib/arachni/processes/instances.rb +1 -1
- data/lib/arachni/processes/manager.rb +18 -9
- data/lib/arachni/processes.rb +1 -1
- data/lib/arachni/report.rb +8 -1
- data/lib/arachni/reporter/base.rb +1 -1
- data/lib/arachni/reporter/formatter_manager.rb +1 -1
- data/lib/arachni/reporter/manager.rb +1 -1
- data/lib/arachni/reporter/options.rb +1 -10
- data/lib/arachni/reporter.rb +1 -1
- data/lib/arachni/rest/server/instance_helpers.rb +10 -1
- data/lib/arachni/rest/server.rb +13 -1
- data/lib/arachni/rpc/client/base.rb +1 -1
- data/lib/arachni/rpc/client/dispatcher.rb +1 -1
- data/lib/arachni/rpc/client/instance/framework.rb +1 -1
- data/lib/arachni/rpc/client/instance/service.rb +1 -1
- data/lib/arachni/rpc/client/instance.rb +1 -1
- data/lib/arachni/rpc/serializer.rb +1 -1
- data/lib/arachni/rpc/server/active_options.rb +1 -1
- data/lib/arachni/rpc/server/base.rb +1 -1
- data/lib/arachni/rpc/server/check/manager.rb +1 -1
- data/lib/arachni/rpc/server/dispatcher/node.rb +1 -1
- data/lib/arachni/rpc/server/dispatcher/service.rb +1 -1
- data/lib/arachni/rpc/server/dispatcher.rb +1 -1
- data/lib/arachni/rpc/server/framework/distributor.rb +1 -1
- data/lib/arachni/rpc/server/framework/master.rb +1 -1
- data/lib/arachni/rpc/server/framework/multi_instance.rb +1 -1
- data/lib/arachni/rpc/server/framework/slave.rb +1 -1
- data/lib/arachni/rpc/server/framework.rb +1 -1
- data/lib/arachni/rpc/server/instance.rb +1 -1
- data/lib/arachni/rpc/server/output.rb +1 -1
- data/lib/arachni/rpc/server/plugin/manager.rb +1 -1
- data/lib/arachni/ruby/array.rb +1 -1
- data/lib/arachni/ruby/hash.rb +1 -1
- data/lib/arachni/ruby/object.rb +1 -1
- data/lib/arachni/ruby/set.rb +1 -1
- data/lib/arachni/ruby/string.rb +9 -5
- data/lib/arachni/ruby/webrick/cookie.rb +1 -1
- data/lib/arachni/ruby/webrick/httprequest.rb +1 -1
- data/lib/arachni/ruby/webrick.rb +1 -1
- data/lib/arachni/ruby.rb +1 -1
- data/lib/arachni/scope.rb +1 -1
- data/lib/arachni/selenium/webdriver/element.rb +4 -4
- data/lib/arachni/selenium/webdriver/remote/typhoeus.rb +59 -0
- data/lib/arachni/session.rb +32 -13
- data/lib/arachni/snapshot.rb +2 -2
- data/lib/arachni/state/audit.rb +1 -1
- data/lib/arachni/state/element_filter.rb +1 -1
- data/lib/arachni/state/framework/rpc.rb +1 -1
- data/lib/arachni/state/framework.rb +1 -1
- data/lib/arachni/state/http.rb +2 -2
- data/lib/arachni/state/options.rb +1 -1
- data/lib/arachni/state/plugins.rb +1 -1
- data/lib/arachni/state.rb +1 -1
- data/lib/arachni/support/buffer/autoflush.rb +1 -1
- data/lib/arachni/support/buffer/base.rb +1 -1
- data/lib/arachni/support/buffer.rb +1 -1
- data/lib/arachni/support/cache/base.rb +1 -1
- data/lib/arachni/support/cache/least_cost_replacement.rb +1 -1
- data/lib/arachni/support/cache/least_recently_pushed.rb +1 -1
- data/lib/arachni/support/cache/least_recently_used.rb +1 -1
- data/lib/arachni/support/cache/preference.rb +1 -1
- data/lib/arachni/support/cache/random_replacement.rb +1 -1
- data/lib/arachni/support/cache.rb +1 -1
- data/lib/arachni/support/crypto/rsa_aes_cbc.rb +1 -1
- data/lib/arachni/support/crypto.rb +1 -1
- data/lib/arachni/support/database/base.rb +16 -10
- data/lib/arachni/support/database/hash.rb +1 -1
- data/lib/arachni/support/database/queue.rb +1 -1
- data/lib/arachni/support/database.rb +1 -1
- data/lib/arachni/support/glob.rb +1 -1
- data/lib/arachni/support/lookup/base.rb +1 -1
- data/lib/arachni/support/lookup/hash_set.rb +1 -1
- data/lib/arachni/support/lookup/moolb.rb +1 -1
- data/lib/arachni/support/lookup.rb +1 -1
- data/lib/arachni/support/mixins/observable.rb +1 -1
- data/lib/arachni/support/mixins/terminal.rb +1 -1
- data/lib/arachni/support/mixins.rb +1 -1
- data/lib/arachni/support/profiler.rb +52 -13
- data/lib/arachni/support/signature.rb +18 -6
- data/lib/arachni/support.rb +1 -1
- data/lib/arachni/trainer.rb +55 -39
- data/lib/arachni/ui/foo/output.rb +1 -1
- data/lib/arachni/uri/scope.rb +15 -13
- data/lib/arachni/uri.rb +129 -103
- data/lib/arachni/utilities.rb +10 -10
- data/lib/arachni/version.rb +1 -1
- data/lib/arachni.rb +1 -7
- data/lib/version +1 -1
- data/spec/arachni/browser/element_locator_spec.rb +42 -18
- data/spec/arachni/browser/javascript/dom_monitor_spec.rb +264 -109
- data/spec/arachni/browser/javascript/polyfills_spec.rb +0 -15
- data/spec/arachni/browser/javascript/proxy_spec.rb +0 -10
- data/spec/arachni/browser/javascript/taint_tracer_spec.rb +43 -118
- data/spec/arachni/browser/javascript_spec.rb +95 -60
- data/spec/arachni/browser_cluster/job_spec.rb +23 -8
- data/spec/arachni/browser_cluster/jobs/dom_exploration_spec.rb +6 -1
- data/spec/arachni/browser_cluster/worker_spec.rb +29 -87
- data/spec/arachni/browser_cluster_spec.rb +124 -43
- data/spec/arachni/browser_spec.rb +463 -421
- data/spec/arachni/check/auditor_spec.rb +162 -198
- data/spec/arachni/data/framework/rpc_spec.rb +1 -1
- data/spec/arachni/data/framework_spec.rb +1 -1
- data/spec/arachni/element/capabilities/analyzable/signature_spec.rb +46 -3
- data/spec/arachni/element/cookie/dom_spec.rb +1 -1
- data/spec/arachni/element/cookie_spec.rb +159 -64
- data/spec/arachni/element/form/dom_spec.rb +1 -1
- data/spec/arachni/element/form_spec.rb +101 -54
- data/spec/arachni/element/header_spec.rb +3 -1
- data/spec/arachni/element/json_spec.rb +2 -0
- data/spec/arachni/element/link/dom_spec.rb +2 -2
- data/spec/arachni/element/link_spec.rb +46 -15
- data/spec/arachni/element/link_template/dom_spec.rb +1 -1
- data/spec/arachni/element/link_template_spec.rb +36 -12
- data/spec/arachni/element/nested_cookie_spec.rb +687 -0
- data/spec/arachni/element/server_spec.rb +22 -5
- data/spec/arachni/element/ui_form/dom_spec.rb +1 -1
- data/spec/arachni/element/ui_form_spec.rb +2 -2
- data/spec/arachni/element/ui_input/dom_spec.rb +1 -1
- data/spec/arachni/element/ui_input_spec.rb +1 -1
- data/spec/arachni/element/xml_spec.rb +5 -3
- data/spec/arachni/framework/parts/audit_spec.rb +2 -14
- data/spec/arachni/framework/parts/data_spec.rb +0 -6
- data/spec/arachni/http/client/dynamic_404_handlers_spec.rb +126 -0
- data/spec/arachni/http/client_spec.rb +96 -36
- data/spec/arachni/http/cookie_jar_spec.rb +2 -2
- data/spec/arachni/http/headers_spec.rb +59 -12
- data/spec/arachni/http/proxy_server_spec.rb +58 -25
- data/spec/arachni/http/request_spec.rb +382 -35
- data/spec/arachni/http/response_spec.rb +135 -7
- data/spec/arachni/issue_spec.rb +21 -2
- data/spec/arachni/option_groups/browser_cluster_spec.rb +17 -0
- data/spec/arachni/option_groups/http_spec.rb +21 -6
- data/spec/arachni/option_groups/paths_spec.rb +23 -1
- data/spec/arachni/option_groups/scope_spec.rb +27 -7
- data/spec/arachni/options_spec.rb +8 -1
- data/spec/arachni/page/dom_spec.rb +20 -6
- data/spec/arachni/page_spec.rb +8 -7
- data/spec/arachni/parser/document_spec.rb +49 -0
- data/spec/arachni/parser/nodes/comment_spec.rb +24 -0
- data/spec/arachni/parser/nodes/element/with_attributes/attributes_spec.rb +40 -0
- data/spec/arachni/parser/nodes/element/with_attributes_spec.rb +50 -0
- data/spec/arachni/parser/nodes/element_spec.rb +18 -0
- data/spec/arachni/parser/nodes/text_spec.rb +24 -0
- data/spec/arachni/parser/sax_spec.rb +88 -0
- data/spec/arachni/parser/with_children/search_spec.rb +146 -0
- data/spec/arachni/parser/with_children_spec.rb +37 -0
- data/spec/arachni/parser_spec.rb +211 -27
- data/spec/arachni/platform/list_spec.rb +1 -2
- data/spec/arachni/report_spec.rb +9 -2
- data/spec/arachni/reporter/options_spec.rb +0 -14
- data/spec/arachni/rest/server_spec.rb +91 -8
- data/spec/arachni/rpc/server/active_options_spec.rb +1 -1
- data/spec/arachni/rpc/server/framework/distributor_spec.rb +6 -6
- data/spec/arachni/ruby/string_spec.rb +6 -0
- data/spec/arachni/session_spec.rb +69 -8
- data/spec/arachni/snapshot_spec.rb +1 -1
- data/spec/arachni/state/framework_spec.rb +2 -2
- data/spec/arachni/support/signature_spec.rb +58 -0
- data/spec/arachni/trainer_spec.rb +102 -21
- data/spec/arachni/uri_spec.rb +11 -8
- data/spec/arachni/utilities_spec.rb +3 -3
- data/spec/components/checks/active/code_injection_spec.rb +12 -7
- data/spec/components/checks/active/code_injection_timing_spec.rb +4 -3
- data/spec/components/checks/active/csrf_spec.rb +1 -21
- data/spec/components/checks/active/file_inclusion_spec.rb +15 -10
- data/spec/components/checks/active/ldap_injection_spec.rb +5 -4
- data/spec/components/checks/active/no_sql_injection_differential_spec.rb +1 -1
- data/spec/components/checks/active/no_sql_injection_spec.rb +5 -4
- data/spec/components/checks/active/os_cmd_injection_spec.rb +6 -4
- data/spec/components/checks/active/os_cmd_injection_timing_spec.rb +4 -3
- data/spec/components/checks/active/path_traversal_spec.rb +18 -15
- data/spec/components/checks/active/response_splitting_spec.rb +5 -4
- data/spec/components/checks/active/rfi_spec.rb +9 -8
- data/spec/components/checks/active/source_code_disclosure_spec.rb +33 -10
- data/spec/components/checks/active/sql_injection_differential_spec.rb +1 -1
- data/spec/components/checks/active/sql_injection_spec.rb +61 -35
- data/spec/components/checks/active/sql_injection_timing_spec.rb +11 -8
- data/spec/components/checks/active/unvalidated_redirect_spec.rb +9 -8
- data/spec/components/checks/active/xpath_injection_spec.rb +5 -4
- data/spec/components/checks/active/xss_dom_script_context_spec.rb +6 -10
- data/spec/components/checks/active/xss_dom_spec.rb +2 -2
- data/spec/components/checks/active/xss_event_spec.rb +11 -3
- data/spec/components/checks/active/xss_script_context_spec.rb +8 -7
- data/spec/components/checks/active/xss_spec.rb +7 -6
- data/spec/components/checks/active/xss_tag_spec.rb +11 -3
- data/spec/components/checks/passive/backup_directories_spec.rb +3 -1
- data/spec/components/checks/passive/backup_files_spec.rb +4 -1
- data/spec/components/checks/passive/grep/insecure_cookies_spec.rb +2 -2
- data/spec/components/checks/passive/grep/x_frame_options_spec.rb +6 -0
- data/spec/components/path_extractors/comments_spec.rb +3 -1
- data/spec/components/path_extractors/data_url_spec.rb +6 -2
- data/spec/components/path_extractors/links_spec.rb +1 -1
- data/spec/components/plugins/autologin_spec.rb +2 -2
- data/spec/components/plugins/webhook_notify_spec.rb +69 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/support/factories/http/response.rb +1 -1
- data/spec/support/factories/issue.rb +1 -2
- data/spec/support/factories/page/dom.rb +6 -0
- data/spec/support/factories/scan_report.rb +1 -0
- data/spec/support/factories/vector.rb +7 -3
- data/spec/support/fixtures/check_with_invalid_platforms/with_invalid_platforms.rb +1 -1
- data/spec/support/fixtures/checks/test.rb +4 -4
- data/spec/support/fixtures/checks/test2.rb +1 -1
- data/spec/support/fixtures/checks/test3.rb +1 -1
- data/spec/support/fixtures/cookies.txt +2 -2
- data/spec/support/fixtures/executables/node.rb +2 -3
- data/spec/support/fixtures/fingerprinters/test.rb +1 -1
- data/spec/support/fixtures/nested_cookies.txt +11 -0
- data/spec/support/fixtures/plugins/bad.rb +1 -1
- data/spec/support/fixtures/plugins/defaults/default.rb +1 -1
- data/spec/support/fixtures/plugins/distributable.rb +1 -1
- data/spec/support/fixtures/plugins/loop.rb +1 -1
- data/spec/support/fixtures/plugins/suspendable.rb +1 -1
- data/spec/support/fixtures/plugins/wait.rb +1 -1
- data/spec/support/fixtures/plugins/with_options.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p0.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p00.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p1.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p2.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p22.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p222.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p_nil.rb +1 -1
- data/spec/support/fixtures/plugins_with_priorities/p_nil2.rb +1 -1
- data/spec/support/fixtures/report.afr +0 -0
- data/spec/support/fixtures/reporters/base_spec/plugin_formatters/with_formatters/foobar.rb +1 -1
- data/spec/support/fixtures/reporters/base_spec/with_formatters.rb +1 -1
- data/spec/support/fixtures/reporters/base_spec/with_outfile.rb +1 -1
- data/spec/support/fixtures/reporters/base_spec/without_outfile.rb +1 -1
- data/spec/support/fixtures/reporters/manager_spec/afr.rb +1 -1
- data/spec/support/fixtures/reporters/manager_spec/error.rb +1 -1
- data/spec/support/fixtures/reporters/manager_spec/foo.rb +1 -1
- data/spec/support/fixtures/run_check/body.rb +1 -1
- data/spec/support/fixtures/run_check/cookies.rb +1 -1
- data/spec/support/fixtures/run_check/empty.rb +1 -1
- data/spec/support/fixtures/run_check/flch.rb +1 -1
- data/spec/support/fixtures/run_check/forms.rb +1 -1
- data/spec/support/fixtures/run_check/headers.rb +1 -1
- data/spec/support/fixtures/run_check/links.rb +1 -1
- data/spec/support/fixtures/run_check/nil.rb +1 -1
- data/spec/support/fixtures/run_check/path.rb +1 -1
- data/spec/support/fixtures/run_check/server.rb +1 -1
- data/spec/support/fixtures/signature_check/signature.rb +1 -1
- data/spec/support/fixtures/wait_check/wait.rb +1 -1
- data/spec/support/helpers/browser_cluster/jobs/taint_tracer.rb +0 -3
- data/spec/support/helpers/framework.rb +1 -1
- data/spec/support/helpers/misc.rb +1 -1
- data/spec/support/helpers/paths.rb +1 -1
- data/spec/support/helpers/requires.rb +1 -1
- data/spec/support/helpers/resets.rb +1 -1
- data/spec/support/helpers/web_server.rb +1 -1
- data/spec/support/lib/factory.rb +1 -1
- data/spec/support/lib/web_server_client.rb +1 -1
- data/spec/support/lib/web_server_dispatcher.rb +1 -1
- data/spec/support/lib/web_server_manager.rb +4 -2
- data/spec/support/servers/arachni/browser/javascript/dom_monitor.rb +48 -0
- data/spec/support/servers/arachni/browser/javascript/taint_tracer.rb +15 -3
- data/spec/support/servers/arachni/browser.rb +275 -4
- data/spec/support/servers/arachni/check/auditor.rb +9 -0
- data/spec/support/servers/arachni/element/cookie.rb +34 -0
- data/spec/support/servers/arachni/element/form/form_dom.rb +1 -0
- data/spec/support/servers/arachni/element/form.rb +36 -2
- data/spec/support/servers/arachni/element/header.rb +36 -1
- data/spec/support/servers/arachni/element/json.rb +33 -0
- data/spec/support/servers/arachni/element/link.rb +33 -1
- data/spec/support/servers/arachni/element/link_template.rb +37 -5
- data/spec/support/servers/arachni/element/nested_cookie.rb +84 -0
- data/spec/support/servers/arachni/element/xml.rb +33 -0
- data/spec/support/servers/arachni/http/client/dynamic_404_handler.rb +36 -0
- data/spec/support/servers/arachni/http/client/dynamic_404_handler_redirect_1.rb +18 -0
- data/spec/support/servers/arachni/http/client/dynamic_404_handler_redirect_2.rb +11 -0
- data/spec/support/servers/arachni/http/client.rb +43 -4
- data/spec/support/servers/arachni/http/proxy_server.rb +12 -0
- data/spec/support/servers/arachni/parser.rb +6 -0
- data/spec/support/servers/arachni/session.rb +24 -1
- data/spec/support/servers/checks/active/code_injection.rb +18 -0
- data/spec/support/servers/checks/active/code_injection_timing.rb +18 -0
- data/spec/support/servers/checks/active/csrf.rb +0 -76
- data/spec/support/servers/checks/active/file_inclusion.rb +19 -1
- data/spec/support/servers/checks/active/ldap_injection.rb +18 -0
- data/spec/support/servers/checks/active/no_sql_injection.rb +27 -0
- data/spec/support/servers/checks/active/no_sql_injection_differential.rb +19 -0
- data/spec/support/servers/checks/active/os_cmd_injection.rb +29 -0
- data/spec/support/servers/checks/active/os_cmd_injection_timing.rb +18 -1
- data/spec/support/servers/checks/active/path_traversal.rb +30 -3
- data/spec/support/servers/checks/active/response_splitting.rb +30 -1
- data/spec/support/servers/checks/active/rfi.rb +30 -2
- data/spec/support/servers/checks/active/session_fixation.rb +1 -3
- data/spec/support/servers/checks/active/source_code_disclosure.rb +16 -0
- data/spec/support/servers/checks/active/sql_injection/java +2 -0
- data/spec/support/servers/checks/active/sql_injection.rb +27 -0
- data/spec/support/servers/checks/active/sql_injection_differential.rb +19 -0
- data/spec/support/servers/checks/active/sql_injection_timing.rb +19 -1
- data/spec/support/servers/checks/active/unvalidated_redirect.rb +121 -1
- data/spec/support/servers/checks/active/xpath_injection.rb +27 -0
- data/spec/support/servers/checks/active/xss.rb +40 -0
- data/spec/support/servers/checks/active/xss_event.rb +23 -2
- data/spec/support/servers/checks/active/xss_script_context.rb +18 -0
- data/spec/support/servers/checks/active/xss_tag.rb +40 -0
- data/spec/support/servers/checks/passive/backup_files.rb +20 -1
- data/spec/support/servers/checks/passive/grep/cookie_set_for_parent_domain.rb +3 -5
- data/spec/support/servers/checks/passive/grep/insecure_cookies_https.rb +9 -0
- data/spec/support/servers/checks/passive/grep/x_frame_options.rb +5 -0
- data/spec/support/servers/plugins/autologin.rb +17 -1
- data/spec/support/servers/plugins/webhook_notify.rb +9 -0
- data/spec/support/shared/check.rb +1 -0
- data/spec/support/shared/element/capabilities/auditable/buffered.rb +791 -0
- data/spec/support/shared/element/capabilities/auditable/line_buffered.rb +797 -0
- data/spec/support/shared/element/capabilities/auditable.rb +28 -34
- data/spec/support/shared/element/capabilities/inputtable.rb +26 -0
- data/spec/support/shared/element/capabilities/with_node.rb +2 -2
- data/spec/support/shared/element/dom/submittable.rb +10 -10
- data/spec/support/shared/path_extractor.rb +17 -5
- data/ui/cli/framework/option_parser.rb +78 -13
- data/ui/cli/framework.rb +29 -8
- data/ui/cli/option_parser.rb +1 -1
- data/ui/cli/output.rb +10 -3
- data/ui/cli/reporter/option_parser.rb +1 -1
- data/ui/cli/reporter.rb +1 -1
- data/ui/cli/reproduce/option_parser.rb +90 -0
- data/ui/cli/reproduce.rb +228 -0
- data/ui/cli/rest/server/option_parser.rb +1 -1
- data/ui/cli/rest/server.rb +1 -1
- data/ui/cli/restored_framework/option_parser.rb +1 -1
- data/ui/cli/restored_framework.rb +1 -1
- data/ui/cli/rpc/client/dispatcher_monitor/option_parser.rb +1 -1
- data/ui/cli/rpc/client/dispatcher_monitor.rb +9 -11
- data/ui/cli/rpc/client/instance.rb +7 -4
- data/ui/cli/rpc/client/local/option_parser.rb +1 -1
- data/ui/cli/rpc/client/local.rb +1 -1
- data/ui/cli/rpc/client/remote/option_parser.rb +1 -1
- data/ui/cli/rpc/client/remote.rb +1 -1
- data/ui/cli/rpc/server/dispatcher/option_parser.rb +1 -1
- data/ui/cli/rpc/server/dispatcher.rb +1 -1
- data/ui/cli/utilities.rb +1 -1
- metadata +178 -79
- data/ACKNOWLEDGMENTS.md +0 -21
- data/AUTHORS.md +0 -3
- data/CONTRIBUTORS.md +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dd7e309d9d2b470547087e8876ff7cd964633f3a957fb66f68b408908e65ec7a
|
4
|
+
data.tar.gz: 70dd90857dcec49ffe11838b58fa4446af926bc16f09b7c1d4445f7175835eca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 184b53b149a25cd512a88e96109e1289322d5cd403e96176a395656081531d917982b298924e80aff2fc4750f30ffa3ead392780737e4321d577051856e4be38
|
7
|
+
data.tar.gz: 3aaf63cc591b6af068ed2e048b7cca228d78f870cb6a706290fee6618ce5c436f8a57b2425a4511e6adc2279da17795de283fb93d0c921544621c961eb828d23
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,199 @@
|
|
1
1
|
# ChangeLog
|
2
2
|
|
3
|
+
## 1.6.0 _(March 4, 2022)_
|
4
|
+
|
5
|
+
- Options
|
6
|
+
- Scope
|
7
|
+
- `--scope-dom-depth-limit` -- Changed default from `5` to `4`.
|
8
|
+
- `--scope-auto-redundant` -- Changed default from `inf` to `15`.
|
9
|
+
- `--scope-directory-depth-limit` -- Changed default from `inf` to `10`.
|
10
|
+
- Browser cluster
|
11
|
+
- `--browser-cluster-pool-size` -- Changed default from `5` to `4`.
|
12
|
+
- HTTP
|
13
|
+
- `--http-max-concurrency` -- Changed default from `20` to `10`.
|
14
|
+
- New
|
15
|
+
- `--scope-dom-event-inheritance-limit` -- Limits the amount of inherited events.
|
16
|
+
- `--browser-cluster-session-storage` -- Sets the browsers' session storage.
|
17
|
+
- `--browser-cluster-wait-for-timers` -- Wait for the maximum `setTimeout()`
|
18
|
+
-- Used to be hardcoded to `true`, now defaults to `false`.
|
19
|
+
- `URI`
|
20
|
+
- `#encode` -- Fixed encoding order of `+`.
|
21
|
+
- `#decode` -- Fixed decoding order of `+`.
|
22
|
+
- `Element`
|
23
|
+
- Added `NestedCookie`: Handles key-value pairs inside individual cookies.
|
24
|
+
- `Browser` -- Replaced PhantomJS with headless Chrome.
|
25
|
+
- `Javascript`
|
26
|
+
- `DOMMonitor`
|
27
|
+
- `#elements_with_events` -- Optionally limits event inheritance.
|
28
|
+
- `Rest::Server`
|
29
|
+
- Added `/scans/:id/report.afr`.
|
30
|
+
- Added error handling for when trying to connect to killed instances.
|
31
|
+
- `Support`
|
32
|
+
- `Database` -- Updated to compress disk data.
|
33
|
+
- `Parser` -- Recode node data to UTF-8.
|
34
|
+
- `Process`
|
35
|
+
- `Manager`
|
36
|
+
- `#spawn` -- Pass Arachni options via `ENV` rather than `ARGV`.
|
37
|
+
- Checks
|
38
|
+
- Active
|
39
|
+
- `xss` -- Fixed proof data to return HTML.
|
40
|
+
- `csrf` -- Disabled for pages with DOM transitions due to FPs.
|
41
|
+
- Passive
|
42
|
+
- `x_frame_options` -- Ignore non-200 pages.
|
43
|
+
- `common_directories` -- Look for `.git`.
|
44
|
+
- Plugins
|
45
|
+
- `proxy` -- Fixed error on login sequence recording.
|
46
|
+
|
47
|
+
## 1.5.1 _(March 29, 2017)_
|
48
|
+
|
49
|
+
- `config/write_paths.yml` -- Added configurable temporary directory.
|
50
|
+
- `Parser`
|
51
|
+
- `#document` -- Updated to lazy parse the document.
|
52
|
+
- `Browser`
|
53
|
+
- `Javascript`
|
54
|
+
- `DOMMonitor` -- Don't track `setInterval()`s since we're not using them.
|
55
|
+
- `TaintTracer`
|
56
|
+
- `add_trace_to_function()` -- Catch and return on error.
|
57
|
+
- Path extractors
|
58
|
+
- `scripts` -- Fixed `nil` error.
|
59
|
+
- Plugins
|
60
|
+
- `metrics` -- Fixed type error due to race condition.
|
61
|
+
|
62
|
+
## 1.5 _(January 31, 2017)_
|
63
|
+
|
64
|
+
- Executables
|
65
|
+
- `arachni_rpcd_monitor` -- Brought up to date with Dispatcher refactoring.
|
66
|
+
- New
|
67
|
+
- `arachni_reproduce` -- Reproduces the issues in the given report.
|
68
|
+
- Options
|
69
|
+
- `url` -- Raise error on addresses starting with `127.` because
|
70
|
+
PhantomJS 2.1.1 doesn't proxy any loopback connections.
|
71
|
+
- `--http-cookie-string` -- Updated to only accept `Set-Cookie` formatted
|
72
|
+
cookies instead of `Cookie` ones.
|
73
|
+
- `--browser-cluster-job-timeout`
|
74
|
+
- Repurposed to apply to communication requests for Selenium rather than
|
75
|
+
the entire job.
|
76
|
+
- Lowered to `10` seconds.
|
77
|
+
- New
|
78
|
+
- `--http-authentication-type`
|
79
|
+
- `auto` -- Default
|
80
|
+
- `basic`
|
81
|
+
- `digest`
|
82
|
+
- `digest_ie`
|
83
|
+
- `negotiate`
|
84
|
+
- `ntlm`
|
85
|
+
- `--scope-dom-event-limit` -- Limits the amount of DOM events to be
|
86
|
+
triggered for each DOM depth.
|
87
|
+
- `--daemon-friendly` -- Disables status screen.
|
88
|
+
- `UI`
|
89
|
+
- `CLI`
|
90
|
+
- `Framework` -- Trap `USR1` signal and go into a `pry` session for debugging.
|
91
|
+
- `URI`
|
92
|
+
- `.fast_parse` --- Ignore `data:` URIs.
|
93
|
+
- `HTTP`
|
94
|
+
- `ProxyServer`
|
95
|
+
- Fixed state of abruptly closed SSL interceptor connections leading to
|
96
|
+
frozen browser operations.
|
97
|
+
- Added support for configurable concurrency of origin requests to keep
|
98
|
+
the amount of `Thread`s low.
|
99
|
+
- Added support for `Connection: Upgrade` requests by tunneling WebSocket
|
100
|
+
connections.
|
101
|
+
- `Client`
|
102
|
+
- Added `X-Arachni-Scan-Seed` header that includes the random scan seed.
|
103
|
+
- `Dynamic404Handler`
|
104
|
+
- Added more training scenarios for when:
|
105
|
+
- Dashes are used as routing separators.
|
106
|
+
- Directory name prepending and appending is ignored.
|
107
|
+
- Updated to not dismiss redirects but follow the location.
|
108
|
+
- `Browser`
|
109
|
+
- Updated engine to PhantomJS 2.1.1.
|
110
|
+
- Remove `Content-Security-Policy` to allow the Arachni JS env to run.
|
111
|
+
- `#snapshot_id` -- Moved to browser-side `DOMMonitor` for better performance.
|
112
|
+
- `#capture` -- Extract query parameters from `POST` requests.
|
113
|
+
- `#capture_snapshot` -- Deduplicate based on DOM URL and transitions as well.
|
114
|
+
- `ElementLocator` -- Fixed bug causing broken CSS selectors with UTF8 characters.
|
115
|
+
- `Javascript`
|
116
|
+
- `#dom_elements_with_events`
|
117
|
+
- Moved code to browser-side `DOMMonitor`.
|
118
|
+
- Updated it to return results in batches, in order to keep RAM
|
119
|
+
usage under control when processing large pages with thousands
|
120
|
+
of elements with events.
|
121
|
+
- `BrowserCluster`
|
122
|
+
- `Worker`
|
123
|
+
- `#run_job` -- Retry 5 times on job time-outs.
|
124
|
+
- `Element`
|
125
|
+
- `Capabilities`
|
126
|
+
- `Auditable`
|
127
|
+
- New
|
128
|
+
- `Buffered` -- Reads audit responses in chunks.
|
129
|
+
- `LineBuffered` -- Reads audit responses in chunks of lines.
|
130
|
+
- `DOM`
|
131
|
+
- `Capabilities`
|
132
|
+
- `Submittable`, `Auditable` -- Switched from `Proc` to class methods
|
133
|
+
for callbacks, in order to avoid keeping contexts in memory.
|
134
|
+
- Session -- Allow for a submit input to be specified when the login needs to be
|
135
|
+
triggered by clicking it, rather than just triggering the submit event on
|
136
|
+
the form.
|
137
|
+
- REST API
|
138
|
+
- Added `GET /scans/:id/summary` to return scan progress data without
|
139
|
+
`issues`, `errors` and `sitemap`.
|
140
|
+
- Report
|
141
|
+
- Added `#seed` attribute that includes the random scan seed.
|
142
|
+
- Plugins
|
143
|
+
- New
|
144
|
+
- `webhook_notify` -- Sends a webhook payload over HTTP at the end of the scan.
|
145
|
+
- `rate_limiter` -- Rate limits HTTP requests.
|
146
|
+
- `page_dump` -- Dumps page data to disk as YAML.
|
147
|
+
- `proxy` -- `bind_address` default switched to `127.0.0.1`, `0.0.0.0` breaks
|
148
|
+
SSL interception on MS Windows.
|
149
|
+
- `metrics`
|
150
|
+
- Fixed division by 0 error when no requests have been performed.
|
151
|
+
- Added:
|
152
|
+
- HTTP
|
153
|
+
- Request time-outs
|
154
|
+
- Responses per second
|
155
|
+
- Browser cluster
|
156
|
+
- Timed-out jobs
|
157
|
+
- Seconds per job
|
158
|
+
- Total job time
|
159
|
+
- Job count
|
160
|
+
- `email_notify`
|
161
|
+
- Retry on error.
|
162
|
+
- Default to `afr` as a report format.
|
163
|
+
- Checks
|
164
|
+
- Active
|
165
|
+
- `xss` -- Only check HTML responses to avoid FPs.
|
166
|
+
- `xss_event`
|
167
|
+
- Replaced full parsing of responses with SAX.
|
168
|
+
- Only check HTML responses to avoid FPs.
|
169
|
+
- `xss_script_context`
|
170
|
+
- Replaced full parsing of responses with SAX.
|
171
|
+
- Only check HTML responses to avoid FPs.
|
172
|
+
- `xss_tag`
|
173
|
+
- Replaced full parsing of responses with SAX.
|
174
|
+
- Only check HTML responses to avoid FPs.
|
175
|
+
- `unvalidated_redirect`, `unvalidated_redirect_dom`, `xss`, `xss_dom`,
|
176
|
+
`xss_dom_script_context`, `xss_script_context` -- Replaced `Proc`s
|
177
|
+
with class methods for `BrowserCluster` job callbacks.
|
178
|
+
- `unvalidated_redirect` -- Added prepended payload to the default value.
|
179
|
+
- `sql_injection` -- Added more error signatures for HSQLDB, Java and SQLite.
|
180
|
+
- `csrf` -- Removed heuristics that try to match tokens based on format;
|
181
|
+
now only uses a nonce check.
|
182
|
+
- `path_traversal` -- Increased maximum traversals to 8.
|
183
|
+
- Passive
|
184
|
+
- `backup_files`
|
185
|
+
- Ignore media files to avoid FPs when dealing with galleries and the like.
|
186
|
+
- Added issue remark explaining how the original resource name was manipulated.
|
187
|
+
- `backup_directories` -- Added issue remark explaining how the original
|
188
|
+
resource name was manipulated.
|
189
|
+
- `xst` -- Run once for each protocol, not just for the first page.
|
190
|
+
- Path extractors
|
191
|
+
- `data_url` -- Extract from all elements, not just links.
|
192
|
+
- Reporters
|
193
|
+
- `xml`
|
194
|
+
- Replaced unsupported null-bytes with a placeholder.
|
195
|
+
- Made `issues/issue/page/dom/data_flow_sinks/data_flow_sink/frame/line` nil-able.
|
196
|
+
|
3
197
|
## 1.4 _(February 7, 2016)_
|
4
198
|
|
5
199
|
- Native MS Windows compatibility.
|
@@ -95,6 +289,7 @@
|
|
95
289
|
there's no way to verify SSNs.
|
96
290
|
- `http_only_cookies`, `insecure_cookies` -- Only check current page
|
97
291
|
cookies, don't let the CookieJar ones sneak in.
|
292
|
+
- `insecure_cookies` -- Check JS cookies too.
|
98
293
|
- Plugins
|
99
294
|
- `proxy`
|
100
295
|
- Removed injection of control toolbar to each response.
|
data/Gemfile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rake'
|
3
|
+
gem 'rake', '>= 12.3.3'
|
4
|
+
gem 'pry'
|
4
5
|
|
5
6
|
group :docs do
|
6
7
|
gem 'yard'
|
@@ -8,9 +9,7 @@ group :docs do
|
|
8
9
|
end
|
9
10
|
|
10
11
|
group :spec do
|
11
|
-
gem '
|
12
|
-
|
13
|
-
gem 'rspec', '2.99.0'
|
12
|
+
gem 'rspec'
|
14
13
|
gem 'faker'
|
15
14
|
end
|
16
15
|
|
@@ -19,6 +18,7 @@ group :prof do
|
|
19
18
|
gem 'sys-proctable'
|
20
19
|
gem 'ruby-mass'
|
21
20
|
gem 'benchmark-ips'
|
21
|
+
gem 'memory_profiler'
|
22
22
|
end
|
23
23
|
|
24
24
|
gemspec
|
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<table>
|
4
4
|
<tr>
|
5
5
|
<th>Version</th>
|
6
|
-
<td>1.
|
6
|
+
<td>1.6.0</td>
|
7
7
|
</tr>
|
8
8
|
<tr>
|
9
9
|
<th>Homepage</th>
|
@@ -38,7 +38,7 @@
|
|
38
38
|
</tr>
|
39
39
|
<tr>
|
40
40
|
<th>Copyright</th>
|
41
|
-
<td>2010-
|
41
|
+
<td>2010-2022 <a href="http://www.ecsypno.com">Ecsypno</a></td>
|
42
42
|
</tr>
|
43
43
|
<tr>
|
44
44
|
<th>License</th>
|
@@ -228,6 +228,7 @@ Arachni is able to extract and audit the following elements and their inputs:
|
|
228
228
|
- Along with ones that have client-side parameters in their URL fragments, i.e.:
|
229
229
|
`http://example.com/#/param/val/param2/val2`
|
230
230
|
- Cookies
|
231
|
+
- Also supports nested cookies, containing key-value pairs inside individual cookies.
|
231
232
|
- Headers
|
232
233
|
- Generic client-side elements which have associated DOM events.
|
233
234
|
- AJAX-request parameters.
|
@@ -555,6 +556,9 @@ core remains lean and makes it easy for anyone to add arbitrary functionality.
|
|
555
556
|
- Metrics (`metrics`) -- Captures metrics about multiple aspects of the scan and the web application.
|
556
557
|
- Restrict to DOM state (`restrict_to_dom_state`) -- Restricts the audit to a single page's DOM
|
557
558
|
state, based on a URL fragment.
|
559
|
+
- Webhook notify (`webhook_notify`) -- Sends a webhook payload over HTTP at the end of the scan.
|
560
|
+
- Rate limiter (`rate_limiter`) -- Rate limits HTTP requests.
|
561
|
+
- Page dump (`page_dump`) -- Dumps page data to disk as YAML.
|
558
562
|
|
559
563
|
##### Defaults
|
560
564
|
|
@@ -608,7 +612,7 @@ You can run `rake spec` to run **all** specs or you can run them selectively usi
|
|
608
612
|
**Please be warned**, the core specs will require a beast of a machine due to the
|
609
613
|
necessity to test the Grid/multi-Instance features of the system.
|
610
614
|
|
611
|
-
**Note**: _The check specs will take
|
615
|
+
**Note**: _The check specs will take many hours to complete due to the timing-attack tests._
|
612
616
|
|
613
617
|
## Bug reports/Feature requests
|
614
618
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
=begin
|
2
|
-
Copyright 2010-
|
2
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.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
|
@@ -197,7 +197,6 @@ end
|
|
197
197
|
|
198
198
|
desc 'Generate docs.'
|
199
199
|
task :docs do
|
200
|
-
|
201
200
|
outdir = "../arachni-docs"
|
202
201
|
sh "rm -rf #{outdir}"
|
203
202
|
sh "mkdir -p #{outdir}"
|
@@ -207,47 +206,6 @@ task :docs do
|
|
207
206
|
sh "rm -rf .yardoc"
|
208
207
|
end
|
209
208
|
|
210
|
-
desc 'Generate graphics.'
|
211
|
-
task :gfx do
|
212
|
-
|
213
|
-
outdir = 'gfx/compiled'
|
214
|
-
srcdir = 'gfx/source'
|
215
|
-
|
216
|
-
sh 'mkdir -p ~/.fonts'
|
217
|
-
sh 'cp gfx/font/Beneath_the_Surface.ttf ~/.fonts'
|
218
|
-
|
219
|
-
Dir.glob( "#{srcdir}/*.svg" ).each do |src|
|
220
|
-
sh "inkscape #{src} --export-png=#{outdir}/#{File.basename( src, '.svg' )}.png"
|
221
|
-
end
|
222
|
-
|
223
|
-
cp "#{outdir}/icon.png", "#{outdir}/favicon.ico"
|
224
|
-
|
225
|
-
sh 'rm -f ~/.fonts/Beneath_the_Surface.ttf'
|
226
|
-
end
|
227
|
-
|
228
|
-
#
|
229
|
-
# Simple profiler using perftools[1].
|
230
|
-
#
|
231
|
-
# To install perftools for Ruby:
|
232
|
-
# gem install perftools.rb
|
233
|
-
#
|
234
|
-
# [1] https://github.com/tmm1/perftools.rb
|
235
|
-
#
|
236
|
-
desc 'Profile Arachni.'
|
237
|
-
task :profile do
|
238
|
-
|
239
|
-
if !Gem::Specification.find_all_by_name( 'perftools.rb' ).empty?
|
240
|
-
sh "CPUPROFILE_FREQUENCY=500 CPUPROFILE=/tmp/profile.dat " +
|
241
|
-
"RUBYOPT=\"-r`gem which perftools | tail -1`\" " +
|
242
|
-
" ./bin/arachni http://demo.testfire.net && " +
|
243
|
-
"pprof.rb --gif /tmp/profile.dat > profile.gif"
|
244
|
-
else
|
245
|
-
puts 'If you want to run the profiler please install perftools.rb first:'
|
246
|
-
puts ' gem install perftools.rb'
|
247
|
-
end
|
248
|
-
|
249
|
-
end
|
250
|
-
|
251
209
|
desc 'Remove reporter and log files.'
|
252
210
|
task :clean do
|
253
211
|
files = %w(error.log *.afr *.afs *.yaml *.json *.marshal *.gem pkg/*.gem
|
data/arachni.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
@@ -10,7 +10,7 @@
|
|
10
10
|
Gem::Specification.new do |s|
|
11
11
|
require File.expand_path( File.dirname( __FILE__ ) ) + '/lib/arachni/version'
|
12
12
|
|
13
|
-
s.required_ruby_version = '>= 2.
|
13
|
+
s.required_ruby_version = '>= 2.3.0'
|
14
14
|
|
15
15
|
s.name = 'arachni'
|
16
16
|
s.version = Arachni::VERSION
|
@@ -37,77 +37,82 @@ Gem::Specification.new do |s|
|
|
37
37
|
|
38
38
|
s.executables = Dir.glob( 'bin/*' ).map { |e| File.basename e }
|
39
39
|
|
40
|
-
s.extra_rdoc_files = %w(README.md
|
41
|
-
AUTHORS.md CHANGELOG.md CONTRIBUTORS.md)
|
40
|
+
s.extra_rdoc_files = %w(README.md LICENSE.md CHANGELOG.md)
|
42
41
|
|
43
42
|
s.rdoc_options = [ '--charset=UTF-8' ]
|
44
43
|
|
45
|
-
s.add_dependency 'awesome_print'
|
44
|
+
s.add_dependency 'awesome_print', '1.6.1'
|
46
45
|
|
47
|
-
s.add_dependency 'rack'
|
46
|
+
s.add_dependency 'rack', '2.2.3'
|
47
|
+
s.add_dependency 'rack-test'
|
48
48
|
|
49
|
+
# Don't specify version, messes with the packages since they always grab the
|
50
|
+
# latest one.
|
49
51
|
s.add_dependency 'bundler'
|
50
52
|
|
51
|
-
s.add_dependency 'concurrent-ruby', '1.0.
|
52
|
-
s.add_dependency 'concurrent-ruby-ext', '1.0.
|
53
|
+
s.add_dependency 'concurrent-ruby', '1.0.5'
|
54
|
+
s.add_dependency 'concurrent-ruby-ext', '1.0.5'
|
53
55
|
|
54
56
|
# For compressing/decompressing system state archives.
|
55
|
-
s.add_dependency 'rubyzip',
|
57
|
+
s.add_dependency 'rubyzip', '>= 1.3.0'
|
56
58
|
|
57
59
|
# HTTP proxy server
|
58
|
-
s.add_dependency 'http_parser.rb'
|
60
|
+
s.add_dependency 'http_parser.rb', '0.6.0'
|
59
61
|
|
60
62
|
# HTML report
|
61
|
-
s.add_dependency 'coderay',
|
63
|
+
s.add_dependency 'coderay', '1.1.2'
|
62
64
|
|
63
|
-
s.add_dependency 'childprocess',
|
65
|
+
s.add_dependency 'childprocess', '0.9.0'
|
64
66
|
|
65
67
|
# RPC serialization.
|
66
|
-
s.add_dependency 'msgpack',
|
68
|
+
s.add_dependency 'msgpack', '1.2.4'
|
67
69
|
|
68
70
|
if RUBY_PLATFORM != 'java'
|
69
71
|
# Optimized JSON.
|
70
|
-
s.add_dependency 'oj',
|
71
|
-
s.add_dependency 'oj_mimic_json'
|
72
|
+
s.add_dependency 'oj', '3.6.5'
|
73
|
+
s.add_dependency 'oj_mimic_json', '1.0.1'
|
72
74
|
end
|
73
75
|
|
74
76
|
# Web server
|
75
|
-
s.add_dependency 'puma',
|
77
|
+
s.add_dependency 'puma', '>= 4.3.9'
|
76
78
|
|
77
79
|
# REST API
|
78
|
-
s.add_dependency 'sinatra',
|
79
|
-
s.add_dependency 'sinatra-contrib',
|
80
|
+
s.add_dependency 'sinatra', '2.1.0'
|
81
|
+
s.add_dependency 'sinatra-contrib', '2.1.0'
|
80
82
|
|
81
83
|
# RPC client/server implementation.
|
82
|
-
s.add_dependency 'arachni-rpc',
|
84
|
+
s.add_dependency 'arachni-rpc', '~> 0.2.1.4'
|
83
85
|
|
84
86
|
# HTTP client.
|
85
|
-
s.add_dependency 'typhoeus',
|
87
|
+
s.add_dependency 'typhoeus', '1.3.0'
|
86
88
|
|
87
89
|
# Fallback URI parsing and encoding utilities.
|
88
|
-
s.add_dependency 'addressable',
|
90
|
+
s.add_dependency 'addressable', '>= 2.8.0'
|
89
91
|
|
90
92
|
# E-mail plugin.
|
91
|
-
s.add_dependency 'pony',
|
93
|
+
s.add_dependency 'pony', '1.12'
|
92
94
|
|
93
95
|
# For the Arachni console (arachni_console).
|
94
|
-
s.add_dependency 'rb-readline',
|
96
|
+
s.add_dependency 'rb-readline', '0.5.5'
|
95
97
|
|
96
|
-
# Markup parsing.
|
97
|
-
s.add_dependency 'nokogiri'
|
98
|
+
# Markup parsing, for reports and Element::XML.
|
99
|
+
s.add_dependency 'nokogiri'
|
100
|
+
# Really fast and lightweight markup parsing, for pages.
|
101
|
+
s.add_dependency 'ox', '2.9.4'
|
98
102
|
|
99
103
|
# Outputting data in table format (arachni_rpcd_monitor).
|
100
|
-
s.add_dependency 'terminal-table',
|
104
|
+
s.add_dependency 'terminal-table', '1.8.0'
|
101
105
|
|
102
106
|
# Browser support for DOM/JS/AJAX analysis stuff.
|
103
|
-
s.add_dependency 'watir
|
107
|
+
s.add_dependency 'watir', '6.19.1'
|
108
|
+
s.add_dependency 'selenium-webdriver', '4.1.0'
|
104
109
|
|
105
110
|
# Markdown to HTML conversion, used by the HTML report for component
|
106
111
|
# descriptions.
|
107
|
-
s.add_dependency 'kramdown',
|
112
|
+
s.add_dependency 'kramdown', '>= 2.3.0'
|
108
113
|
|
109
114
|
# Used to scrub Markdown for XSS etc.
|
110
|
-
s.add_dependency 'loofah',
|
115
|
+
s.add_dependency 'loofah', '>= 2.3.1'
|
111
116
|
|
112
117
|
s.post_install_message = <<MSG
|
113
118
|
|
@@ -124,7 +129,7 @@ License - Arachni Public Source License v1.0
|
|
124
129
|
(https://github.com/Arachni/arachni/blob/master/LICENSE.md)
|
125
130
|
Author - Tasos "Zapotek" Laskos (http://twitter.com/Zap0tek)
|
126
131
|
Twitter - http://twitter.com/ArachniScanner
|
127
|
-
Copyright - 2010-
|
132
|
+
Copyright - 2010-2022 Ecsypno (http://www.ecsypno.com)
|
128
133
|
|
129
134
|
Please do not hesitate to ask for assistance (via the support portal)
|
130
135
|
or report a bug (via GitHub Issues) if you come across any problem.
|
data/bin/arachni
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
data/bin/arachni_console
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
data/bin/arachni_multi
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
@@ -10,4 +10,9 @@
|
|
10
10
|
require_relative '../lib/arachni'
|
11
11
|
require_relative '../ui/cli/rpc/client/local'
|
12
12
|
|
13
|
+
if Arachni.windows?
|
14
|
+
Arachni::UI::Output.print_error "This interface is not available on MS Windows."
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
13
18
|
Arachni::UI::CLI::RPC::Client::Local.new
|
data/bin/arachni_reporter
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
=begin
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
|
+
|
5
|
+
This file is part of the Arachni Framework project and is subject to
|
6
|
+
redistribution and commercial restrictions. Please see the Arachni Framework
|
7
|
+
web site for more information on licensing and terms of use.
|
8
|
+
=end
|
9
|
+
|
10
|
+
require_relative '../ui/cli/reproduce'
|
11
|
+
|
12
|
+
Arachni::UI::CLI::Reproduce.new
|
data/bin/arachni_rest_server
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
data/bin/arachni_restore
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
data/bin/arachni_rpc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
@@ -10,4 +10,9 @@
|
|
10
10
|
require_relative '../lib/arachni'
|
11
11
|
require_relative '../ui/cli/rpc/client/remote'
|
12
12
|
|
13
|
+
if Arachni.windows?
|
14
|
+
Arachni::UI::Output.print_error "This interface is not available on MS Windows."
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
13
18
|
Arachni::UI::CLI::RPC::Client::Remote.new
|
data/bin/arachni_rpcd
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
data/bin/arachni_rpcd_monitor
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
@@ -10,4 +10,9 @@
|
|
10
10
|
require_relative '../lib/arachni'
|
11
11
|
require_relative '../ui/cli/rpc/client/dispatcher_monitor'
|
12
12
|
|
13
|
+
if Arachni.windows?
|
14
|
+
Arachni::UI::Output.print_error "This interface is not available on MS Windows."
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
13
18
|
Arachni::UI::CLI::RPC::Client::DispatcherMonitor.new
|
data/bin/arachni_script
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin
|
3
|
-
Copyright 2010-
|
3
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.com>
|
4
4
|
|
5
5
|
This file is part of the Arachni Framework project and is subject to
|
6
6
|
redistribution and commercial restrictions. Please see the Arachni Framework
|
@@ -1,5 +1,5 @@
|
|
1
1
|
=begin
|
2
|
-
Copyright 2010-
|
2
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.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-
|
2
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.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-
|
2
|
+
Copyright 2010-2022 Ecsypno <http://www.ecsypno.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
|