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,17 +14,13 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# Unencrypted password form
|
19
18
|
#
|
20
19
|
# Looks for password inputs that don't submit data over an encrypted channel (HTTPS).
|
21
20
|
#
|
22
21
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
|
-
#
|
24
|
-
# @version 0.1.6
|
25
|
-
#
|
22
|
+
# @version 0.1.7
|
26
23
|
# @see http://www.owasp.org/index.php/Top_10_2010-A9-Insufficient_Transport_Layer_Protection
|
27
|
-
#
|
28
24
|
class Arachni::Modules::UnencryptedPasswordForms < Arachni::Module::Base
|
29
25
|
|
30
26
|
def determine_name( input )
|
@@ -64,18 +60,41 @@ class Arachni::Modules::UnencryptedPasswordForms < Arachni::Module::Base
|
|
64
60
|
over an encrypted channel (HTTPS).},
|
65
61
|
elements: [ Element::FORM ],
|
66
62
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com> ',
|
67
|
-
version: '0.1.
|
63
|
+
version: '0.1.7',
|
68
64
|
references: {
|
69
|
-
'OWASP Top 10 2010' => 'http://www.owasp.org/index.php/Top_10_2010-A9-Insufficient_Transport_Layer_Protection'
|
65
|
+
'OWASP Top 10 2010' => 'http://www.owasp.org/index.php/Top_10_2010-A9-Insufficient_Transport_Layer_Protection',
|
66
|
+
'OWASP' => 'www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet',
|
67
|
+
'WASC' => 'http://projects.webappsec.org/w/page/13246945/Insufficient%20Transport%20Layer%20Protection'
|
70
68
|
},
|
71
69
|
targets: %w(Generic),
|
72
70
|
issue: {
|
73
71
|
name: %q{Unencrypted password form},
|
74
|
-
description: %q{
|
72
|
+
description: %q{The HTTP protocol by itself is clear text,
|
73
|
+
meaning that any data that is transmitted via HTTP can be
|
74
|
+
captured and the contents viewed. To keep data private, and
|
75
|
+
prevent it from being intercepted, HTTP is often tunnelled
|
76
|
+
through either Secure Sockets Layer (SSL), or Transport
|
77
|
+
Layer Security (TLS). When either of these encryption
|
78
|
+
standards are used it is referred to as HTTPS. Cyber-
|
79
|
+
criminals will often attempt to compromise credentials
|
80
|
+
passed from the client to the server using HTTP. This can be
|
81
|
+
conducted via various different Man-in-The-Middle (MiTM)
|
82
|
+
attacks or through network packet captures. Arachni
|
83
|
+
discovered that the affected page contains a 'password'
|
84
|
+
input, however the value of the field is not sent to the
|
85
|
+
server utilising HTTPS. Therefore it is possible that any
|
86
|
+
submitted credential may become compromised.},
|
75
87
|
tags: %w(unencrypted password form),
|
76
88
|
cwe: '319',
|
77
89
|
severity: Severity::MEDIUM,
|
78
|
-
remedy_guidance: %q{
|
90
|
+
remedy_guidance: %q{The affected site should be secured
|
91
|
+
utilising the latest and most secure encryption protocols.
|
92
|
+
These include SSL version 3.0 and TLS version 1.2. While
|
93
|
+
TLS 1.2 is the latest and the most preferred protocol, not
|
94
|
+
all browsers will support this encryption method. Therefor
|
95
|
+
the more common SSL is included. Older protocols such as SSL
|
96
|
+
version 2, and weak ciphers (< 128 bit) should also be
|
97
|
+
disabled.}
|
79
98
|
}
|
80
99
|
|
81
100
|
}
|
@@ -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.5
|
21
|
-
#
|
18
|
+
# @version 0.1.6
|
22
19
|
class Arachni::Modules::Htaccess < Arachni::Module::Base
|
23
20
|
|
24
21
|
def run
|
@@ -42,18 +39,36 @@ class Arachni::Modules::Htaccess < Arachni::Module::Base
|
|
42
39
|
GET requests but allows POST.},
|
43
40
|
elements: [ Element::SERVER ],
|
44
41
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
45
|
-
version: '0.1.
|
42
|
+
version: '0.1.6',
|
46
43
|
targets: %w(Generic),
|
47
44
|
references: {
|
48
45
|
'Apache.org' => 'http://httpd.apache.org/docs/2.2/mod/core.html#limit'
|
49
46
|
},
|
50
47
|
issue: {
|
51
48
|
name: %q{Misconfiguration in LIMIT directive of .htaccess file},
|
52
|
-
description: %q{
|
49
|
+
description: %q{There are a number of HTTP methods that can be
|
50
|
+
used on a webserver, for example OPTIONS, HEAD, GET, POST,
|
51
|
+
PUT, DELETE etc. Each of these methods perform a different
|
52
|
+
function, and each has an associated level of risk when
|
53
|
+
their use is permitted on the webserver. The '<Limit>'
|
54
|
+
directive within Apache's '.htaccess' file allows
|
55
|
+
administrators to define which of the methods they would
|
56
|
+
like to block. However, as this is a blacklisting approach, it
|
57
|
+
is inevitable that a server administrator may accidentally
|
58
|
+
miss adding certain HTTP methods to be blocked, therefore
|
59
|
+
increasing the level of risk to the application and/or
|
60
|
+
server.},
|
53
61
|
tags: %w(htaccess server limit),
|
54
62
|
severity: Severity::HIGH,
|
55
|
-
remedy_guidance: %q{
|
56
|
-
|
63
|
+
remedy_guidance: %q{The preferred configuration is to prevent
|
64
|
+
the use of unauthorised HTTP methods by utilising the
|
65
|
+
<LimitExcept> directive. This directive uses a whitelisting
|
66
|
+
approach to permit HTTP methods while blocking all others
|
67
|
+
not listed in the directive, and will therefor block any
|
68
|
+
method tampering attempts. Most commonly, the only HTTP
|
69
|
+
methods required for most scenarios are GET and POST. An
|
70
|
+
example of permitting these HTTP methods is:
|
71
|
+
'<LimitExcept POST GET> require valid-user </LimitExcept>'}
|
57
72
|
}
|
58
73
|
}
|
59
74
|
end
|
data/modules/recon/http_put.rb
CHANGED
@@ -14,13 +14,10 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# HTTP PUT recon module.
|
19
18
|
#
|
20
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
21
|
-
#
|
22
|
-
# @version 0.1.5
|
23
|
-
#
|
20
|
+
# @version 0.1.6
|
24
21
|
class Arachni::Modules::HTTP_PUT < Arachni::Module::Base
|
25
22
|
|
26
23
|
def self.substring
|
@@ -54,18 +51,43 @@ class Arachni::Modules::HTTP_PUT < Arachni::Module::Base
|
|
54
51
|
description: %q{Checks if uploading files is possible using the HTTP PUT method.},
|
55
52
|
elements: [ Element::SERVER ],
|
56
53
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
57
|
-
version: '0.1.
|
54
|
+
version: '0.1.6',
|
58
55
|
targets: %w(Generic),
|
59
56
|
references: {
|
60
57
|
'W3' => 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html'
|
61
58
|
},
|
62
59
|
issue: {
|
63
60
|
name: %q{Publicly writable directory},
|
64
|
-
description: %q{
|
61
|
+
description: %q{There are various methods in which a file (or
|
62
|
+
files) may be uploaded to a webserver. One method that can be
|
63
|
+
used is the HTTP PUT method. The PUT method is mainly used
|
64
|
+
during development of applications and allows developers to
|
65
|
+
upload (or put) files on the server within the web root. By
|
66
|
+
nature of the design, the PUT method typically does not
|
67
|
+
provide any filtering and therefore allows sever side
|
68
|
+
executable code (PHP, ASP, etc) to be uploaded to the
|
69
|
+
server. Cyber-criminals will search for servers supporting
|
70
|
+
the PUT method with the intention of modifying existing
|
71
|
+
pages, or uploading web shells to take control of the
|
72
|
+
server. Arachni has discovered that the affected path allows
|
73
|
+
clients to use the PUT method. During this test, Arachni has
|
74
|
+
PUT a file on the server within the web root and
|
75
|
+
successfully performed a GET request to its location and
|
76
|
+
matched the contents.},
|
65
77
|
tags: %w(http methods put server),
|
66
78
|
cwe: '650',
|
67
79
|
severity: Severity::HIGH,
|
68
|
-
remedy_guidance: %q{
|
80
|
+
remedy_guidance: %q{Where possible the HTTP PUT method should be
|
81
|
+
globally disabled. This can typically be done with a simple
|
82
|
+
configuration change on the server. The steps to disable the
|
83
|
+
PUT method will differ depending on the type of server being
|
84
|
+
used (IIS, Apache, etc.). For cases where the PUT method is
|
85
|
+
required to meet application functionality, such as REST
|
86
|
+
style web services, strict limitations should be
|
87
|
+
implemented to ensure that only secure (SSL/TLS enabled),
|
88
|
+
and authorised clients are permitted to use the PUT method.
|
89
|
+
Additionally, the server's file system permissions should
|
90
|
+
also enforce strict limitations.}
|
69
91
|
}
|
70
92
|
}
|
71
93
|
end
|
@@ -14,13 +14,9 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
require 'digest/md5'
|
18
|
-
|
19
|
-
#
|
20
17
|
# Logs all non 200 (OK) and non 404 server responses.
|
21
18
|
#
|
22
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
|
-
#
|
24
20
|
class Arachni::Modules::InterestingResponses < Arachni::Module::Base
|
25
21
|
|
26
22
|
IGNORE_CODES = [ 200, 404 ].to_set
|
@@ -48,13 +44,12 @@ class Arachni::Modules::InterestingResponses < Arachni::Module::Base
|
|
48
44
|
return if IGNORE_CODES.include?( res.code ) || res.body.to_s.empty? ||
|
49
45
|
issue_limit_reached?
|
50
46
|
|
51
|
-
|
52
|
-
path = uri_parse( res.effective_url ).path
|
47
|
+
path = uri_parse( res.effective_url ).path
|
53
48
|
|
54
|
-
return if audited?( path ) || audited?(
|
49
|
+
return if audited?( path ) || audited?( res.body )
|
55
50
|
|
56
51
|
audited( path )
|
57
|
-
audited(
|
52
|
+
audited( res.body )
|
58
53
|
|
59
54
|
log( { id: "Code: #{res.code}", element: Element::SERVER }, res )
|
60
55
|
print_ok "Found an interesting response -- Code: #{res.code}."
|
@@ -66,14 +61,17 @@ class Arachni::Modules::InterestingResponses < Arachni::Module::Base
|
|
66
61
|
description: %q{Logs all non 200 (OK) server responses.},
|
67
62
|
elements: [ Element::SERVER ],
|
68
63
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
69
|
-
version: '0.1.
|
64
|
+
version: '0.1.5',
|
70
65
|
targets: %w(Generic),
|
71
66
|
references: {
|
72
67
|
'w3.org' => 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html'
|
73
68
|
},
|
74
69
|
issue: {
|
75
70
|
name: %q{Interesting response},
|
76
|
-
description: %q{The server responded with a non 200 (OK)
|
71
|
+
description: %q{The server responded with a non 200 (OK) nor 404
|
72
|
+
(Not Found) status code. This is a non-issue, however exotic HTTP
|
73
|
+
response status codes can provide useful insights into the behavior
|
74
|
+
of the web application and assist with the penetration test.},
|
77
75
|
tags: %w(interesting response server),
|
78
76
|
severity: Severity::INFORMATIONAL
|
79
77
|
},
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#
|
19
19
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
20
20
|
#
|
21
|
-
# @version 0.1.
|
21
|
+
# @version 0.1.2
|
22
22
|
class Arachni::Modules::LocalstartASP < Arachni::Module::Base
|
23
23
|
|
24
24
|
def run
|
@@ -52,14 +52,44 @@ class Arachni::Modules::LocalstartASP < Arachni::Module::Base
|
|
52
52
|
description: %q{Checks for localstart.asp.},
|
53
53
|
elements: [ Element::SERVER ],
|
54
54
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
55
|
-
version: '0.1.
|
55
|
+
version: '0.1.2',
|
56
56
|
targets: %w(Generic),
|
57
57
|
issue: {
|
58
58
|
name: %q{Exposed localstart.asp page},
|
59
|
-
description: %q{
|
60
|
-
|
59
|
+
description: %q{To restrict access to specific pages on a
|
60
|
+
webserver, developers can implement various methods of
|
61
|
+
authentication, therefore only allowing access to clients
|
62
|
+
with valid credentials. There are several forms of
|
63
|
+
authentication that can be used. The simplest forms of
|
64
|
+
authentication are known as 'Basic' and 'Basic Realm'.
|
65
|
+
These methods of authentication have several known
|
66
|
+
weaknesses such as being susceptible to brute force attacks.
|
67
|
+
Additionally, when utilising the NTLM mechanism in a windows
|
68
|
+
environment, several disclosures of information exist, and
|
69
|
+
any brute force attack occurs against the server's local
|
70
|
+
users, or domain users if the web server is a domain
|
71
|
+
member. Cyber-criminals will attempt to locate protected
|
72
|
+
pages to gain access to them and also perform brute force
|
73
|
+
attacks to discover valid credentials. Arachni discovered
|
74
|
+
the following page requires NTLM based basic authentication
|
75
|
+
in order to be accessed.},
|
61
76
|
tags: %w(asp iis server),
|
62
|
-
severity: Severity::LOW
|
77
|
+
severity: Severity::LOW,
|
78
|
+
remedy_guidance: %q{If the pages being protected are not
|
79
|
+
required for the functionality of the web application they
|
80
|
+
should be removed, otherwise, it is recommended that basic
|
81
|
+
and basic realm authentication are not used to protect
|
82
|
+
against pages requiring authentication. If NTLM based basic
|
83
|
+
authentication must be used, then default server and domain
|
84
|
+
accounts such as 'administrator' and 'root' should be disabled,
|
85
|
+
as these will undoubtedly be the first accounts to be
|
86
|
+
targeted in any such attack. Additionally, the webserver
|
87
|
+
should not be joined to any corporate domain where usernames
|
88
|
+
are readily available (such as from email addresses). If the
|
89
|
+
pages are required, and it is possible to remove the basic
|
90
|
+
authentication, then a stronger and more resilient form-based
|
91
|
+
authentication mechanism should be implemented to protect the
|
92
|
+
affected pages.}
|
63
93
|
}
|
64
94
|
}
|
65
95
|
end
|
data/modules/recon/webdav.rb
CHANGED
@@ -14,7 +14,6 @@
|
|
14
14
|
limitations under the License.
|
15
15
|
=end
|
16
16
|
|
17
|
-
#
|
18
17
|
# WebDAV detection recon module.
|
19
18
|
#
|
20
19
|
# It doesn't check for a functional DAV implementation but uses the
|
@@ -22,11 +21,10 @@
|
|
22
21
|
#
|
23
22
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
24
23
|
#
|
25
|
-
# @version 0.1.
|
24
|
+
# @version 0.1.5
|
26
25
|
#
|
27
26
|
# @see http://en.wikipedia.org/wiki/WebDAV
|
28
27
|
# @see http://www.webdav.org/specs/rfc4918.html
|
29
|
-
#
|
30
28
|
class Arachni::Modules::WebDav < Arachni::Module::Base
|
31
29
|
|
32
30
|
def self.dav_method
|
@@ -55,7 +53,7 @@ class Arachni::Modules::WebDav < Arachni::Module::Base
|
|
55
53
|
description: %q{Checks for WebDAV enabled directories.},
|
56
54
|
elements: [ Element::SERVER ],
|
57
55
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
58
|
-
version: '0.1.
|
56
|
+
version: '0.1.5',
|
59
57
|
references: {
|
60
58
|
'WebDAV.org' => 'http://www.webdav.org/specs/rfc4918.html',
|
61
59
|
'Wikipedia' => 'http://en.wikipedia.org/wiki/WebDAV',
|
@@ -63,11 +61,29 @@ class Arachni::Modules::WebDav < Arachni::Module::Base
|
|
63
61
|
targets: %w(Generic),
|
64
62
|
issue: {
|
65
63
|
name: %q{WebDAV},
|
66
|
-
description: %q{
|
67
|
-
|
64
|
+
description: %q{Web Distributed Authoring and Versioning
|
65
|
+
(WebDAV) is a facility that enables basic file management
|
66
|
+
(reading and writing) to a web server. It essentially allows
|
67
|
+
the webserver to be mounted by the client as a traditional
|
68
|
+
file system allowing users a very simplistic means to access
|
69
|
+
it as they would any other medium or network share. If
|
70
|
+
discovered, attackers will attempt to harvest information
|
71
|
+
from the WebDAV enabled directories, or even upload
|
72
|
+
malicious files that could then be used to compromise the
|
73
|
+
server. Arachni discovered tha the affected page allows WebDAV
|
74
|
+
access. This was discovered as the server allowed several
|
75
|
+
specific methods that are specific to WebDAV (PROPFIND,
|
76
|
+
PROPPATCH, etc.) however further testing should be conducted
|
77
|
+
on the WebDAV component specifically as Arachni does support
|
78
|
+
this feature.},
|
68
79
|
tags: %w(webdav options methods server),
|
69
80
|
severity: Severity::INFORMATIONAL,
|
70
|
-
remedy_guidance: %q{
|
81
|
+
remedy_guidance: %q{Identification of the requirement to run a
|
82
|
+
WebDAV server should be considered. If it is not required
|
83
|
+
then it should be disabled. However, if it is required to
|
84
|
+
meet the application functionality, then it should be
|
85
|
+
protected by SSL/TLS as well as the implementation of a
|
86
|
+
strong authentication mechanism.}
|
71
87
|
}
|
72
88
|
|
73
89
|
}
|
@@ -15,7 +15,7 @@
|
|
15
15
|
=end
|
16
16
|
|
17
17
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
18
|
-
# @version 0.
|
18
|
+
# @version 0.2
|
19
19
|
class Arachni::Modules::XForwardedAccessRestrictionBypass < Arachni::Module::Base
|
20
20
|
|
21
21
|
def run
|
@@ -39,15 +39,36 @@ class Arachni::Modules::XForwardedAccessRestrictionBypass < Arachni::Module::Bas
|
|
39
39
|
from localhost and checks whether the restrictions was bypassed.},
|
40
40
|
elements: [ Element::SERVER ],
|
41
41
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
42
|
-
version: '0.
|
42
|
+
version: '0.2',
|
43
43
|
targets: %w(Generic),
|
44
|
+
references: {
|
45
|
+
'owasp' => 'www.owasp.org/index.php/Session_Management_Cheat_Sheet',
|
46
|
+
},
|
47
|
+
|
44
48
|
issue: {
|
45
49
|
name: %q{Access restriction bypass via X-Forwarded-For},
|
46
|
-
description: %q{
|
47
|
-
|
48
|
-
|
50
|
+
description: %q{The X-Forwarded-For header is utilised by
|
51
|
+
proxies and/or load balancers to track the originating IP
|
52
|
+
address of the client. As the request progresses through a
|
53
|
+
proxy, the X-Forwarded-For header is added to the existing
|
54
|
+
headers, and the value of the client's IP is then set within
|
55
|
+
this header. Occasionally, poorly implemented access
|
56
|
+
restrictions are based off of the originating IP address
|
57
|
+
alone. For example, any public IP address may be forced to
|
58
|
+
authenticate, while an internal IP address may not. Because
|
59
|
+
this header can also be set by the client, it allows cyber-
|
60
|
+
criminals to spoof their IP address and potentially gain
|
61
|
+
access to restricted pages. Arachni discovered a resource
|
62
|
+
that it did not have permission to access, but been granted
|
63
|
+
access after spoofing the address of localhost (127.0.0.1),
|
64
|
+
thus bypassing any requirement to authenticate.},
|
49
65
|
tags: %w(access restriction server bypass),
|
50
|
-
severity: Severity::HIGH
|
66
|
+
severity: Severity::HIGH,
|
67
|
+
remedy_guidance: %q{Remediation actions may be vastly different
|
68
|
+
depending on the framework being used, and how the
|
69
|
+
application has been coded. However, the X-Forwarded-For
|
70
|
+
header should never be used to validate a client's access
|
71
|
+
as it is trivial to change.}
|
51
72
|
}
|
52
73
|
}
|
53
74
|
end
|
data/modules/recon/xst.rb
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
#
|
22
22
|
# @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
23
23
|
#
|
24
|
-
# @version 0.1.
|
24
|
+
# @version 0.1.6
|
25
25
|
#
|
26
26
|
# @see http://cwe.mitre.org/data/definitions/693.html
|
27
27
|
# @see http://capec.mitre.org/data/definitions/107.html
|
@@ -60,7 +60,7 @@ class Arachni::Modules::XST < Arachni::Module::Base
|
|
60
60
|
description: %q{Sends an HTTP TRACE request and checks if it succeeded.},
|
61
61
|
elements: [ Element::SERVER ],
|
62
62
|
author: 'Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>',
|
63
|
-
version: '0.1.
|
63
|
+
version: '0.1.6',
|
64
64
|
references: {
|
65
65
|
'CAPEC' => 'http://capec.mitre.org/data/definitions/107.html',
|
66
66
|
'OWASP' => 'http://www.owasp.org/index.php/Cross_Site_Tracing'
|
@@ -68,12 +68,33 @@ class Arachni::Modules::XST < Arachni::Module::Base
|
|
68
68
|
targets: %w(Generic),
|
69
69
|
issue: {
|
70
70
|
name: %q{HTTP TRACE},
|
71
|
-
description: %q{The HTTP
|
72
|
-
|
71
|
+
description: %q{The TRACE HTTP method allows a client so
|
72
|
+
send a request to the server, and have the same request then
|
73
|
+
send back in the server's response. This allows the client
|
74
|
+
to determine if the server is receiving the request as
|
75
|
+
expected or if specific parts of the request are not
|
76
|
+
arriving as expected. For example incorrect encoding or a
|
77
|
+
load balancer has filtered or changed a value. On many
|
78
|
+
default installations the TRACE method is still enabled.
|
79
|
+
While not vulnerable by itself, it does provide a method for
|
80
|
+
cyber-criminals to bypass the HTTPOnly cookie, and therefore
|
81
|
+
could allow a XSS attack to successfully access a session
|
82
|
+
token. Arachni has discovered that the affected page permits
|
83
|
+
the HTTP TRACE method. },
|
73
84
|
tags: %w(xst methods trace server),
|
74
85
|
cwe: '693',
|
75
86
|
severity: Severity::MEDIUM,
|
76
|
-
remedy_guidance: %q{
|
87
|
+
remedy_guidance: %q{The HTTP TRACE method is normally not
|
88
|
+
required within production sites, and should therefor be
|
89
|
+
disabled. Depending on the function being performed by the
|
90
|
+
web application, ie. Serves static content or provides a
|
91
|
+
portal where users must authenticate, then the risk level
|
92
|
+
can start low and increase as more functionality is
|
93
|
+
implemented. The remediation is typically a very simple
|
94
|
+
configuration change and in most cases will not have any
|
95
|
+
negative impact on the server or application. For framework
|
96
|
+
specific remediation see the following page
|
97
|
+
'www.owasp.org/index.php/Cross_Site_Tracing'.}
|
77
98
|
}
|
78
99
|
|
79
100
|
}
|