1+ id : ASVS-4-0-3-V5-1-1
2+
3+ info :
4+ name : ASVS 5.1.1 Check
5+ author : Masoud Abdaal
6+ severity : medium
7+ classification :
8+ cwe-id : CWE-235
9+ reference :
10+ - https://github.com/OWASP/ASVS/blob/master/4.0/en/0x13-V5-Validation-Sanitization-Encoding.md#v51-input-validation
11+ - https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/04-Testing_for_HTTP_Parameter_Pollution
12+ - https://swisskyrepo.github.io/PayloadsAllTheThings/HTTP%20Parameter%20Pollution/#parameter-pollution-table
13+ tags : asvs,5.1.1
14+ description : |
15+ Verify that the application has defenses against HTTP parameter pollution attacks, particularly if the application framework makes no distinction about the source of request parameters (GET, POST, cookies, headers, or environment variables).
16+
17+ flow : http(1)
18+
19+ http :
20+ - method : GET
21+ path :
22+ - " {{BaseURL}}?{{parameters}}=x&{{parameters}}=Polluted_1"
23+ - " {{BaseURL}}?{{parameters}}[]=x&{{parameters}}=Polluted_2"
24+ - " {{BaseURL}}?{{parameters}}=x&{{parameters}}[]=Polluted_2"
25+ - " {{BaseURL}}?{{parameters}}[]=x&{{parameters}}[]=Polluted_2"
26+ - " {{BaseURL}}?{{parameters}}=x, Polluted_1&{{parameters}}=Polluted_2"
27+ - " {{BaseURL}}?{{parameters}}=x%26{{parameters}}=Polluted_2"
28+ - " {{BaseURL}}?{{parameters}}[1]=x&{{parameters}}[1]=Polluted_2"
29+
30+ payloads :
31+ parameters : ' templates/dast/assets/5.1.1Parameters.txt'
32+
33+ - raw :
34+ - |
35+ POST HTTP/1.1
36+ Host: {{Hostname}}
37+ Content-Type: application/x-www-form-urlencoded
38+
39+ {{body_variant}}
40+
41+ payloads :
42+ # [Nuclei BUG] Loading Combination of Payloads Failed, This Flow Has Been Disabled
43+ parameters : ' templates/dast/assets/5.1.1Parameters.txt'
44+
45+ body_variant :
46+ - ' {{parameters}}=x&{{parameters}}=Polluted_1'
47+ - ' {{parameters}}[]=x&{{parameters}}=Polluted_2'
48+ - ' {{parameters}}=x&{{parameters}}[]=Polluted_2'
49+ - ' {{parameters}}[]=x&{{parameters}}[]=Polluted_2'
50+ - ' {{parameters}}[]=[x,Polluted_1]&{{parameters}}[]=Polluted_2'
51+ - ' {{parameters}}=x,Polluted_1&{{parameters}}=Polluted_2'
52+ - ' {{parameters}}=x%26{{parameters}}=Polluted_2'
53+ - |
54+ { "{{parameters}}" :"x" , "{{parameters}}": "Polluted_1" }'
55+
0 commit comments