arachni 1.5 → 1.6.1
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 +63 -0
- data/Gemfile +2 -4
- data/LICENSE.md +1 -1
- data/README.md +112 -111
- data/Rakefile +1 -43
- data/arachni.gemspec +26 -26
- data/bin/arachni +1 -1
- data/bin/arachni_console +1 -1
- data/bin/arachni_multi +1 -1
- data/bin/arachni_reporter +1 -1
- data/bin/arachni_reproduce +1 -1
- data/bin/arachni_rest_server +1 -1
- data/bin/arachni_restore +1 -1
- data/bin/arachni_rpc +1 -1
- data/bin/arachni_rpcd +1 -1
- data/bin/arachni_rpcd_monitor +1 -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 +7 -2
- 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 +1 -1
- 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.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 +1 -1
- data/components/checks/active/unvalidated_redirect_dom.rb +1 -1
- data/components/checks/active/xpath_injection.rb +1 -1
- data/components/checks/active/xss.rb +4 -4
- data/components/checks/active/xss_dom.rb +1 -1
- data/components/checks/active/xss_dom_script_context.rb +1 -1
- data/components/checks/active/xss_event.rb +3 -3
- data/components/checks/active/xss_path.rb +1 -1
- data/components/checks/active/xss_script_context.rb +3 -3
- data/components/checks/active/xss_tag.rb +4 -3
- 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 +1 -1
- data/components/checks/passive/backup_files.rb +2 -2
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- data/components/checks/passive/grep/insecure_cors_policy.rb +1 -1
- data/components/checks/passive/grep/mixed_resource.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- data/components/checks/passive/insecure_cross_domain_policy_access.rb +1 -1
- data/components/checks/passive/insecure_cross_domain_policy_headers.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- data/components/path_extractors/areas.rb +1 -1
- data/components/path_extractors/comments.rb +1 -1
- data/components/path_extractors/data_url.rb +1 -1
- data/components/path_extractors/forms.rb +1 -1
- data/components/path_extractors/frames.rb +1 -1
- data/components/path_extractors/generic.rb +1 -1
- data/components/path_extractors/links.rb +1 -1
- data/components/path_extractors/meta_refresh.rb +1 -1
- data/components/path_extractors/scripts.rb +2 -2
- data/components/plugins/autologin.rb +1 -1
- 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 +1 -1
- data/components/plugins/defaults/autothrottle.rb +1 -1
- data/components/plugins/defaults/healthmap.rb +2 -2
- 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 +1 -1
- data/components/plugins/exec.rb +1 -1
- data/components/plugins/form_dicattack.rb +1 -1
- data/components/plugins/headers_collector.rb +1 -1
- data/components/plugins/http_dicattack.rb +1 -1
- data/components/plugins/login_script.rb +1 -1
- data/components/plugins/metrics.rb +20 -20
- data/components/plugins/page_dump.rb +1 -1
- data/components/plugins/proxy/panel/verify_login_sequence.html.erb +1 -1
- data/components/plugins/proxy/template_scope.rb +1 -1
- data/components/plugins/proxy.rb +3 -2
- data/components/plugins/rate_limiter.rb +1 -1
- 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 +1 -1
- data/components/plugins/webhook_notify.rb +1 -1
- data/components/reporters/ap.rb +1 -1
- data/components/reporters/html/default.erb +3 -1
- data/components/reporters/html.rb +5 -7
- 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 +1 -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 +1 -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 +1 -1
- data/components/reporters/plugin_formatters/xml/cookie_collector.rb +1 -1
- 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 +1 -1
- data/components/reporters/plugin_formatters/xml/uniformity.rb +1 -1
- data/components/reporters/plugin_formatters/xml/vector_collector.rb +1 -1
- data/components/reporters/plugin_formatters/xml/waf_detector.rb +1 -1
- data/components/reporters/stdout.rb +1 -1
- data/components/reporters/txt.rb +1 -1
- data/components/reporters/xml/schema.xsd +1 -0
- data/components/reporters/xml.rb +3 -3
- 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 +1 -1
- 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 +39 -26
- data/lib/arachni/browser/javascript/scripts/taint_tracer.js +58 -40
- 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 +14 -36
- data/lib/arachni/browser.rb +133 -216
- data/lib/arachni/browser_cluster/job/result.rb +1 -1
- data/lib/arachni/browser_cluster/job.rb +1 -1
- data/lib/arachni/browser_cluster/jobs/browser_provider.rb +1 -1
- 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 +1 -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 +11 -26
- data/lib/arachni/browser_cluster.rb +2 -3
- data/lib/arachni/check/auditor.rb +28 -66
- 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 +1 -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 +1 -1
- 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 +2 -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 +1 -1
- data/lib/arachni/element/capabilities/analyzable/signature.rb +2 -2
- 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 +1 -1
- data/lib/arachni/element/capabilities/auditable/line_buffered.rb +1 -1
- data/lib/arachni/element/capabilities/auditable.rb +1 -1
- data/lib/arachni/element/capabilities/dom_only.rb +1 -1
- data/lib/arachni/element/capabilities/inputtable.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/arachni/element/dom/capabilities/auditable.rb +1 -1
- 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 +1 -1
- data/lib/arachni/element/dom/capabilities/submittable.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/arachni/element/link_template.rb +1 -1
- 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 +1 -1
- data/lib/arachni/element/ui_form/dom.rb +1 -1
- data/lib/arachni/element/ui_form.rb +1 -1
- data/lib/arachni/element/ui_input/dom.rb +1 -1
- data/lib/arachni/element/ui_input.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/arachni/framework/parts/browser.rb +1 -1
- 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 +2 -2
- 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 +1 -1
- data/lib/arachni/http/client.rb +7 -5
- data/lib/arachni/http/cookie_jar.rb +1 -1
- data/lib/arachni/http/headers.rb +1 -1
- data/lib/arachni/http/message/scope.rb +1 -1
- data/lib/arachni/http/message.rb +2 -2
- data/lib/arachni/http/proxy_server/connection.rb +3 -8
- 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 +7 -6
- data/lib/arachni/http/proxy_server/tunnel.rb +1 -1
- data/lib/arachni/http/proxy_server.rb +1 -1
- data/lib/arachni/http/request/scope.rb +1 -1
- data/lib/arachni/http/request.rb +8 -2
- data/lib/arachni/http/response/scope.rb +1 -1
- data/lib/arachni/http/response.rb +3 -3
- 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 +1 -1
- 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 +28 -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 +5 -5
- 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 +46 -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 +2 -2
- data/lib/arachni/page/dom/transition.rb +1 -1
- data/lib/arachni/page/dom.rb +1 -1
- data/lib/arachni/page/scope.rb +1 -1
- data/lib/arachni/page.rb +3 -3
- data/lib/arachni/parser/document.rb +1 -1
- data/lib/arachni/parser/extractors/base.rb +1 -1
- data/lib/arachni/parser/nodes/base.rb +1 -1
- data/lib/arachni/parser/nodes/comment.rb +1 -1
- data/lib/arachni/parser/nodes/element/with_attributes/attributes.rb +2 -2
- data/lib/arachni/parser/nodes/element/with_attributes.rb +1 -1
- data/lib/arachni/parser/nodes/element.rb +1 -1
- data/lib/arachni/parser/nodes/text.rb +2 -2
- data/lib/arachni/parser/nodes/with_value.rb +2 -2
- data/lib/arachni/parser/sax.rb +2 -1
- data/lib/arachni/parser/with_children/search.rb +1 -1
- data/lib/arachni/parser/with_children.rb +2 -2
- data/lib/arachni/parser.rb +33 -10
- data/lib/arachni/platform/fingerprinter.rb +1 -1
- data/lib/arachni/platform/list.rb +1 -1
- data/lib/arachni/platform/manager.rb +1 -1
- data/lib/arachni/platform.rb +1 -1
- data/lib/arachni/plugin/base.rb +1 -1
- data/lib/arachni/plugin/formatter.rb +1 -1
- data/lib/arachni/plugin/manager.rb +1 -1
- 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/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 +9 -5
- data/lib/arachni/processes.rb +1 -1
- data/lib/arachni/report.rb +1 -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 +7 -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 +1 -1
- 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/remote/typhoeus.rb +6 -16
- data/lib/arachni/session.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/arachni/support/signature.rb +1 -1
- data/lib/arachni/support.rb +1 -1
- data/lib/arachni/trainer.rb +1 -1
- data/lib/arachni/ui/foo/output.rb +1 -1
- data/lib/arachni/uri/scope.rb +1 -1
- data/lib/arachni/uri.rb +6 -9
- data/lib/arachni/utilities.rb +1 -1
- data/lib/arachni/version.rb +1 -1
- data/lib/arachni.rb +1 -7
- data/lib/version +1 -1
- data/spec/arachni/browser/javascript/dom_monitor_spec.rb +81 -77
- data/spec/arachni/browser/javascript/proxy_spec.rb +0 -10
- data/spec/arachni/browser/javascript/taint_tracer_spec.rb +68 -90
- data/spec/arachni/browser/javascript_spec.rb +10 -16
- data/spec/arachni/browser_cluster/worker_spec.rb +23 -55
- data/spec/arachni/browser_spec.rb +160 -158
- data/spec/arachni/check/auditor_spec.rb +44 -165
- data/spec/arachni/data/framework/rpc_spec.rb +1 -1
- data/spec/arachni/data/framework_spec.rb +1 -1
- data/spec/arachni/element/cookie_spec.rb +1 -1
- data/spec/arachni/element/nested_cookie_spec.rb +687 -0
- data/spec/arachni/element/ui_form_spec.rb +2 -2
- data/spec/arachni/element/ui_input_spec.rb +1 -1
- data/spec/arachni/http/client_spec.rb +14 -26
- data/spec/arachni/http/cookie_jar_spec.rb +2 -2
- data/spec/arachni/http/proxy_server_spec.rb +2 -0
- data/spec/arachni/http/request_spec.rb +3 -2
- data/spec/arachni/issue_spec.rb +1 -1
- data/spec/arachni/option_groups/browser_cluster_spec.rb +17 -0
- data/spec/arachni/option_groups/http_spec.rb +6 -6
- data/spec/arachni/option_groups/paths_spec.rb +23 -1
- data/spec/arachni/option_groups/scope_spec.rb +1 -6
- data/spec/arachni/page_spec.rb +3 -2
- data/spec/arachni/parser_spec.rb +45 -1
- data/spec/arachni/platform/list_spec.rb +1 -2
- data/spec/arachni/reporter/options_spec.rb +0 -14
- data/spec/arachni/rest/server_spec.rb +39 -2
- data/spec/arachni/snapshot_spec.rb +1 -1
- data/spec/arachni/state/framework_spec.rb +2 -2
- data/spec/arachni/uri_spec.rb +1 -1
- 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/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 +10 -7
- 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 +53 -36
- 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 +5 -5
- data/spec/components/checks/active/xss_event_spec.rb +5 -3
- data/spec/components/checks/active/xss_script_context_spec.rb +4 -3
- data/spec/components/checks/active/xss_spec.rb +5 -4
- data/spec/components/checks/active/xss_tag_spec.rb +11 -3
- data/spec/components/checks/passive/backup_files_spec.rb +0 -4
- data/spec/components/checks/passive/grep/x_frame_options_spec.rb +6 -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/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 +1 -1
- 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/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 +1 -1
- data/spec/support/servers/arachni/check/auditor.rb +1 -0
- data/spec/support/servers/arachni/element/form/form_dom.rb +1 -0
- data/spec/support/servers/arachni/element/form.rb +4 -4
- data/spec/support/servers/arachni/element/header.rb +1 -1
- data/spec/support/servers/arachni/element/nested_cookie.rb +84 -0
- data/spec/support/servers/arachni/parser.rb +6 -0
- 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/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.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 +40 -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 +22 -1
- 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/grep/x_frame_options.rb +5 -0
- data/spec/support/shared/check.rb +1 -0
- data/spec/support/shared/element/capabilities/auditable/buffered.rb +2 -2
- data/spec/support/shared/element/capabilities/auditable/line_buffered.rb +2 -2
- data/spec/support/shared/element/capabilities/auditable.rb +2 -2
- data/ui/cli/framework/option_parser.rb +44 -8
- data/ui/cli/framework.rb +6 -5
- data/ui/cli/option_parser.rb +1 -1
- data/ui/cli/output.rb +1 -1
- data/ui/cli/reporter/option_parser.rb +1 -1
- data/ui/cli/reporter.rb +1 -1
- data/ui/cli/reproduce/option_parser.rb +1 -1
- data/ui/cli/reproduce.rb +1 -1
- 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 +1 -1
- 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 +602 -707
- data/logs/error-11897.log +0 -2006
- data/logs/error-3855.log +0 -382
- data/spec/support/logs/Dispatcher - 1024-31864.log +0 -10
- data/spec/support/logs/Dispatcher - 1047-41465.log +0 -10
- data/spec/support/logs/Dispatcher - 1274-60799.log +0 -64
- data/spec/support/logs/Dispatcher - 1295-1058.log +0 -44
- data/spec/support/logs/Dispatcher - 1313-27076.log +0 -40
- data/spec/support/logs/Dispatcher - 1332-17127.log +0 -35
- data/spec/support/logs/Dispatcher - 1350-7351.log +0 -29
- data/spec/support/logs/Dispatcher - 1368-38528.log +0 -22
- data/spec/support/logs/Dispatcher - 1386-17419.log +0 -14
- data/spec/support/logs/Dispatcher - 31030-26156.log +0 -10
- data/spec/support/logs/Dispatcher - 321-27189.log +0 -12
- data/spec/support/logs/Dispatcher - 32353-50061.log +0 -20
- data/spec/support/logs/Dispatcher - 32450-61574.log +0 -10
- data/spec/support/logs/Dispatcher - 32470-53874.log +0 -20
- data/spec/support/logs/Dispatcher - 32491-10523.log +0 -18
- data/spec/support/logs/Dispatcher - 32509-8583.log +0 -14
- data/spec/support/logs/Dispatcher - 32536-21209.log +0 -10
- data/spec/support/logs/Dispatcher - 32556-53881.log +0 -10
- data/spec/support/logs/Dispatcher - 32579-49083.log +0 -50
- data/spec/support/logs/Dispatcher - 32761-20025.log +0 -12
- data/spec/support/logs/Dispatcher - 347-17512.log +0 -12
- data/spec/support/logs/Dispatcher - 3489-43230.log +0 -24
- data/spec/support/logs/Dispatcher - 3524-57459.log +0 -26
- data/spec/support/logs/Dispatcher - 3559-21544.log +0 -20
- data/spec/support/logs/Dispatcher - 3764-33844.log +0 -25
- data/spec/support/logs/Dispatcher - 3798-45350.log +0 -26
- data/spec/support/logs/Dispatcher - 382-15725.log +0 -12
- data/spec/support/logs/Dispatcher - 3836-6205.log +0 -21
- data/spec/support/logs/Dispatcher - 4112-45433.log +0 -22
- data/spec/support/logs/Dispatcher - 4148-53510.log +0 -26
- data/spec/support/logs/Dispatcher - 415-29873.log +0 -14
- data/spec/support/logs/Dispatcher - 4185-29736.log +0 -18
- data/spec/support/logs/Dispatcher - 4268-60912.log +0 -25
- data/spec/support/logs/Dispatcher - 4303-39372.log +0 -26
- data/spec/support/logs/Dispatcher - 4342-42190.log +0 -21
- data/spec/support/logs/Dispatcher - 463-55220.log +0 -26
- data/spec/support/logs/Dispatcher - 4649-12104.log +0 -22
- data/spec/support/logs/Dispatcher - 4683-32355.log +0 -26
- data/spec/support/logs/Dispatcher - 4724-41636.log +0 -18
- data/spec/support/logs/Dispatcher - 4881-57692.log +0 -22
- data/spec/support/logs/Dispatcher - 4961-64665.log +0 -26
- data/spec/support/logs/Dispatcher - 502-8742.log +0 -25
- data/spec/support/logs/Dispatcher - 5052-61726.log +0 -18
- data/spec/support/logs/Dispatcher - 536-15972.log +0 -22
- data/spec/support/logs/Dispatcher - 620-2220.log +0 -20
- data/spec/support/logs/Dispatcher - 638-17826.log +0 -18
- data/spec/support/logs/Dispatcher - 656-23967.log +0 -16
- data/spec/support/logs/Dispatcher - 700-15701.log +0 -12
- data/spec/support/logs/Dispatcher - 726-6080.log +0 -10
- data/spec/support/logs/Dispatcher - 749-56590.log +0 -18
- data/spec/support/logs/Dispatcher - 807-19073.log +0 -18
- data/spec/support/logs/Dispatcher - 871-8764.log +0 -10
- data/spec/support/logs/Dispatcher - 898-21496.log +0 -12
- data/spec/support/logs/Dispatcher - 933-64070.log +0 -12
- data/spec/support/logs/Instance - 1577-32284.error.log +0 -151
- data/spec/support/logs/Instance - 1625-58174.error.log +0 -154
- data/spec/support/logs/Instance - 2727-57968.error.log +0 -151
- data/spec/support/logs/Instance - 2898-20648.error.log +0 -303
- data/spec/support/logs/Instance - 2901-30845.error.log +0 -429
- data/spec/support/logs/Instance - 31185-37600.error.log +0 -174
- data/spec/support/logs/Instance - 3319-20111.error.log +0 -175
- data/spec/support/logs/error-3855.log +0 -5132
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bf786db138bf57e440712a7fab2a8b4cd4fb97f1e908a5ec29a41889daec526f
|
4
|
+
data.tar.gz: 7485ca9d6093da52bd4d5d8f6c139a6fa4305719cbd518af4d37455a84ebd723
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7ce0f442dd3dfc68dba6eb331703ec75cc5d57021b5cb2daee5acd6050fa8f9249bfcdb4b697fc5fe9f48bdf2c34530c4b4af4bed5e69455b78f070d36520ff
|
7
|
+
data.tar.gz: 73392cf4dd5ea8e2fbd183beb6b7ef41331313e79fdfdc2c5c06012f6ec935c1bb82a065c16b9437e268a0cecf827f92b89b5a50914d2ef93adae931403b1d7c
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,68 @@
|
|
1
1
|
# ChangeLog
|
2
2
|
|
3
|
+
## 1.6.1 _(March 20, 2022)_
|
4
|
+
|
5
|
+
- `Browser#eelenium` -- Disable sandbox.
|
6
|
+
|
7
|
+
## 1.6.0 _(March 4, 2022)_
|
8
|
+
|
9
|
+
- Options
|
10
|
+
- Scope
|
11
|
+
- `--scope-dom-depth-limit` -- Changed default from `5` to `4`.
|
12
|
+
- `--scope-auto-redundant` -- Changed default from `inf` to `15`.
|
13
|
+
- `--scope-directory-depth-limit` -- Changed default from `inf` to `10`.
|
14
|
+
- Browser cluster
|
15
|
+
- `--browser-cluster-pool-size` -- Changed default from `5` to `4`.
|
16
|
+
- HTTP
|
17
|
+
- `--http-max-concurrency` -- Changed default from `20` to `10`.
|
18
|
+
- New
|
19
|
+
- `--scope-dom-event-inheritance-limit` -- Limits the amount of inherited events.
|
20
|
+
- `--browser-cluster-session-storage` -- Sets the browsers' session storage.
|
21
|
+
- `--browser-cluster-wait-for-timers` -- Wait for the maximum `setTimeout()`
|
22
|
+
-- Used to be hardcoded to `true`, now defaults to `false`.
|
23
|
+
- `URI`
|
24
|
+
- `#encode` -- Fixed encoding order of `+`.
|
25
|
+
- `#decode` -- Fixed decoding order of `+`.
|
26
|
+
- `Element`
|
27
|
+
- Added `NestedCookie`: Handles key-value pairs inside individual cookies.
|
28
|
+
- `Browser` -- Replaced PhantomJS with headless Chrome.
|
29
|
+
- `Javascript`
|
30
|
+
- `DOMMonitor`
|
31
|
+
- `#elements_with_events` -- Optionally limits event inheritance.
|
32
|
+
- `Rest::Server`
|
33
|
+
- Added `/scans/:id/report.afr`.
|
34
|
+
- Added error handling for when trying to connect to killed instances.
|
35
|
+
- `Support`
|
36
|
+
- `Database` -- Updated to compress disk data.
|
37
|
+
- `Parser` -- Recode node data to UTF-8.
|
38
|
+
- `Process`
|
39
|
+
- `Manager`
|
40
|
+
- `#spawn` -- Pass Arachni options via `ENV` rather than `ARGV`.
|
41
|
+
- Checks
|
42
|
+
- Active
|
43
|
+
- `xss` -- Fixed proof data to return HTML.
|
44
|
+
- `csrf` -- Disabled for pages with DOM transitions due to FPs.
|
45
|
+
- Passive
|
46
|
+
- `x_frame_options` -- Ignore non-200 pages.
|
47
|
+
- `common_directories` -- Look for `.git`.
|
48
|
+
- Plugins
|
49
|
+
- `proxy` -- Fixed error on login sequence recording.
|
50
|
+
|
51
|
+
## 1.5.1 _(March 29, 2017)_
|
52
|
+
|
53
|
+
- `config/write_paths.yml` -- Added configurable temporary directory.
|
54
|
+
- `Parser`
|
55
|
+
- `#document` -- Updated to lazy parse the document.
|
56
|
+
- `Browser`
|
57
|
+
- `Javascript`
|
58
|
+
- `DOMMonitor` -- Don't track `setInterval()`s since we're not using them.
|
59
|
+
- `TaintTracer`
|
60
|
+
- `add_trace_to_function()` -- Catch and return on error.
|
61
|
+
- Path extractors
|
62
|
+
- `scripts` -- Fixed `nil` error.
|
63
|
+
- Plugins
|
64
|
+
- `metrics` -- Fixed type error due to race condition.
|
65
|
+
|
3
66
|
## 1.5 _(January 31, 2017)_
|
4
67
|
|
5
68
|
- Executables
|
data/Gemfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rake', '
|
3
|
+
gem 'rake', '>= 12.3.3'
|
4
4
|
gem 'pry'
|
5
5
|
|
6
6
|
group :docs do
|
@@ -9,9 +9,7 @@ group :docs do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
group :spec do
|
12
|
-
gem '
|
13
|
-
|
14
|
-
gem 'rspec', '2.99.0'
|
12
|
+
gem 'rspec'
|
15
13
|
gem 'faker'
|
16
14
|
end
|
17
15
|
|
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.1</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>
|
@@ -112,27 +112,27 @@ you with its findings.
|
|
112
112
|
|
113
113
|
### General
|
114
114
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
115
|
+
- Cookie-jar/cookie-string support.
|
116
|
+
- Custom header support.
|
117
|
+
- SSL support with fine-grained options.
|
118
|
+
- User Agent spoofing.
|
119
|
+
- Proxy support for SOCKS4, SOCKS4A, SOCKS5, HTTP/1.1 and HTTP/1.0.
|
120
|
+
- Proxy authentication.
|
121
|
+
- Site authentication (SSL-based, form-based, Cookie-Jar, Basic-Digest, NTLMv1, Kerberos and others).
|
122
|
+
- Automatic log-out detection and re-login during the scan (when the initial
|
123
|
+
login was performed via the `autologin`, `login_script` or `proxy` plugins).
|
124
|
+
- Custom 404 page detection.
|
125
|
+
- UI abstraction:
|
126
126
|
- [Command-line Interface](https://github.com/Arachni/arachni/wiki/Executables).
|
127
127
|
- [Web User Interface](https://github.com/Arachni/arachni-ui-web).
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
- Pause/resume functionality.
|
129
|
+
- Hibernation support -- Suspend to and restore from disk.
|
130
|
+
- High performance asynchronous HTTP requests.
|
131
131
|
- With adjustable concurrency.
|
132
132
|
- With the ability to auto-detect server health and adjust its concurrency
|
133
|
-
|
134
|
-
|
135
|
-
|
133
|
+
automatically.
|
134
|
+
- Support for custom default input values, using pairs of patterns (to be matched
|
135
|
+
against input names) and values to be used to fill in matching inputs.
|
136
136
|
|
137
137
|
### Integrated browser environment
|
138
138
|
|
@@ -155,27 +155,27 @@ with a great deal of information regarding the state of the page at the time.
|
|
155
155
|
|
156
156
|
Relevant information include:
|
157
157
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
158
|
+
- Page DOM, as HTML code.
|
159
|
+
- With a list of DOM transitions required to restore the state of the
|
160
|
+
page to the one at the time it was logged.
|
161
|
+
- Original DOM (i.e. prior to the action that caused the page to be logged),
|
162
|
+
as HTML code.
|
163
|
+
- With a list of DOM transitions.
|
164
|
+
- Data-flow sinks -- Each sink is a JS method which received a tainted argument.
|
165
|
+
- Parent object of the method (ex.: `DOMWindow`).
|
166
|
+
- Method signature (ex.: `decodeURIComponent()`).
|
167
|
+
- Arguments list.
|
168
|
+
- With the identified taint located recursively in the included objects.
|
169
|
+
- Method source code.
|
170
|
+
- JS stacktrace.
|
171
|
+
- Execution flow sinks -- Each sink is a successfully executed JS payload,
|
172
|
+
as injected by the security checks.
|
173
|
+
- Includes a JS stacktrace.
|
174
|
+
- JavaScript stack-traces include:
|
175
|
+
- Method names.
|
176
|
+
- Method locations.
|
177
|
+
- Method source codes.
|
178
|
+
- Argument lists.
|
179
179
|
|
180
180
|
In essence, you have access to roughly the same information that your favorite
|
181
181
|
debugger (for example, FireBug) would provide, as if you had set a breakpoint to
|
@@ -189,15 +189,15 @@ consuming in a high-performance fashion.
|
|
189
189
|
|
190
190
|
Configuration options include:
|
191
191
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
192
|
+
- Adjustable pool-size, i.e. the amount of browser workers to utilize.
|
193
|
+
- Timeout for each job.
|
194
|
+
- Worker TTL counted in jobs -- Workers which exceed the TTL have their browser
|
195
|
+
process respawned.
|
196
|
+
- Ability to disable loading images.
|
197
|
+
- Adjustable screen width and height.
|
198
|
+
- Can be used to analyze responsive and mobile applications.
|
199
|
+
- Ability to wait until certain elements appear in the page.
|
200
|
+
- Configurable local storage data.
|
201
201
|
|
202
202
|
### Coverage
|
203
203
|
|
@@ -212,27 +212,28 @@ order to provide coverage for a full set of possible scenarios.
|
|
212
212
|
By inspecting all possible pages and their states (when using client-side code)
|
213
213
|
Arachni is able to extract and audit the following elements and their inputs:
|
214
214
|
|
215
|
-
|
215
|
+
- Forms
|
216
216
|
- Along with ones that require interaction via a real browser due to DOM events.
|
217
|
-
|
217
|
+
- User-interface Forms
|
218
218
|
- Input and button groups which don't belong to an HTML `<form>` element but
|
219
|
-
|
220
|
-
|
219
|
+
are instead associated via JS code.
|
220
|
+
- User-interface Inputs
|
221
221
|
- Orphan `<input>` elements with associated DOM events.
|
222
|
-
|
222
|
+
- Links
|
223
223
|
- Along with ones that have client-side parameters in their fragment, i.e.:
|
224
|
-
|
224
|
+
`http://example.com/#/?param=val¶m2=val2`
|
225
225
|
- With support for rewrite rules.
|
226
|
-
|
227
|
-
|
226
|
+
- LinkTemplates -- Allowing for extraction of arbitrary inputs from generic paths,
|
227
|
+
based on user-supplied templates -- useful when rewrite rules are not available.
|
228
228
|
- Along with ones that have client-side parameters in their URL fragments, i.e.:
|
229
|
-
|
230
|
-
|
231
|
-
-
|
232
|
-
|
233
|
-
|
234
|
-
-
|
235
|
-
|
229
|
+
`http://example.com/#/param/val/param2/val2`
|
230
|
+
- Cookies
|
231
|
+
- Also supports nested cookies, containing key-value pairs inside individual cookies.
|
232
|
+
- Headers
|
233
|
+
- Generic client-side elements which have associated DOM events.
|
234
|
+
- AJAX-request parameters.
|
235
|
+
- JSON request data.
|
236
|
+
- XML request data.
|
236
237
|
|
237
238
|
### Open [distributed architecture](https://github.com/Arachni/arachni/wiki/Distributed-components)
|
238
239
|
|
@@ -246,7 +247,7 @@ Both approaches allow you to:
|
|
246
247
|
|
247
248
|
- Remotely monitor and manage scans.
|
248
249
|
- Perform multiple scans at the same time -- Each scan is compartmentalized to
|
249
|
-
|
250
|
+
its own OS process to take advantage of:
|
250
251
|
- Multi-core/SMP architectures.
|
251
252
|
- OS-level scheduling/restrictions.
|
252
253
|
- Sandboxed failure propagation.
|
@@ -260,51 +261,51 @@ Both approaches allow you to:
|
|
260
261
|
- Uses JSON to format messages.
|
261
262
|
- Stateful scan monitoring.
|
262
263
|
- Unique sessions automatically only receive updates when polling for progress,
|
263
|
-
|
264
|
+
rather than full data.
|
264
265
|
|
265
266
|
#### [RPC API](https://github.com/Arachni/arachni/wiki/RPC-API)
|
266
267
|
|
267
268
|
- High-performance/low-bandwidth [communication protocol](https://github.com/Arachni/arachni-rpc).
|
268
269
|
- `MessagePack` serialization for performance, efficiency and ease of
|
269
|
-
|
270
|
+
integration with 3rd party systems.
|
270
271
|
- Grid:
|
271
272
|
- Self-healing.
|
272
273
|
- Scale up/down by hot-plugging/hot-unplugging nodes.
|
273
274
|
- Can scale up infinitely by adding nodes to increase scan capacity.
|
274
275
|
- _(Always-on)_ Load-balancing -- All Instances are automatically provided
|
275
|
-
|
276
|
+
by the least burdened Grid member.
|
276
277
|
- With optional per-scan opt-out/override.
|
277
278
|
- _(Optional)_ High-Performance mode -- Combines the resources of
|
278
|
-
|
279
|
+
multiple nodes to perform multi-Instance scans.
|
279
280
|
- Enabled on a per-scan basis.
|
280
281
|
|
281
282
|
### Scope configuration
|
282
283
|
|
283
|
-
|
284
|
-
|
284
|
+
- Filters for redundant pages like galleries, catalogs, etc. based on regular
|
285
|
+
expressions and counters.
|
285
286
|
- Can optionally detect and ignore redundant pages automatically.
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
287
|
+
- URL exclusion filters using regular expressions.
|
288
|
+
- Page exclusion filters based on content, using regular expressions.
|
289
|
+
- URL inclusion filters using regular expressions.
|
290
|
+
- Can be forced to only follow HTTPS paths and not downgrade to HTTP.
|
291
|
+
- Can optionally follow subdomains.
|
292
|
+
- Adjustable page count limit.
|
293
|
+
- Adjustable redirect limit.
|
294
|
+
- Adjustable directory depth limit.
|
295
|
+
- Adjustable DOM depth limit.
|
296
|
+
- Adjustment using URL-rewrite rules.
|
297
|
+
- Can read paths from multiple user supplied files (to both restrict and extend
|
298
|
+
the scope).
|
298
299
|
|
299
300
|
### Audit
|
300
301
|
|
301
|
-
|
302
|
+
- Can audit:
|
302
303
|
- Forms
|
303
304
|
- Can automatically refresh nonce tokens.
|
304
305
|
- Can submit them via the integrated browser environment.
|
305
|
-
|
306
|
+
- User-interface Forms
|
306
307
|
- Input and button groups which don't belong to an HTML `<form>` element
|
307
|
-
|
308
|
+
but are instead associated via JS code.
|
308
309
|
- User-interface Inputs
|
309
310
|
- Orphan `<input>` elements with associated DOM events.
|
310
311
|
- Links
|
@@ -317,13 +318,13 @@ Both approaches allow you to:
|
|
317
318
|
- Generic client-side DOM elements.
|
318
319
|
- JSON request data.
|
319
320
|
- XML request data.
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
321
|
+
- Can ignore binary/non-text pages.
|
322
|
+
- Can audit elements using both `GET` and `POST` HTTP methods.
|
323
|
+
- Can inject both raw and HTTP encoded payloads.
|
324
|
+
- Can submit all links and forms of the page along with the cookie
|
325
|
+
permutations to provide extensive cookie-audit coverage.
|
326
|
+
- Can exclude specific input vectors by name.
|
327
|
+
- Can include specific input vectors by name.
|
327
328
|
|
328
329
|
### Components
|
329
330
|
|
@@ -514,7 +515,7 @@ Passive checks look for the existence of files, folders and signatures.
|
|
514
515
|
|
515
516
|
- Standard output
|
516
517
|
- [HTML](http://www.arachni-scanner.com/reports/report.html/)
|
517
|
-
|
518
|
+
([zip](http://www.arachni-scanner.com/reports/report.html.zip)) (`html`).
|
518
519
|
- [XML](http://www.arachni-scanner.com/reports/report.xml) (`xml`).
|
519
520
|
- [Text](http://www.arachni-scanner.com/reports/report.txt) (`text`).
|
520
521
|
- [JSON](http://www.arachni-scanner.com/reports/report.json) (`json`)
|
@@ -529,32 +530,32 @@ Plugins add extra functionality to the system in a modular fashion, this way the
|
|
529
530
|
core remains lean and makes it easy for anyone to add arbitrary functionality.
|
530
531
|
|
531
532
|
- Passive Proxy (`proxy`) -- Analyzes requests and responses between the web app and
|
532
|
-
|
533
|
+
the browser assisting in AJAX audits, logging-in and/or restricting the scope of the audit.
|
533
534
|
- Form based login (`autologin`).
|
534
535
|
- Script based login (`login_script`).
|
535
536
|
- Dictionary attacker for HTTP Auth (`http_dicattack`).
|
536
537
|
- Dictionary attacker for form based authentication (`form_dicattack`).
|
537
538
|
- Cookie collector (`cookie_collector`) -- Keeps track of cookies while establishing a timeline of changes.
|
538
539
|
- WAF (Web Application Firewall) Detector (`waf_detector`) -- Establishes a baseline of
|
539
|
-
|
540
|
+
normal behavior and uses rDiff analysis to determine if malicious inputs cause any behavioral changes.
|
540
541
|
- BeepNotify (`beep_notify`) -- Beeps when the scan finishes.
|
541
542
|
- EmailNotify (`email_notify`) -- Sends a notification (and optionally a report) over SMTP at
|
542
|
-
|
543
|
+
the end of the scan.
|
543
544
|
- VectorFeed (`vector_feed`) -- Reads in vector data from which it creates elements to be
|
544
|
-
|
545
|
-
|
545
|
+
audited. Can be used to perform extremely specialized/narrow audits on a per vector/element basis.
|
546
|
+
Useful for unit-testing or a gazillion other things.
|
546
547
|
- Script (`script`) -- Loads and runs an external Ruby script under the scope of a plugin,
|
547
|
-
|
548
|
+
used for debugging and general hackery.
|
548
549
|
- Uncommon headers (`uncommon_headers`) -- Logs uncommon headers.
|
549
550
|
- Content-types (`content_types`) -- Logs content-types of server responses aiding in the
|
550
|
-
|
551
|
+
identification of interesting (possibly leaked) files.
|
551
552
|
- Vector collector (`vector_collector`) -- Collects information about all seen input vectors
|
552
|
-
|
553
|
+
which are within the scan scope.
|
553
554
|
- Headers collector (`headers_collector`) -- Collects response headers based on specified criteria.
|
554
555
|
- Exec (`exec`) -- Calls external executables at different scan stages.
|
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.
|
558
559
|
- Webhook notify (`webhook_notify`) -- Sends a webhook payload over HTTP at the end of the scan.
|
559
560
|
- Rate limiter (`rate_limiter`) -- Rate limits HTTP requests.
|
560
561
|
- Page dump (`page_dump`) -- Dumps page data to disk as YAML.
|
@@ -564,7 +565,7 @@ core remains lean and makes it easy for anyone to add arbitrary functionality.
|
|
564
565
|
Default plugins will run for every scan and are placed under `/plugins/defaults/`.
|
565
566
|
|
566
567
|
- AutoThrottle (`autothrottle`) -- Dynamically adjusts HTTP throughput during the scan for
|
567
|
-
|
568
|
+
maximum bandwidth utilization.
|
568
569
|
- Healthmap (`healthmap`) -- Generates sitemap showing the health of each crawled/audited URL
|
569
570
|
|
570
571
|
###### Meta
|
@@ -573,12 +574,12 @@ Plugins under `/plugins/defaults/meta/` perform analysis on the scan results
|
|
573
574
|
to determine trustworthiness or just add context information or general insights.
|
574
575
|
|
575
576
|
- TimingAttacks (`timing_attacks`) -- Provides a notice for issues uncovered by timing attacks
|
576
|
-
|
577
|
-
|
577
|
+
when the affected audited pages returned unusually high response times to begin with.
|
578
|
+
It also points out the danger of DoS attacks against pages that perform heavy-duty processing.
|
578
579
|
- Discovery (`discovery`) -- Performs anomaly detection on issues logged by discovery
|
579
|
-
|
580
|
+
checks and warns of the possibility of false positives where applicable.
|
580
581
|
- Uniformity (`uniformity`) -- Reports inputs that are uniformly vulnerable across a number
|
581
|
-
|
582
|
+
of pages hinting to the lack of a central point of input sanitization.
|
582
583
|
|
583
584
|
### Trainer subsystem
|
584
585
|
|
@@ -611,7 +612,7 @@ You can run `rake spec` to run **all** specs or you can run them selectively usi
|
|
611
612
|
**Please be warned**, the core specs will require a beast of a machine due to the
|
612
613
|
necessity to test the Grid/multi-Instance features of the system.
|
613
614
|
|
614
|
-
**Note**: _The check specs will take
|
615
|
+
**Note**: _The check specs will take many hours to complete due to the timing-attack tests._
|
615
616
|
|
616
617
|
## Bug reports/Feature requests
|
617
618
|
|
@@ -628,10 +629,10 @@ need to follow in order to contribute code:
|
|
628
629
|
|
629
630
|
* Fork the project.
|
630
631
|
* Start a feature branch based on the [experimental](https://github.com/Arachni/arachni/tree/experimental)
|
631
|
-
|
632
|
+
branch (`git checkout -b <feature-name> experimental`).
|
632
633
|
* Add specs for your code.
|
633
634
|
* Run the spec suite to make sure you didn't break anything (`rake spec:core`
|
634
|
-
|
635
|
+
for the core libs or `rake spec` for everything).
|
635
636
|
* Commit and push your changes.
|
636
637
|
* Issue a pull request and wait for your code to be reviewed.
|
637
638
|
|
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
|