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
data/modules/audit/ldapi.rb
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
#
|
20
20
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
21
|
#
|
22
|
-
# @version 0.1.
|
22
|
+
# @version 0.1.3
|
23
23
|
#
|
24
24
|
# @see http://cwe.mitre.org/data/definitions/90.html
|
25
25
|
# @see http://projects.webappsec.org/w/page/13246947/LDAP-Injection
|
@@ -47,7 +47,7 @@ class Arachni::Modules::LDAPInjection < Arachni::Module::Base
|
|
47
47
|
in user input validation.},
|
48
48
|
elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
|
49
49
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
50
|
-
version: '0.1.
|
50
|
+
version: '0.1.3',
|
51
51
|
references: {
|
52
52
|
'WASC' => 'http://projects.webappsec.org/w/page/13246947/LDAP-Injection',
|
53
53
|
'OWASP' => 'http://www.owasp.org/index.php/LDAP_injection'
|
@@ -55,14 +55,39 @@ class Arachni::Modules::LDAPInjection < Arachni::Module::Base
|
|
55
55
|
targets: %w(Generic),
|
56
56
|
issue: {
|
57
57
|
name: %q{LDAP Injection},
|
58
|
-
description: %q{
|
59
|
-
|
58
|
+
description: %q{Lightweight Directory Access Protocol (LDAP)
|
59
|
+
is used by web applications to access and maintain directory
|
60
|
+
information services. One of the most common uses for LDAP
|
61
|
+
is to provide a single sign on service that will allow
|
62
|
+
clients to authenticate with a web site without any
|
63
|
+
interaction (assuming their credentials have been validated
|
64
|
+
by another service). LDAP injection occurs when untrusted
|
65
|
+
data is used by the web application to query the LDAP
|
66
|
+
directory without prior sanitisation. This is a serious
|
67
|
+
security risk, as it could allow cyber-criminals the ability
|
68
|
+
to query, modify, or remove anything from the LDAP tree. It
|
69
|
+
could also allow other advanced injection techniques that
|
70
|
+
perform other more serious attacks. Arachni was able to
|
71
|
+
detect a page that is vulnerable to LDAP injection.},
|
60
72
|
tags: %w(ldap injection regexp),
|
61
73
|
cwe: '90',
|
62
74
|
severity: Severity::HIGH,
|
63
75
|
cvssv2: '',
|
64
|
-
remedy_guidance: %q{
|
65
|
-
|
76
|
+
remedy_guidance: %q{It is recommended that untrusted or
|
77
|
+
invalidated data is never used to form a LDAP query. To
|
78
|
+
validate data, the application should ensure that the
|
79
|
+
supplied value contains only the characters that are
|
80
|
+
required to perform the required action. For example, where
|
81
|
+
a username is required, then no non-alpha characters should
|
82
|
+
be accepted. If this is not possible, then special
|
83
|
+
characters should be escaped so they are treated
|
84
|
+
accordingly. The following characters should be escaped with
|
85
|
+
a '\' backslash; Ampersand, exclamation mark, pipe, equals,
|
86
|
+
less than, greater than, comma, plus, minus, double quote,
|
87
|
+
single quote, and semicolon. Additional character filtering
|
88
|
+
must be applied to; Open round bracket, close round bracket,
|
89
|
+
backslash, asterisks, forward slash, NUL. These characters
|
90
|
+
require ASCII escaping.},
|
66
91
|
remedy_code: ''
|
67
92
|
}
|
68
93
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#
|
19
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
20
20
|
#
|
21
|
-
# @version 0.2.
|
21
|
+
# @version 0.2.2
|
22
22
|
#
|
23
23
|
# @see http://cwe.mitre.org/data/definitions/78.html
|
24
24
|
# @see http://www.owasp.org/index.php/OS_Command_Injection
|
@@ -64,21 +64,42 @@ class Arachni::Modules::OSCmdInjection < Arachni::Module::Base
|
|
64
64
|
description: %q{Tries to find operating system command injections.},
|
65
65
|
elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
|
66
66
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
67
|
-
version: '0.2.
|
67
|
+
version: '0.2.2',
|
68
68
|
references: {
|
69
|
-
'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection'
|
69
|
+
'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection',
|
70
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246950/OS%20Commanding'
|
70
71
|
},
|
71
72
|
targets: %w(Windows Unix),
|
72
73
|
issue: {
|
73
74
|
name: %q{Operating system command injection},
|
74
|
-
description: %q{
|
75
|
-
|
75
|
+
description: %q{To perform specific actions from within a
|
76
|
+
web application, it is occasionally required to run
|
77
|
+
Operating System commands (Linux or Windows) and have the output of
|
78
|
+
these commands captured by the web application and returned
|
79
|
+
to the client. OS command injection occurs when user supplied
|
80
|
+
input is inserted into one of these commands without proper
|
81
|
+
sanitisation and executed by the server. Cyber criminals
|
82
|
+
will abuse this weakness to perform their own arbitrary
|
83
|
+
commands on the server. This can include everything from
|
84
|
+
simple ping commands to map the internal network, to
|
85
|
+
obtaining full control of the server. Arachni was able to
|
86
|
+
inject specific Operating System commands and have the output from
|
87
|
+
that command contained within the server response. This
|
88
|
+
indicates that proper input sanitisation is not occurring.},
|
76
89
|
tags: %w(os command code injection regexp),
|
77
90
|
cwe: '78',
|
78
91
|
severity: Severity::HIGH,
|
79
92
|
cvssv2: '9.0',
|
80
|
-
remedy_guidance: %q{
|
81
|
-
|
93
|
+
remedy_guidance: %q{It is recommended that untrusted or
|
94
|
+
non-validated data is never used to form a command to be
|
95
|
+
executed on the server. To validate data, the application
|
96
|
+
should ensure that the supplied value contains only the
|
97
|
+
characters that are required to perform the required action.
|
98
|
+
For example, where the form field expects an IP address,
|
99
|
+
only numbers and full stops should be accepted. Additionally
|
100
|
+
all control operators (&, &&, |, ||, $, \, #) should be
|
101
|
+
explicitly denied, and never accepted by as input by the
|
102
|
+
server.},
|
82
103
|
remedy_code: '',
|
83
104
|
metasploitable: 'unix/webapp/arachni_exec'
|
84
105
|
}
|
@@ -14,16 +14,14 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# OS command injection module using timing attacks.
|
19
18
|
#
|
20
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
20
|
#
|
22
|
-
# @version 0.3
|
21
|
+
# @version 0.3.1
|
23
22
|
#
|
24
23
|
# @see http://cwe.mitre.org/data/definitions/78.html
|
25
24
|
# @see http://www.owasp.org/index.php/OS_Command_Injection
|
26
|
-
#
|
27
25
|
class Arachni::Modules::OSCmdInjectionTiming < Arachni::Module::Base
|
28
26
|
|
29
27
|
prefer :os_cmd_injection
|
@@ -53,27 +51,43 @@ class Arachni::Modules::OSCmdInjectionTiming < Arachni::Module::Base
|
|
53
51
|
description: %q{Tries to find operating system command injections using timing attacks.},
|
54
52
|
elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
|
55
53
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
56
|
-
version: '0.3',
|
54
|
+
version: '0.3.1',
|
57
55
|
references: {
|
58
|
-
'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection'
|
56
|
+
'OWASP' => 'http://www.owasp.org/index.php/OS_Command_Injection',
|
57
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246950/OS%20Commanding'
|
59
58
|
},
|
60
59
|
targets: %w(Windows Unix),
|
61
60
|
issue: {
|
62
61
|
name: %q{Operating system command injection (timing attack)},
|
63
|
-
description: %q{
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
62
|
+
description: %q{To perform specific actions from within a
|
63
|
+
web application, it is occasionally required to run
|
64
|
+
Operating System commands (Linux or Windows) and have the output of
|
65
|
+
these commands captured by the web application and returned
|
66
|
+
to the client. OS command injection occurs when user supplied
|
67
|
+
input is inserted into one of these commands without proper
|
68
|
+
sanitisation and executed by the server. Cyber criminals
|
69
|
+
will abuse this weakness to perform their own arbitrary
|
70
|
+
commands on the server. This can include everything from
|
71
|
+
simple ping commands to map the internal network, to
|
72
|
+
obtaining full control of the server. By injecting OS
|
73
|
+
commands that take a specific amount of time to execute,
|
74
|
+
Arachni was able to detect time based OS command injection.
|
75
|
+
This indicates that proper input sanitisation is not
|
76
|
+
occurring.},
|
71
77
|
tags: %w(os command code injection timing blind),
|
72
78
|
cwe: '78',
|
73
79
|
severity: Severity::HIGH,
|
74
80
|
cvssv2: '9.0',
|
75
|
-
remedy_guidance: %q{
|
76
|
-
|
81
|
+
remedy_guidance: %q{It is recommended that untrusted or
|
82
|
+
non-validated data is never used to form a command to be
|
83
|
+
executed on the server. To validate data, the application
|
84
|
+
should ensure that the supplied value contains only the
|
85
|
+
characters that are required to perform the required action.
|
86
|
+
For example, where the form field expects an IP address,
|
87
|
+
only numbers and full stops should be accepted. Additionally
|
88
|
+
all control operators (&, &&, |, ||, $, \, #) should be
|
89
|
+
explicitly denied, and never accepted by as input by the
|
90
|
+
server.},
|
77
91
|
remedy_code: '',
|
78
92
|
metasploitable: 'unix/webapp/arachni_exec'
|
79
93
|
}
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#
|
19
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
20
20
|
#
|
21
|
-
# @version 0.4.
|
21
|
+
# @version 0.4.2
|
22
22
|
#
|
23
23
|
# @see http://cwe.mitre.org/data/definitions/22.html
|
24
24
|
# @see http://www.owasp.org/index.php/Path_Traversal
|
@@ -107,7 +107,7 @@ class Arachni::Modules::PathTraversal < Arachni::Module::Base
|
|
107
107
|
based on the presence of relevant content in the HTML responses.},
|
108
108
|
elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
|
109
109
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
110
|
-
version: '0.4.
|
110
|
+
version: '0.4.2',
|
111
111
|
references: {
|
112
112
|
'OWASP' => 'http://www.owasp.org/index.php/Path_Traversal',
|
113
113
|
'WASC' => 'http://projects.webappsec.org/Path-Traversal'
|
@@ -116,14 +116,50 @@ class Arachni::Modules::PathTraversal < Arachni::Module::Base
|
|
116
116
|
|
117
117
|
issue: {
|
118
118
|
name: %q{Path Traversal},
|
119
|
-
description: %q{
|
120
|
-
|
119
|
+
description: %q{Web applications occasionally use
|
120
|
+
parameter values to store the location of a file required by
|
121
|
+
the server. An example of this is often seen in error pages
|
122
|
+
where the actual file path for the error page is called the
|
123
|
+
parameter value. For example
|
124
|
+
'yoursite.com/error.php?page=404.php'. A path traversal
|
125
|
+
occurs when the parameter value (ie. path to file being
|
126
|
+
called by the server) can be substituted with the relative
|
127
|
+
path of another resource which is located outside of the
|
128
|
+
applications working directory (web root). The server then
|
129
|
+
loads the resource and sends it in the response to the
|
130
|
+
client. Cyber-criminals will abuse this vulnerability to
|
131
|
+
view files that should otherwise not be accessible. A very
|
132
|
+
common example of this on a *nix server is where the cyber-
|
133
|
+
criminal will access the /etc/passwd file to retrieve a list
|
134
|
+
of users on the server. This attack would look similar to
|
135
|
+
'yoursite.com/error.php?page=../../../../etc/passwd'. As
|
136
|
+
path traversal is based on the relative path, the payload
|
137
|
+
must first traverse the file system to the root directory,
|
138
|
+
and hence the string of '../../../../'. Arachni discovered
|
139
|
+
that it was possible to substitute a parameter value with
|
140
|
+
relative path to a common operating system file and have the
|
141
|
+
contents of the file sent back in the response.},
|
121
142
|
tags: %w(path traversal injection regexp),
|
122
143
|
cwe: '22',
|
123
144
|
severity: Severity::HIGH,
|
124
145
|
cvssv2: '4.3',
|
125
|
-
remedy_guidance: %q{
|
126
|
-
|
146
|
+
remedy_guidance: %q{It is recommended that untrusted or
|
147
|
+
non-validated data is never used to form a literal file
|
148
|
+
include request. To validate data, the application should
|
149
|
+
ensure that the supplied value for a file is permitted. This can
|
150
|
+
be achieved by performing whitelisting on the parameter
|
151
|
+
value. The whitelist should contain a list of pages that
|
152
|
+
the application is permitted to fetch resources from. If the
|
153
|
+
supplied value does not match any value in the whitelist
|
154
|
+
then the server should redirect to a standard error page. In
|
155
|
+
some scenarios where dynamic content is being requested it
|
156
|
+
may not be possible to perform validation of a list of
|
157
|
+
trusted resources, therefor the list must also become
|
158
|
+
dynamic (update as the files change), or perform filtering
|
159
|
+
to remove any unrequired user input such as semicolons or
|
160
|
+
periods etc. and only permit a-z0-9. It is also advised that
|
161
|
+
sensitive file are not stored within the web root, and that
|
162
|
+
the user permissions enforced by the directory are correct.},
|
127
163
|
remedy_code: '',
|
128
164
|
metasploitable: 'unix/webapp/arachni_path_traversal'
|
129
165
|
}
|
@@ -14,7 +14,6 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# HTTP Response Splitting audit module.
|
19
18
|
#
|
20
19
|
# It audits links, forms and cookies.
|
@@ -22,12 +21,11 @@
|
|
22
21
|
#
|
23
22
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
24
23
|
#
|
25
|
-
# @version 0.1.
|
24
|
+
# @version 0.1.8
|
26
25
|
#
|
27
26
|
# @see http://cwe.mitre.org/data/definitions/20.html
|
28
27
|
# @see http://www.owasp.org/index.php/HTTP_Response_Splitting
|
29
28
|
# @see http://www.securiteam.com/securityreviews/5WP0E2KFGK.html
|
30
|
-
#
|
31
29
|
class Arachni::Modules::ResponseSplitting < Arachni::Module::Base
|
32
30
|
|
33
31
|
def run
|
@@ -56,23 +54,42 @@ class Arachni::Modules::ResponseSplitting < Arachni::Module::Base
|
|
56
54
|
if any of them end up in the response header.},
|
57
55
|
elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
|
58
56
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
59
|
-
version: '0.1.
|
57
|
+
version: '0.1.8',
|
60
58
|
references: {
|
61
59
|
'SecuriTeam' => 'http://www.securiteam.com/securityreviews/5WP0E2KFGK.html',
|
62
|
-
'OWASP' => 'http://www.owasp.org/index.php/HTTP_Response_Splitting'
|
60
|
+
'OWASP' => 'http://www.owasp.org/index.php/HTTP_Response_Splitting',
|
61
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246931/HTTP%20Response%20Splitting'
|
63
62
|
},
|
64
63
|
targets: %w(Generic),
|
65
64
|
|
66
65
|
issue: {
|
67
66
|
name: %q{Response Splitting},
|
68
|
-
description: %q{
|
69
|
-
|
67
|
+
description: %q{HTTP response splitting occurs when
|
68
|
+
untrusted data (usually a client's request) is inserted into
|
69
|
+
the response headers without any sanitisation or validation.
|
70
|
+
If vulnerable, this allows a cyber-criminal to essentially
|
71
|
+
split the HTTP response into two. This is abused by the
|
72
|
+
cyber-criminal injecting both CR (aka, carriage return, %0d,
|
73
|
+
or /r) characters and LF (aka, line feed, %0a, or \n) which
|
74
|
+
will then form the split. If the CR or LF characters are not
|
75
|
+
processed by the server then it cannot be exploited. Along
|
76
|
+
with these characters, the cyber-criminal can then construct
|
77
|
+
their own arbitrary response headers and body which would
|
78
|
+
then form the second response. The second response is
|
79
|
+
entirely under their control, and then permits a number of
|
80
|
+
other attacks.},
|
70
81
|
tags: %w(response splitting injection header),
|
71
82
|
cwe: '20',
|
72
83
|
severity: Severity::MEDIUM,
|
73
84
|
cvssv2: '5.0',
|
74
|
-
remedy_guidance: %q{
|
75
|
-
|
85
|
+
remedy_guidance: %q{It is recommended that untrusted or
|
86
|
+
non-validated data is never used to form the contents of the
|
87
|
+
response header. Where any untrusted source is required to
|
88
|
+
be used in the response headers, it is important to ensure
|
89
|
+
that any hazardous characters (%0d, %0a, /r, /n, and
|
90
|
+
potentially others) are prior to being used. This is
|
91
|
+
especially important when setting cookie values, redirecting,
|
92
|
+
or when virtual hosting.},
|
76
93
|
remedy_code: '',
|
77
94
|
}
|
78
95
|
|
data/modules/audit/rfi.rb
CHANGED
@@ -14,7 +14,6 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Simple Remote File Inclusion (and tutorial) module.
|
19
18
|
#
|
20
19
|
# It audits links, forms and cookies and will give you a good idea
|
@@ -22,12 +21,11 @@
|
|
22
21
|
#
|
23
22
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
24
23
|
#
|
25
|
-
# @version 0.2
|
24
|
+
# @version 0.2.2
|
26
25
|
#
|
27
26
|
# @see http://cwe.mitre.org/data/definitions/94.html
|
28
27
|
# @see http://projects.webappsec.org/Remote-File-Inclusion
|
29
28
|
# @see http://en.wikipedia.org/wiki/Remote_File_Inclusion
|
30
|
-
#
|
31
29
|
class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::Module::Base
|
32
30
|
|
33
31
|
#
|
@@ -117,7 +115,7 @@ class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::M
|
|
117
115
|
#
|
118
116
|
elements: [ Element::FORM, Element::LINK, Element::COOKIE, Element::HEADER ],
|
119
117
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
120
|
-
version: '0.2.
|
118
|
+
version: '0.2.2',
|
121
119
|
references: {
|
122
120
|
'WASC' => 'http://projects.webappsec.org/Remote-File-Inclusion',
|
123
121
|
'Wikipedia' => 'http://en.wikipedia.org/wiki/Remote_File_Inclusion'
|
@@ -126,9 +124,26 @@ class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::M
|
|
126
124
|
|
127
125
|
issue: {
|
128
126
|
name: %q{Remote File Inclusion},
|
129
|
-
description: %q{
|
130
|
-
|
131
|
-
|
127
|
+
description: %q{Web applications occasionally use parameter
|
128
|
+
values to store the location of a file required by the server.
|
129
|
+
An example of this is often seen in error pages where the
|
130
|
+
actual file path for the error page is called the parameter
|
131
|
+
value. For example 'yoursite.com/error.php?page=404.php'. A
|
132
|
+
remote file inclusion occurs when the parameter value (ie.
|
133
|
+
path to file being called by the server) can be substituted
|
134
|
+
with the address of an external host, and the server then
|
135
|
+
performs a request to the external host and fetches the
|
136
|
+
resource. Taking the simple example above this would become
|
137
|
+
'yoursite.com/error.asp?page=http://anothersite.com/somethingBad.php'.
|
138
|
+
In most circumstances the server will process the fetched
|
139
|
+
resource. Therefore if the resource matches that of the
|
140
|
+
framework being used (ASP, PHP, JSP, etc.) it is probable
|
141
|
+
that the resource will be executed on the vulnerable server.
|
142
|
+
Cyber-criminals will abuse this vulnerability to execute
|
143
|
+
arbitrary code on the server. Arachni discovered that it was
|
144
|
+
possible to substitute a parameter value with an external
|
145
|
+
resource and have the server fetch the resource and have it
|
146
|
+
returned to the client within the response. },
|
132
147
|
tags: %w(remote file inclusion injection regexp),
|
133
148
|
cwe: '94',
|
134
149
|
#
|
@@ -141,8 +156,21 @@ class Arachni::Modules::RFI < Arachni::Module::Base # *always* extend Arachni::M
|
|
141
156
|
#
|
142
157
|
severity: Severity::HIGH,
|
143
158
|
cvssv2: '7.5',
|
144
|
-
remedy_guidance: %q{
|
145
|
-
|
159
|
+
remedy_guidance: %q{It is recommended that untrusted or
|
160
|
+
non-validated data is never used to form a literal file
|
161
|
+
include request. To validate data, the application should
|
162
|
+
ensure that the supplied value for a file is permitted. This
|
163
|
+
can be achieved by performing whitelisting on the parameter
|
164
|
+
value. The whitelist should contain a list of pages (or
|
165
|
+
sites) that the application is permitted to fetch resources
|
166
|
+
from. If the supplied value does not match any value in the
|
167
|
+
whitelist then the server should redirect to a standard
|
168
|
+
error page. In some scenarios where dynamic content is being
|
169
|
+
requested it may not be possible to perform validation of a
|
170
|
+
list of trusted resources, therefor the list must also
|
171
|
+
become dynamic (update as the files change), or perform
|
172
|
+
filtering to remove any unrequired user input such as
|
173
|
+
semicolons or periods etc. and only permit a-z0-9.},
|
146
174
|
remedy_code: '',
|
147
175
|
metasploitable: 'unix/webapp/arachni_php_include'
|
148
176
|
}
|
@@ -14,7 +14,6 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Session fixation module.
|
19
18
|
#
|
20
19
|
# It identifies the session cookie by iterating through all cookies in the
|
@@ -29,8 +28,7 @@
|
|
29
28
|
#
|
30
29
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
31
30
|
#
|
32
|
-
# @version 0.1
|
33
|
-
#
|
31
|
+
# @version 0.1.1
|
34
32
|
class Arachni::Modules::SessionFixation < Arachni::Module::Base
|
35
33
|
|
36
34
|
def token
|
@@ -68,17 +66,50 @@ class Arachni::Modules::SessionFixation < Arachni::Module::Base
|
|
68
66
|
description: %q{Checks whether or not the session cookie can be set to an arbitrary value.},
|
69
67
|
elements: [ Element::FORM, Element::LINK ],
|
70
68
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
71
|
-
version: '0.1',
|
69
|
+
version: '0.1.1',
|
72
70
|
references: {
|
73
|
-
'OWASP
|
71
|
+
'OWASP' => 'https://www.owasp.org/index.php/Session_fixation',
|
72
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246960/Session%20Fixation'
|
74
73
|
},
|
75
74
|
targets: %w(Generic),
|
76
75
|
issue: {
|
77
76
|
name: %q{Session fixation},
|
78
|
-
description: %q{
|
77
|
+
description: %q{HTTP by itself is a stateless protocol. Therefore
|
78
|
+
the server is unable to determine which requests are
|
79
|
+
performed by which client, and which clients are
|
80
|
+
authenticated or unauthenticated. The use of HTTP cookies
|
81
|
+
within the headers, allows a web server to identify each
|
82
|
+
individual client, and can therefore determine which clients
|
83
|
+
hold valid authentication from those that do not. These are
|
84
|
+
known as session cookies or session tokens. To prevent
|
85
|
+
clients from being able to guess each other's session token,
|
86
|
+
each assigned session token should be entirely random, and
|
87
|
+
be different whenever a session is established with the
|
88
|
+
server. Session fixation occurs when the client is able to
|
89
|
+
specify their own session token value, and the value of the
|
90
|
+
session cookie is not changed by the server after successful
|
91
|
+
authentication. Occasionally the session token will also
|
92
|
+
remain unchanged for the user independently of how many times
|
93
|
+
they have authenticated. Cyber-criminals will abuse this
|
94
|
+
functionality by sending crafted URL links with a
|
95
|
+
predetermined session token within the link. The cyber-
|
96
|
+
criminal will then wait for the victim to login and become
|
97
|
+
authenticated. If successful the cyber-criminal will know a
|
98
|
+
valid session ID, and therefore have access to the victim's
|
99
|
+
session. Arachni has discovered that it is able to set its
|
100
|
+
own session token, and during the login process remains
|
101
|
+
unchanged.},
|
79
102
|
tags: %w(session cookie injection fixation hijacking),
|
80
103
|
cwe: '384',
|
81
|
-
severity: Severity::HIGH
|
104
|
+
severity: Severity::HIGH,
|
105
|
+
remedy_guidance: %q{The most important remediation action is to
|
106
|
+
prevent the server accepting client supplied tokens through
|
107
|
+
either a GET or POST request. Additionally, the client's
|
108
|
+
session token should be changed at specific key stages of
|
109
|
+
the application flow, such as during authentication. This
|
110
|
+
will ensure that even if clients are able to set their own
|
111
|
+
cookie, it will not persist into an authenticated session.
|
112
|
+
},
|
82
113
|
}
|
83
114
|
}
|
84
115
|
end
|