arachni 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +21 -0
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/arachni/element/capabilities/auditable/taint.rb +1 -0
- data/lib/arachni/element/form.rb +4 -6
- data/lib/arachni/http.rb +1 -0
- data/lib/arachni/parser.rb +1 -1
- data/lib/arachni/spider.rb +14 -2
- data/lib/version +1 -1
- data/modules/audit/code_injection.rb +36 -10
- data/modules/audit/code_injection_php_input_wrapper.rb +38 -5
- data/modules/audit/code_injection_timing.rb +36 -13
- data/modules/audit/csrf.rb +41 -11
- data/modules/audit/file_inclusion.rb +36 -6
- data/modules/audit/ldapi.rb +31 -6
- data/modules/audit/os_cmd_injection.rb +28 -7
- data/modules/audit/os_cmd_injection_timing.rb +29 -15
- data/modules/audit/path_traversal.rb +42 -6
- data/modules/audit/response_splitting.rb +26 -9
- data/modules/audit/rfi.rb +37 -9
- data/modules/audit/session_fixation.rb +38 -7
- data/modules/audit/source_code_disclosure.rb +41 -5
- data/modules/audit/sqli.rb +57 -6
- data/modules/audit/sqli_blind_rdiff.rb +54 -9
- data/modules/audit/sqli_blind_timing.rb +58 -15
- data/modules/audit/unvalidated_redirect.rb +29 -9
- data/modules/audit/xpath.rb +35 -8
- data/modules/audit/xss.rb +54 -9
- data/modules/audit/xss_event.rb +54 -10
- data/modules/audit/xss_path.rb +56 -9
- data/modules/audit/xss_script_tag.rb +54 -8
- data/modules/audit/xss_tag.rb +53 -7
- data/modules/recon/allowed_methods.rb +24 -4
- data/modules/recon/backdoors.rb +29 -11
- data/modules/recon/backup_files.rb +30 -14
- data/modules/recon/common_directories.rb +27 -8
- data/modules/recon/common_files.rb +27 -7
- data/modules/recon/directory_listing.rb +30 -10
- data/modules/recon/grep/captcha.rb +26 -8
- data/modules/recon/grep/credit_card.rb +25 -6
- data/modules/recon/grep/cvs_svn_users.rb +23 -6
- data/modules/recon/grep/emails.rb +28 -8
- data/modules/recon/grep/form_upload.rb +31 -6
- data/modules/recon/grep/http_only_cookies.rb +33 -8
- data/modules/recon/grep/insecure_cookies.rb +36 -9
- data/modules/recon/grep/mixed_resource.rb +29 -9
- data/modules/recon/grep/password_autocomplete.rb +33 -6
- data/modules/recon/grep/private_ip.rb +21 -7
- data/modules/recon/grep/ssn.rb +17 -6
- data/modules/recon/grep/unencrypted_password_forms.rb +28 -9
- data/modules/recon/htaccess_limit.rb +23 -8
- data/modules/recon/http_put.rb +29 -7
- data/modules/recon/interesting_responses.rb +8 -10
- data/modules/recon/localstart_asp.rb +35 -5
- data/modules/recon/webdav.rb +23 -7
- data/modules/recon/x_forwarded_for_access_restriction_bypass.rb +27 -6
- data/modules/recon/xst.rb +26 -5
- data/plugins/autologin.rb +16 -5
- data/plugins/proxy/server.rb +2 -9
- data/spec/external/wavsep/active/lfi_spec.rb +6 -6
- data/spec/external/wavsep/active/rfi_spec.rb +6 -6
- data/spec/external/wavsep/active/sqli_spec.rb +4 -4
- data/spec/external/wavsep/active/xss_spec.rb +1 -1
- data/spec/support/logs/Dispatcher - 1332-56847.log +9 -0
- data/spec/support/logs/Dispatcher - 1361-63434.log +21 -0
- data/spec/support/logs/Dispatcher - 1545-55308.log +9 -0
- data/spec/support/logs/Dispatcher - 1559-18938.log +19 -0
- data/spec/support/logs/Dispatcher - 1568-25013.log +17 -0
- data/spec/support/logs/Dispatcher - 1577-55689.log +13 -0
- data/spec/support/logs/Dispatcher - 1586-18577.log +9 -0
- data/spec/support/logs/Dispatcher - 1595-49353.log +9 -0
- data/spec/support/logs/Dispatcher - 1604-27831.log +11 -0
- data/spec/support/logs/Dispatcher - 1617-57444.log +11 -0
- data/spec/support/logs/Dispatcher - 1631-28737.log +11 -0
- data/spec/support/logs/Dispatcher - 1644-21815.log +33 -0
- data/spec/support/logs/Dispatcher - 1738-53470.log +21 -0
- data/spec/support/logs/Dispatcher - 1747-64173.log +21 -0
- data/spec/support/logs/Dispatcher - 1756-11866.log +23 -0
- data/spec/support/logs/Dispatcher - 1798-12175.log +19 -0
- data/spec/support/logs/Dispatcher - 1807-22790.log +17 -0
- data/spec/support/logs/Dispatcher - 1816-57823.log +15 -0
- data/spec/support/logs/Dispatcher - 1831-64825.log +11 -0
- data/spec/support/logs/Dispatcher - 1845-27623.log +9 -0
- data/spec/support/logs/Dispatcher - 1854-26066.log +9 -0
- data/spec/support/logs/Dispatcher - 1863-37486.log +9 -0
- data/spec/support/logs/Dispatcher - 1874-22463.log +9 -0
- data/spec/support/logs/Dispatcher - 1883-41263.log +11 -0
- data/spec/support/logs/Dispatcher - 1900-53660.log +9 -0
- data/spec/support/logs/Dispatcher - 1909-44423.log +9 -0
- data/spec/support/logs/Dispatcher - 1921-58931.log +9 -0
- data/spec/support/logs/Dispatcher - 1993-6448.log +63 -0
- data/spec/support/logs/Dispatcher - 2002-19206.log +43 -0
- data/spec/support/logs/Dispatcher - 2011-11852.log +39 -0
- data/spec/support/logs/Dispatcher - 2020-65055.log +34 -0
- data/spec/support/logs/Dispatcher - 2029-48445.log +28 -0
- data/spec/support/logs/Dispatcher - 2038-55271.log +21 -0
- data/spec/support/logs/Dispatcher - 2047-45722.log +13 -0
- data/spec/support/logs/Dispatcher - 2057-48194.log +9 -0
- data/spec/support/logs/Dispatcher - 2189-39843.log +19 -0
- data/spec/support/logs/Dispatcher - 2199-15985.log +21 -0
- data/spec/support/logs/Dispatcher - 2208-22080.log +15 -0
- data/spec/support/logs/Dispatcher - 2221-37690.log +19 -0
- data/spec/support/logs/Dispatcher - 2230-47867.log +21 -0
- data/spec/support/logs/Dispatcher - 2239-27060.log +15 -0
- data/spec/support/logs/Dispatcher - 2358-8967.log +17 -0
- data/spec/support/logs/Dispatcher - 2367-27103.log +21 -0
- data/spec/support/logs/Dispatcher - 2376-16287.log +13 -0
- data/spec/support/logs/Dispatcher - 2389-9109.log +19 -0
- data/spec/support/logs/Dispatcher - 2398-62926.log +21 -0
- data/spec/support/logs/Dispatcher - 2407-48685.log +15 -0
- data/spec/support/logs/Dispatcher - 2459-62480.log +17 -0
- data/spec/support/logs/Dispatcher - 2470-57894.log +21 -0
- data/spec/support/logs/Dispatcher - 2479-51883.log +13 -0
- data/spec/support/logs/Dispatcher - 2493-36944.log +17 -0
- data/spec/support/logs/Dispatcher - 2503-59143.log +21 -0
- data/spec/support/logs/Dispatcher - 2513-33084.log +13 -0
- data/spec/support/logs/Dispatcher - 25430-46306.log +9 -0
- data/spec/support/logs/Dispatcher - 25457-10711.log +23 -0
- data/spec/support/logs/Dispatcher - 25603-48892.log +9 -0
- data/spec/support/logs/Dispatcher - 25613-24775.log +19 -0
- data/spec/support/logs/Dispatcher - 25622-59684.log +17 -0
- data/spec/support/logs/Dispatcher - 25631-23195.log +13 -0
- data/spec/support/logs/Dispatcher - 25640-9810.log +9 -0
- data/spec/support/logs/Dispatcher - 25649-52757.log +9 -0
- data/spec/support/logs/Dispatcher - 25658-58550.log +11 -0
- data/spec/support/logs/Dispatcher - 25671-30871.log +11 -0
- data/spec/support/logs/Dispatcher - 25684-48620.log +11 -0
- data/spec/support/logs/Dispatcher - 25697-18124.log +37 -0
- data/spec/support/logs/Dispatcher - 25762-35321.log +21 -0
- data/spec/support/logs/Dispatcher - 25771-64633.log +21 -0
- data/spec/support/logs/Dispatcher - 25780-43558.log +23 -0
- data/spec/support/logs/Dispatcher - 25821-43561.log +19 -0
- data/spec/support/logs/Dispatcher - 25830-39112.log +17 -0
- data/spec/support/logs/Dispatcher - 25839-44093.log +15 -0
- data/spec/support/logs/Dispatcher - 25852-12057.log +11 -0
- data/spec/support/logs/Dispatcher - 25866-49029.log +9 -0
- data/spec/support/logs/Dispatcher - 25875-32179.log +9 -0
- data/spec/support/logs/Dispatcher - 25884-62703.log +9 -0
- data/spec/support/logs/Dispatcher - 25894-4228.log +9 -0
- data/spec/support/logs/Dispatcher - 25903-6709.log +11 -0
- data/spec/support/logs/Dispatcher - 25917-29651.log +9 -0
- data/spec/support/logs/Dispatcher - 25926-12708.log +9 -0
- data/spec/support/logs/Dispatcher - 25935-54092.log +9 -0
- data/spec/support/logs/Dispatcher - 25990-26756.log +63 -0
- data/spec/support/logs/Dispatcher - 25999-4016.log +43 -0
- data/spec/support/logs/Dispatcher - 26008-52076.log +39 -0
- data/spec/support/logs/Dispatcher - 26017-48497.log +34 -0
- data/spec/support/logs/Dispatcher - 26026-28839.log +28 -0
- data/spec/support/logs/Dispatcher - 26035-54215.log +21 -0
- data/spec/support/logs/Dispatcher - 26044-27216.log +13 -0
- data/spec/support/logs/Dispatcher - 26054-53464.log +9 -0
- data/spec/support/logs/Dispatcher - 26163-65271.log +19 -0
- data/spec/support/logs/Dispatcher - 26173-58105.log +21 -0
- data/spec/support/logs/Dispatcher - 26182-40848.log +15 -0
- data/spec/support/logs/Dispatcher - 26195-2855.log +19 -0
- data/spec/support/logs/Dispatcher - 26204-35297.log +21 -0
- data/spec/support/logs/Dispatcher - 26213-59588.log +15 -0
- data/spec/support/logs/Dispatcher - 26333-40774.log +17 -0
- data/spec/support/logs/Dispatcher - 26342-45541.log +21 -0
- data/spec/support/logs/Dispatcher - 26351-3349.log +13 -0
- data/spec/support/logs/Dispatcher - 26364-37456.log +19 -0
- data/spec/support/logs/Dispatcher - 26373-37340.log +21 -0
- data/spec/support/logs/Dispatcher - 26382-54864.log +15 -0
- data/spec/support/logs/Dispatcher - 26434-3070.log +17 -0
- data/spec/support/logs/Dispatcher - 26448-14295.log +21 -0
- data/spec/support/logs/Dispatcher - 26474-30587.log +13 -0
- data/spec/support/logs/Dispatcher - 26500-32529.log +17 -0
- data/spec/support/logs/Dispatcher - 26509-16952.log +21 -0
- data/spec/support/logs/Dispatcher - 26519-43332.log +13 -0
- data/spec/support/logs/Dispatcher - 26750-61867.log +19 -0
- data/spec/support/logs/Dispatcher - 26759-22532.log +21 -0
- data/spec/support/logs/Dispatcher - 26768-18231.log +15 -0
- data/spec/support/logs/Dispatcher - 26792-41661.log +21 -0
- data/spec/support/logs/Dispatcher - 26801-14384.log +25 -0
- data/spec/support/logs/Dispatcher - 26810-2591.log +15 -0
- data/spec/support/logs/Dispatcher - 26846-14591.log +17 -0
- data/spec/support/logs/Dispatcher - 26855-15708.log +21 -0
- data/spec/support/logs/Dispatcher - 26864-2062.log +13 -0
- data/spec/support/logs/Dispatcher - 26877-14471.log +21 -0
- data/spec/support/logs/Dispatcher - 26886-49795.log +25 -0
- data/spec/support/logs/Dispatcher - 26895-21093.log +15 -0
- data/spec/support/logs/Dispatcher - 26931-30049.log +17 -0
- data/spec/support/logs/Dispatcher - 26940-34273.log +21 -0
- data/spec/support/logs/Dispatcher - 26949-30040.log +13 -0
- data/spec/support/logs/Dispatcher - 26962-8152.log +17 -0
- data/spec/support/logs/Dispatcher - 26971-53062.log +21 -0
- data/spec/support/logs/Dispatcher - 26980-7548.log +13 -0
- data/spec/support/logs/Dispatcher - 2737-20989.log +19 -0
- data/spec/support/logs/Dispatcher - 2746-5423.log +21 -0
- data/spec/support/logs/Dispatcher - 2755-53393.log +15 -0
- data/spec/support/logs/Dispatcher - 27615-41812.log +19 -0
- data/spec/support/logs/Dispatcher - 27624-43683.log +21 -0
- data/spec/support/logs/Dispatcher - 27633-11593.log +15 -0
- data/spec/support/logs/Dispatcher - 27658-12186.log +21 -0
- data/spec/support/logs/Dispatcher - 27667-15575.log +25 -0
- data/spec/support/logs/Dispatcher - 27676-17207.log +15 -0
- data/spec/support/logs/Dispatcher - 27712-2233.log +17 -0
- data/spec/support/logs/Dispatcher - 27721-3842.log +21 -0
- data/spec/support/logs/Dispatcher - 27730-22695.log +13 -0
- data/spec/support/logs/Dispatcher - 27743-8364.log +21 -0
- data/spec/support/logs/Dispatcher - 27752-6140.log +25 -0
- data/spec/support/logs/Dispatcher - 27761-25015.log +15 -0
- data/spec/support/logs/Dispatcher - 27797-9270.log +17 -0
- data/spec/support/logs/Dispatcher - 2780-58168.log +21 -0
- data/spec/support/logs/Dispatcher - 27806-48623.log +21 -0
- data/spec/support/logs/Dispatcher - 27815-58778.log +13 -0
- data/spec/support/logs/Dispatcher - 27828-29742.log +17 -0
- data/spec/support/logs/Dispatcher - 27837-46211.log +21 -0
- data/spec/support/logs/Dispatcher - 27846-16143.log +13 -0
- data/spec/support/logs/Dispatcher - 2789-29375.log +25 -0
- data/spec/support/logs/Dispatcher - 2798-10983.log +15 -0
- data/spec/support/logs/Dispatcher - 2836-2354.log +17 -0
- data/spec/support/logs/Dispatcher - 2845-65341.log +21 -0
- data/spec/support/logs/Dispatcher - 2854-18936.log +13 -0
- data/spec/support/logs/Dispatcher - 2867-51979.log +21 -0
- data/spec/support/logs/Dispatcher - 2876-21086.log +25 -0
- data/spec/support/logs/Dispatcher - 2887-17393.log +15 -0
- data/spec/support/logs/Dispatcher - 2930-37394.log +17 -0
- data/spec/support/logs/Dispatcher - 2943-46737.log +21 -0
- data/spec/support/logs/Dispatcher - 2956-37866.log +13 -0
- data/spec/support/logs/Dispatcher - 2976-21012.log +17 -0
- data/spec/support/logs/Dispatcher - 2990-48082.log +21 -0
- data/spec/support/logs/Dispatcher - 2999-16391.log +13 -0
- data/spec/support/logs/{Instance - 10762-33696.error.log → Instance - 2204-45164.error.log } +59 -40
- data/spec/support/logs/{Instance - 11038-18065.error.log → Instance - 2475-49789.error.log } +61 -42
- data/spec/support/logs/{Instance - 11069-34848.error.log → Instance - 2509-39450.error.log } +158 -139
- data/spec/support/logs/{Instance - 11229-38634.error.log → Instance - 2533-5785.error.log } +56 -37
- data/spec/support/logs/Instance - 2539-42941.error.log +356 -0
- data/spec/support/logs/Instance - 26178-57631.error.log +324 -0
- data/spec/support/logs/Instance - 26458-60253.error.log +326 -0
- data/spec/support/logs/Instance - 26514-44685.error.log +423 -0
- data/spec/support/logs/Instance - 26538-43093.error.log +322 -0
- data/spec/support/logs/Instance - 26544-52217.error.log +328 -0
- data/spec/support/logs/{Instance - 11097-33191.error.log → Instance - 26682-37056.error.log } +65 -57
- data/spec/support/logs/{Instance - 11091-33954.error.log → Instance - 2669-56818.error.log } +56 -37
- data/spec/support/logs/Instance - 27547-3928.error.log +309 -0
- data/spec/support/servers/plugins/autologin.rb +13 -1
- metadata +974 -782
- data/spec/support/logs/Dispatcher - 10129-46995.log +0 -9
- data/spec/support/logs/Dispatcher - 10139-63648.log +0 -19
- data/spec/support/logs/Dispatcher - 10149-5551.log +0 -17
- data/spec/support/logs/Dispatcher - 10158-34385.log +0 -13
- data/spec/support/logs/Dispatcher - 10167-55701.log +0 -9
- data/spec/support/logs/Dispatcher - 10176-8922.log +0 -9
- data/spec/support/logs/Dispatcher - 10185-53716.log +0 -11
- data/spec/support/logs/Dispatcher - 10198-44724.log +0 -11
- data/spec/support/logs/Dispatcher - 10211-7697.log +0 -11
- data/spec/support/logs/Dispatcher - 10224-3751.log +0 -35
- data/spec/support/logs/Dispatcher - 10285-7404.log +0 -21
- data/spec/support/logs/Dispatcher - 10294-56221.log +0 -21
- data/spec/support/logs/Dispatcher - 10303-2483.log +0 -23
- data/spec/support/logs/Dispatcher - 10344-60543.log +0 -19
- data/spec/support/logs/Dispatcher - 10355-31708.log +0 -17
- data/spec/support/logs/Dispatcher - 10364-63170.log +0 -15
- data/spec/support/logs/Dispatcher - 10377-37936.log +0 -11
- data/spec/support/logs/Dispatcher - 10390-37511.log +0 -9
- data/spec/support/logs/Dispatcher - 10400-29603.log +0 -9
- data/spec/support/logs/Dispatcher - 10409-57042.log +0 -9
- data/spec/support/logs/Dispatcher - 10418-17812.log +0 -9
- data/spec/support/logs/Dispatcher - 10427-59862.log +0 -11
- data/spec/support/logs/Dispatcher - 10440-48351.log +0 -9
- data/spec/support/logs/Dispatcher - 10449-24218.log +0 -9
- data/spec/support/logs/Dispatcher - 10458-54646.log +0 -9
- data/spec/support/logs/Dispatcher - 10511-3333.log +0 -63
- data/spec/support/logs/Dispatcher - 10520-50009.log +0 -43
- data/spec/support/logs/Dispatcher - 10529-44870.log +0 -39
- data/spec/support/logs/Dispatcher - 10538-49556.log +0 -34
- data/spec/support/logs/Dispatcher - 10547-61887.log +0 -28
- data/spec/support/logs/Dispatcher - 10556-31163.log +0 -21
- data/spec/support/logs/Dispatcher - 10565-40008.log +0 -13
- data/spec/support/logs/Dispatcher - 10575-18836.log +0 -9
- data/spec/support/logs/Dispatcher - 10747-32268.log +0 -19
- data/spec/support/logs/Dispatcher - 10757-4081.log +0 -21
- data/spec/support/logs/Dispatcher - 10766-49190.log +0 -15
- data/spec/support/logs/Dispatcher - 10780-46610.log +0 -19
- data/spec/support/logs/Dispatcher - 10789-5332.log +0 -21
- data/spec/support/logs/Dispatcher - 10798-56243.log +0 -15
- data/spec/support/logs/Dispatcher - 10920-32037.log +0 -17
- data/spec/support/logs/Dispatcher - 10929-35662.log +0 -21
- data/spec/support/logs/Dispatcher - 10938-64010.log +0 -13
- data/spec/support/logs/Dispatcher - 10951-44746.log +0 -19
- data/spec/support/logs/Dispatcher - 10961-55791.log +0 -21
- data/spec/support/logs/Dispatcher - 10972-58913.log +0 -15
- data/spec/support/logs/Dispatcher - 11023-45004.log +0 -17
- data/spec/support/logs/Dispatcher - 11033-55505.log +0 -21
- data/spec/support/logs/Dispatcher - 11042-46123.log +0 -13
- data/spec/support/logs/Dispatcher - 11055-26836.log +0 -17
- data/spec/support/logs/Dispatcher - 11064-60361.log +0 -21
- data/spec/support/logs/Dispatcher - 11073-17507.log +0 -13
- data/spec/support/logs/Dispatcher - 11298-28357.log +0 -19
- data/spec/support/logs/Dispatcher - 11307-62669.log +0 -21
- data/spec/support/logs/Dispatcher - 11316-9391.log +0 -15
- data/spec/support/logs/Dispatcher - 11340-45921.log +0 -21
- data/spec/support/logs/Dispatcher - 11349-8693.log +0 -25
- data/spec/support/logs/Dispatcher - 11358-53753.log +0 -15
- data/spec/support/logs/Dispatcher - 11394-29437.log +0 -17
- data/spec/support/logs/Dispatcher - 11403-59953.log +0 -21
- data/spec/support/logs/Dispatcher - 11412-51134.log +0 -13
- data/spec/support/logs/Dispatcher - 11425-42569.log +0 -21
- data/spec/support/logs/Dispatcher - 11434-16150.log +0 -25
- data/spec/support/logs/Dispatcher - 11443-19072.log +0 -15
- data/spec/support/logs/Dispatcher - 11479-39149.log +0 -17
- data/spec/support/logs/Dispatcher - 11488-42169.log +0 -21
- data/spec/support/logs/Dispatcher - 11497-29822.log +0 -13
- data/spec/support/logs/Dispatcher - 11510-8273.log +0 -17
- data/spec/support/logs/Dispatcher - 11519-18206.log +0 -21
- data/spec/support/logs/Dispatcher - 11528-55825.log +0 -13
- data/spec/support/logs/Dispatcher - 9969-52890.log +0 -9
- data/spec/support/logs/Dispatcher - 9996-38451.log +0 -21
@@ -14,13 +14,10 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Looks for and logs e-mail addresses.
|
19
18
|
#
|
20
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
|
-
#
|
22
|
-
# @version 0.1.1
|
23
|
-
#
|
20
|
+
# @version 0.1.2
|
24
21
|
class Arachni::Modules::EMails < Arachni::Module::Base
|
25
22
|
|
26
23
|
def run
|
@@ -36,15 +33,38 @@ class Arachni::Modules::EMails < Arachni::Module::Base
|
|
36
33
|
description: %q{Greps pages for disclosed e-mail addresses.},
|
37
34
|
elements: [ Element::BODY ],
|
38
35
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
39
|
-
version: '0.1.
|
36
|
+
version: '0.1.2',
|
40
37
|
targets: %w(Generic),
|
41
38
|
issue: {
|
42
39
|
name: %q{E-mail address disclosure},
|
43
|
-
description: %q{
|
40
|
+
description: %q{Email addresses are typically found on
|
41
|
+
'Contact us' pages, however they can also be found within
|
42
|
+
scripts or code comments of the application. They are used to
|
43
|
+
provide a legitimate means of contacting an organisation. As
|
44
|
+
one of the initial steps in information gathering, cyber-
|
45
|
+
criminals will spider a website and using automated methods
|
46
|
+
collect as many email addresses as possible, that they may
|
47
|
+
then use in a social engineering attack against that user.
|
48
|
+
Using the same automated methods, Arachni was able to detect
|
49
|
+
one or more email addresses that were stored within the
|
50
|
+
affected page.},
|
44
51
|
cwe: '200',
|
45
52
|
severity: Severity::INFORMATIONAL,
|
46
|
-
remedy_guidance: %q{
|
47
|
-
a way that it is hard
|
53
|
+
remedy_guidance: %q{As a general rule, email addresses should be
|
54
|
+
presented in such a way that it is hard for scripts to
|
55
|
+
process them automatically. For example,
|
56
|
+
'test@arachni-scanner.com' may become
|
57
|
+
'test[at]yourdomain[dot]com'. Although this will force extra
|
58
|
+
user interaction when utilising the address (changing [dot]
|
59
|
+
to . etc) it will reduce the likelihood that these emails
|
60
|
+
will be discovered by an automated process. To provide
|
61
|
+
further protection against manual discovery, generic email
|
62
|
+
addresses should be used. For example on a 'contact us' page
|
63
|
+
'contactus@arachni-scanner.com' should be utilised instead
|
64
|
+
of an individual's email address such as
|
65
|
+
'john.doe@arachni-scanner.com'. Performing this extra step
|
66
|
+
may reduce the likelihood of username enumeration for the
|
67
|
+
domain.}
|
48
68
|
},
|
49
69
|
max_issues: 25
|
50
70
|
}
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#
|
19
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
20
20
|
#
|
21
|
-
# @version 0.
|
21
|
+
# @version 0.2
|
22
22
|
class Arachni::Modules::FileUpload < Arachni::Module::Base
|
23
23
|
|
24
24
|
|
@@ -34,13 +34,12 @@ class Arachni::Modules::FileUpload < Arachni::Module::Base
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.info
|
37
|
-
description = 'Logs upload forms which require manual testing.'
|
38
37
|
{
|
39
38
|
name: 'Form-based File Upload',
|
40
|
-
description:
|
39
|
+
description: %q{Logs file upload forms which require manual testing.},
|
41
40
|
elements: [ Element::FORM ],
|
42
41
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
43
|
-
version: '0.
|
42
|
+
version: '0.2',
|
44
43
|
targets: %w(Generic),
|
45
44
|
references: {
|
46
45
|
'owasp.org' => 'https://www.owasp.org/index.php/Unrestricted_File_Upload'
|
@@ -49,9 +48,35 @@ class Arachni::Modules::FileUpload < Arachni::Module::Base
|
|
49
48
|
issue: {
|
50
49
|
name: %q{Form-based File Upload},
|
51
50
|
cwe: '200',
|
52
|
-
description:
|
51
|
+
description: %q{The design of many web applications require that
|
52
|
+
users be able to upload files that will either be stored or
|
53
|
+
processed by the receiving web server. Arachni has flagged
|
54
|
+
this not as a vulnerability, but as a prompt for the
|
55
|
+
penetration tester to conduct further manual testing on the
|
56
|
+
file upload function. An insecure form-based file upload
|
57
|
+
could allow a cyber-criminal a means to abuse and
|
58
|
+
successfully exploit the server directly, and/or any third
|
59
|
+
party that may later access the file. This can occur through
|
60
|
+
uploading a file containing server side code (such as PHP)
|
61
|
+
that is then executed when requested by the client.},
|
53
62
|
tags: %w(file upload),
|
54
|
-
severity: Severity::INFORMATIONAL
|
63
|
+
severity: Severity::INFORMATIONAL,
|
64
|
+
remedy_guidance: %q{The identified page should at a minimum: 1.
|
65
|
+
Whitelist permitted file types and block all others. This
|
66
|
+
should be conducted on the MIME type of the file rather than
|
67
|
+
its extension. 2. As the file is uploaded, and prior to
|
68
|
+
being handled (written to the disk) by the server, the
|
69
|
+
filename should be stripped of all control, special, or
|
70
|
+
Unicode characters. 3. Ensure that the upload is conducted
|
71
|
+
via the HTTP POST method rather than GET or PUT. 4. Ensure
|
72
|
+
that the file is written to a directory that does not hold
|
73
|
+
any execute permission, and that all files within that
|
74
|
+
directory inherit the same permissions. 5. Scan (if
|
75
|
+
possible) with an up-to-date virus scanner before being
|
76
|
+
stored. 6. Ensure that the application handles files as per
|
77
|
+
the host operating system. For example the length of the
|
78
|
+
file name is appropriate, there is adequate space to store
|
79
|
+
the file, protection against overwriting other files etc.},
|
55
80
|
},
|
56
81
|
max_issues: 25
|
57
82
|
}
|
@@ -14,13 +14,11 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Logs cookies that are accessible via JavaScript.
|
19
18
|
#
|
20
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
20
|
#
|
22
|
-
# @version 0.1.
|
23
|
-
#
|
21
|
+
# @version 0.1.2
|
24
22
|
class Arachni::Modules::HttpOnlyCookies < Arachni::Module::Base
|
25
23
|
|
26
24
|
def run
|
@@ -38,18 +36,45 @@ class Arachni::Modules::HttpOnlyCookies < Arachni::Module::Base
|
|
38
36
|
description: %q{Logs cookies that are accessible via JavaScript.},
|
39
37
|
elements: [ Element::COOKIE ],
|
40
38
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
41
|
-
version: '0.1.
|
39
|
+
version: '0.1.2',
|
42
40
|
targets: %w(Generic),
|
43
41
|
references: {
|
44
|
-
'
|
42
|
+
'OWASP' => 'https://www.owasp.org/index.php/HttpOnly'
|
45
43
|
},
|
46
44
|
issue: {
|
47
45
|
name: %q{HttpOnly cookie},
|
48
|
-
description: %q{
|
49
|
-
|
46
|
+
description: %q{HTTP by itself is a stateless protocol.
|
47
|
+
Therefor the server is unable to determine which requests
|
48
|
+
are performed by which client, and which clients are
|
49
|
+
authenticated or unauthenticated. The use of HTTP cookies
|
50
|
+
within the headers, allows a web server to identify each
|
51
|
+
individual client, and can therefor determine which clients
|
52
|
+
hold valid authentication from those that do not. These are
|
53
|
+
known as session cookies. When a cookie is set by the server
|
54
|
+
there are several flags that can be set to configure the
|
55
|
+
properties of the cookie, and how it is handled by the browser.
|
56
|
+
The HttpOnly flag assists in the prevention of client side
|
57
|
+
scripts (such as JavaScript) accessing, and using the cookie.
|
58
|
+
This can help preventing XSS attacks targeting the cookies
|
59
|
+
holding the clients session token (Setting the HttpOnly flag
|
60
|
+
does not prevent, or remediate against XSS vulnerabilities
|
61
|
+
themselves).},
|
50
62
|
cwe: '200',
|
51
63
|
severity: Severity::INFORMATIONAL,
|
52
|
-
remedy_guidance: %q{
|
64
|
+
remedy_guidance: %q{The initial steps to remedy this should
|
65
|
+
be determined on whether any client side scripts (such as
|
66
|
+
JavaScript) are required to access the cookie. If this cannot
|
67
|
+
be determined, then it is likely not required by the scripts
|
68
|
+
and should therefor have the HttpOnly flag as per the
|
69
|
+
following remediation actions. The server should ensure that
|
70
|
+
the cookie has its HttpOnly flag set. An example of this is
|
71
|
+
as a server header is 'Set-Cookie: NAME=VALUE; HttpOnly'.
|
72
|
+
Depending on the framework and server in use by the affected
|
73
|
+
page, the technical remediation actions will differ.
|
74
|
+
Additionally, it should be noted that some older browsers are
|
75
|
+
not compatible with the HttpOnly flag, and therefore setting
|
76
|
+
this flag will not protect those clients against this form
|
77
|
+
of attack.},
|
53
78
|
}
|
54
79
|
}
|
55
80
|
end
|
@@ -14,11 +14,8 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
19
|
-
#
|
20
|
-
# @version 0.1.1
|
21
|
-
#
|
18
|
+
# @version 0.1.2
|
22
19
|
class Arachni::Modules::InsecureCookies < Arachni::Module::Base
|
23
20
|
|
24
21
|
def run
|
@@ -36,18 +33,48 @@ class Arachni::Modules::InsecureCookies < Arachni::Module::Base
|
|
36
33
|
description: %q{Logs cookies that are served over an unencrypted channel.},
|
37
34
|
elements: [ Element::COOKIE ],
|
38
35
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
39
|
-
version: '0.1.
|
36
|
+
version: '0.1.2',
|
40
37
|
targets: %w(Generic),
|
41
38
|
references: {
|
42
|
-
'
|
39
|
+
'OWASP' => 'https://www.owasp.org/index.php/SecureFlag'
|
43
40
|
},
|
44
41
|
issue: {
|
45
42
|
name: %q{Insecure cookie},
|
46
|
-
description: %q{
|
47
|
-
|
43
|
+
description: %q{HTTP by itself is a stateless protocol.
|
44
|
+
Therefore the server is unable to determine which requests
|
45
|
+
are performed by which client, and which clients are
|
46
|
+
authenticated or unauthenticated. The use of HTTP cookies
|
47
|
+
within the headers, allows a web server to identify each
|
48
|
+
individual client, and can therefore determine which clients
|
49
|
+
hold valid authentication from those that do not. These are
|
50
|
+
known as session cookies. Because these cookies are used to
|
51
|
+
store a client's session (authenticated or unauthenticated),
|
52
|
+
it is important that the cookie is passed via an encrypted
|
53
|
+
channel. When a cookie is set by the server (send from the
|
54
|
+
server to the client in the header of response) there are
|
55
|
+
several flags that can be set to determine the properties of
|
56
|
+
the cookie, and how it is to handle by the browser. One of
|
57
|
+
these flags is known as the 'secure' flag. When the secure
|
58
|
+
flag is set, the browser will prevent it being send over any
|
59
|
+
clear text channel (HTTP), and only allow it to be sent when
|
60
|
+
an encrypted channel is used (HTTPS). Arachni discovered
|
61
|
+
that a cookie, and possible session token was set by the
|
62
|
+
server without the secure flag being set. Although the
|
63
|
+
initial setting of this cookie was via an HTTPS connection,
|
64
|
+
any HTTP link to the same server will result in the cookie
|
65
|
+
being send in clear text.},
|
48
66
|
cwe: '200',
|
49
67
|
severity: Severity::INFORMATIONAL,
|
50
|
-
remedy_guidance: %q{
|
68
|
+
remedy_guidance: %q{The initial steps to remediate this should
|
69
|
+
be determined on whether the cookie is sensitive in nature,
|
70
|
+
or is used to store a session token. If the cookie does not
|
71
|
+
contain any sensitive information then the risk of this
|
72
|
+
vulnerability is reduced, however if the cookie does contain
|
73
|
+
sensitive information, then the server should ensure that
|
74
|
+
the cookie has its secure flag set. An example of this as
|
75
|
+
a response header is 'Set-Cookie: NAME=VALUE; secure'.
|
76
|
+
Depending on the framework and server in use by the affected
|
77
|
+
page, the technical remediation actions will differ.},
|
51
78
|
}
|
52
79
|
}
|
53
80
|
end
|
@@ -14,17 +14,15 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Mixed Resource detection module
|
19
18
|
#
|
20
19
|
# Looks for resources served over HTTP when the HTML code is server over HTTPS.
|
21
20
|
#
|
22
21
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
22
|
#
|
24
|
-
# @version 0.1.
|
23
|
+
# @version 0.1.4
|
25
24
|
#
|
26
25
|
# @see http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed-scripting.html
|
27
|
-
#
|
28
26
|
class Arachni::Modules::MixedResource < Arachni::Module::Base
|
29
27
|
|
30
28
|
def run
|
@@ -71,20 +69,42 @@ class Arachni::Modules::MixedResource < Arachni::Module::Base
|
|
71
69
|
description: %q{Looks for resources served over HTTP when the HTML code is server over HTTPS.},
|
72
70
|
elements: [ Element::BODY ],
|
73
71
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
74
|
-
version: '0.1.
|
72
|
+
version: '0.1.4',
|
75
73
|
references: {
|
76
74
|
'Google Online Security Blog' =>
|
77
|
-
'http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed-scripting.html'
|
75
|
+
'http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed-scripting.html',
|
76
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246945/Insufficient%20Transport%20Layer%20Protection',
|
77
|
+
'OWASP' => 'www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet'
|
78
78
|
},
|
79
79
|
targets: %w(Generic),
|
80
80
|
issue: {
|
81
81
|
name: %q{Mixed Resource},
|
82
|
-
description: %q{
|
83
|
-
|
84
|
-
|
82
|
+
description: %q{The HTTP protocol by itself is clear text,
|
83
|
+
meaning that any data that is transmitted via HTTP can be
|
84
|
+
captured and the contents viewed. To keep data private, and
|
85
|
+
prevent it from being intercepted, HTTP is often tunnelled
|
86
|
+
through either a Secure Sockets Layer (SSL), or Transport
|
87
|
+
Layer Security (TLS) connection. When either of these encryption
|
88
|
+
standards are used, it is referred to as HTTPS. Cyber-
|
89
|
+
criminals will often attempt to compromise sensitive
|
90
|
+
information passed from the client to the server using HTTP.
|
91
|
+
This can be conducted via various different Man-in-The-Middle
|
92
|
+
(MiTM) attacks or through network packet captures.
|
93
|
+
Arachni discovered that the affected site is utilising both
|
94
|
+
HTTP and HTTPS. While the HTML code is served over HTTPS,
|
95
|
+
the server is also serving resources over an unencrypted
|
96
|
+
channel which can lead to the compromise of data, while
|
97
|
+
providing a false sense of security to the user. },
|
85
98
|
tags: %w(unencrypted resource javascript stylesheet),
|
86
99
|
severity: Severity::MEDIUM,
|
87
|
-
remedy_guidance: %q{
|
100
|
+
remedy_guidance: %q{All pages and/or resources on the affected
|
101
|
+
site should be secured equally, utilising the latest and
|
102
|
+
most secure encryption protocols. These include SSL version
|
103
|
+
3.0 and TLS version 1.2. While TLS 1.2 is the latest and the
|
104
|
+
most preferred protocol, not all browsers will support this
|
105
|
+
encryption method. Therefore the more common SSL is included.
|
106
|
+
Older protocols such as SSL version 2, and weak ciphers
|
107
|
+
(< 128 bit) should also be disabled.}
|
88
108
|
}
|
89
109
|
|
90
110
|
}
|
@@ -20,7 +20,7 @@
|
|
20
20
|
#
|
21
21
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
22
22
|
#
|
23
|
-
# @version 0.
|
23
|
+
# @version 0.2
|
24
24
|
#
|
25
25
|
class Arachni::Modules::PasswordAutocomplete < Arachni::Module::Base
|
26
26
|
|
@@ -42,14 +42,41 @@ class Arachni::Modules::PasswordAutocomplete < Arachni::Module::Base
|
|
42
42
|
without explicitly disabling auto-complete.},
|
43
43
|
elements: [ Element::FORM ],
|
44
44
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
45
|
-
version: '0.
|
45
|
+
version: '0.2',
|
46
46
|
targets: %w(Generic),
|
47
47
|
issue: {
|
48
48
|
name: %q{Password field with auto-complete},
|
49
|
-
description: %q{
|
50
|
-
|
51
|
-
the
|
52
|
-
|
49
|
+
description: %q{In typical form-based web applications, it is
|
50
|
+
common practice for developers to allow autocomplete within
|
51
|
+
the HTML form to improve the usability of the page. With
|
52
|
+
autocomplete enabled (default) it allows the browser to
|
53
|
+
cache previously entered form values entered by the user.
|
54
|
+
For legitimate purposes, this allows the user to quickly
|
55
|
+
re-enter the same data, when completing the form multiple
|
56
|
+
times. When autocomplete is enabled on either/both the
|
57
|
+
username password fields, this could allow a cyber-criminal
|
58
|
+
with access to the victim's computer the ability to have the
|
59
|
+
victims credentials autocomplete (automatically entered) as
|
60
|
+
the cyber-criminal visits the affected page. Arachni has
|
61
|
+
discovered that the response of the affected location
|
62
|
+
contains a form containing a password field that has not
|
63
|
+
disabled autocomplete.},
|
64
|
+
severity: Severity::LOW,
|
65
|
+
remedy_guidance: %q{The autocomplete value can be configured in
|
66
|
+
two different locations. The first, and most secure, location
|
67
|
+
is to disable autocomplete attribute on the <FORM> HTML tag.
|
68
|
+
This will therefor disable autocomplete for all inputs
|
69
|
+
within that form. An example of disabling autocomplete
|
70
|
+
within the form tag is '<FORM autocomplete=off>'. The second
|
71
|
+
slightly less desirable option is to disable autocomplete
|
72
|
+
attribute for a specific <INPUT> HTML tag itself. While this
|
73
|
+
may be the less desired solution from a security
|
74
|
+
perspective, it may be preferred method for usability
|
75
|
+
reasons depending on size of the form. An example of
|
76
|
+
disabling the autocomplete attribute within a password
|
77
|
+
input tag is '<INPUT type=password autocomplete=off>'. Note,
|
78
|
+
in these examples other <FORM> or <INPUT> attributes may be
|
79
|
+
required.},
|
53
80
|
},
|
54
81
|
max_issues: 25
|
55
82
|
}
|
@@ -14,14 +14,12 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Private IP address recon module.
|
19
18
|
#
|
20
19
|
# Scans for private IP addresses.
|
21
20
|
#
|
22
21
|
# @author Tasos Laskos <tasos.laskos@gmail.com>
|
23
|
-
# @version 0.2.
|
24
|
-
#
|
22
|
+
# @version 0.2.2
|
25
23
|
class Arachni::Modules::PrivateIP < Arachni::Module::Base
|
26
24
|
|
27
25
|
def self.regexp
|
@@ -37,18 +35,34 @@ class Arachni::Modules::PrivateIP < Arachni::Module::Base
|
|
37
35
|
name: 'Private IP address finder',
|
38
36
|
description: %q{Scans pages for private IP addresses.},
|
39
37
|
author: 'Tasos Laskos <tasos.laskos@gmail.com>',
|
40
|
-
version: '0.2.
|
38
|
+
version: '0.2.2',
|
41
39
|
targets: %w(Generic),
|
42
40
|
elements: [ Element::BODY, Element::HEADER ],
|
43
41
|
references: {
|
44
|
-
'
|
42
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246936/Information%20Leakage'
|
45
43
|
},
|
46
44
|
issue: {
|
47
45
|
name: %q{Private IP address disclosure},
|
48
|
-
description: %q{
|
46
|
+
description: %q{Private, or non-routable, IP addresses
|
47
|
+
are generally used within a home or company network, and are
|
48
|
+
typically unknown to anyone outside of that network.
|
49
|
+
Cyber-criminals will attempt to identify the private IP
|
50
|
+
address range being used by their victim to aid in any
|
51
|
+
further information collection that could then lead to
|
52
|
+
possible compromise. Arachni discovered that the affected
|
53
|
+
page returned a RFC 1918 compliant private IP address, and
|
54
|
+
therefore could be revealing sensitive information. This
|
55
|
+
finding typically requires manual verification to ensure the
|
56
|
+
context of this finding is correct. As any private IP
|
57
|
+
address within the HTML body will trigger this finding},
|
49
58
|
cwe: '200',
|
50
59
|
severity: Severity::LOW,
|
51
|
-
remedy_guidance: %q{
|
60
|
+
remedy_guidance: %q{Identifying the context in which the
|
61
|
+
identified page displays a Private IP address is required.
|
62
|
+
If the page is publicly accessible, and displaying the
|
63
|
+
Private IP of the affected server (or supporting infrastructure),
|
64
|
+
then measures should be put in place to ensure that the IP is
|
65
|
+
removed from any response.},
|
52
66
|
}
|
53
67
|
}
|
54
68
|
end
|
data/modules/recon/grep/ssn.rb
CHANGED
@@ -14,10 +14,8 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>, haliphax
|
19
|
-
# @version 0.1.
|
20
|
-
#
|
18
|
+
# @version 0.1.3
|
21
19
|
class Arachni::Modules::SSN < Arachni::Module::Base
|
22
20
|
|
23
21
|
def self.regexp
|
@@ -37,17 +35,30 @@ class Arachni::Modules::SSN < Arachni::Module::Base
|
|
37
35
|
'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>', # original
|
38
36
|
'haliphax' # tweaked regexp
|
39
37
|
],
|
40
|
-
version: '0.1.
|
38
|
+
version: '0.1.3',
|
41
39
|
targets: %w(Generic),
|
42
40
|
references: {
|
43
41
|
'ssa.gov' => 'http://www.ssa.gov/pubs/10064.html'
|
44
42
|
},
|
45
43
|
issue: {
|
46
44
|
name: %q{Disclosed US Social Security Number (SSN)},
|
47
|
-
description: %q{
|
45
|
+
description: %q{The US Social Security Number (SSN) is a
|
46
|
+
personally identifiable number that is issued to its
|
47
|
+
citizens. A stolen or leaked SSN can lead to a compromise,
|
48
|
+
and/or the theft of the affected individual's identity.
|
49
|
+
Through the use of regular expressions, Arachni has discovered
|
50
|
+
a SSN located within the response of the affected page.},
|
48
51
|
cwe: '200',
|
49
52
|
severity: Severity::HIGH,
|
50
|
-
remedy_guidance: %q{
|
53
|
+
remedy_guidance: %q{Initially, the SSN within the response
|
54
|
+
should be checked to ensure its validity, as it is possible
|
55
|
+
that the regular expression has matched a similar number
|
56
|
+
with no relation to a real SSN. If the response does contain
|
57
|
+
a valid SSN, then all efforts should be taken to remove or
|
58
|
+
further protect this information. This can be achieved by
|
59
|
+
removing the SSN all together or by masking the number so
|
60
|
+
that only the last few digits are present within the
|
61
|
+
response. eg. **********123.},
|
51
62
|
}
|
52
63
|
}
|
53
64
|
end
|