@aegis-scan/skills 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/ATTRIBUTION.md +75 -0
  2. package/CHANGELOG.md +129 -0
  3. package/LICENSE +21 -0
  4. package/README.md +123 -0
  5. package/dist/bin.d.ts +3 -0
  6. package/dist/bin.d.ts.map +1 -0
  7. package/dist/bin.js +122 -0
  8. package/dist/bin.js.map +1 -0
  9. package/dist/commands/info.d.ts +5 -0
  10. package/dist/commands/info.d.ts.map +1 -0
  11. package/dist/commands/info.js +75 -0
  12. package/dist/commands/info.js.map +1 -0
  13. package/dist/commands/install.d.ts +7 -0
  14. package/dist/commands/install.d.ts.map +1 -0
  15. package/dist/commands/install.js +87 -0
  16. package/dist/commands/install.js.map +1 -0
  17. package/dist/commands/list.d.ts +7 -0
  18. package/dist/commands/list.d.ts.map +1 -0
  19. package/dist/commands/list.js +82 -0
  20. package/dist/commands/list.js.map +1 -0
  21. package/dist/index.d.ts +13 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +13 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/skills-loader.d.ts +23 -0
  26. package/dist/skills-loader.d.ts.map +1 -0
  27. package/dist/skills-loader.js +213 -0
  28. package/dist/skills-loader.js.map +1 -0
  29. package/package.json +63 -0
  30. package/skills/defensive/README.md +9 -0
  31. package/skills/mitre-mapped/README.md +10 -0
  32. package/skills/offensive/snailsploit-fork/advanced-redteam/SKILL.md +148 -0
  33. package/skills/offensive/snailsploit-fork/ai-security/SKILL.md +592 -0
  34. package/skills/offensive/snailsploit-fork/basic-exploitation/SKILL.md +10783 -0
  35. package/skills/offensive/snailsploit-fork/bug-identification/SKILL.md +1256 -0
  36. package/skills/offensive/snailsploit-fork/crash-analysis/SKILL.md +12466 -0
  37. package/skills/offensive/snailsploit-fork/deserialization/SKILL.md +185 -0
  38. package/skills/offensive/snailsploit-fork/edr-evasion/SKILL.md +1806 -0
  39. package/skills/offensive/snailsploit-fork/exploit-dev-course/SKILL.md +428 -0
  40. package/skills/offensive/snailsploit-fork/exploit-development/SKILL.md +699 -0
  41. package/skills/offensive/snailsploit-fork/fast-checking/SKILL.md +487 -0
  42. package/skills/offensive/snailsploit-fork/file-upload/SKILL.md +822 -0
  43. package/skills/offensive/snailsploit-fork/fuzzing/SKILL.md +340 -0
  44. package/skills/offensive/snailsploit-fork/fuzzing-course/SKILL.md +2105 -0
  45. package/skills/offensive/snailsploit-fork/graphql/SKILL.md +209 -0
  46. package/skills/offensive/snailsploit-fork/idor/SKILL.md +608 -0
  47. package/skills/offensive/snailsploit-fork/initial-access/SKILL.md +1528 -0
  48. package/skills/offensive/snailsploit-fork/jwt/SKILL.md +276 -0
  49. package/skills/offensive/snailsploit-fork/keylogger-arch/SKILL.md +197 -0
  50. package/skills/offensive/snailsploit-fork/mitigations/SKILL.md +1351 -0
  51. package/skills/offensive/snailsploit-fork/oauth/SKILL.md +366 -0
  52. package/skills/offensive/snailsploit-fork/open-redirect/SKILL.md +487 -0
  53. package/skills/offensive/snailsploit-fork/osint/SKILL.md +399 -0
  54. package/skills/offensive/snailsploit-fork/osint-methodology/SKILL.md +434 -0
  55. package/skills/offensive/snailsploit-fork/parameter-pollution/SKILL.md +595 -0
  56. package/skills/offensive/snailsploit-fork/race-condition/SKILL.md +881 -0
  57. package/skills/offensive/snailsploit-fork/rce/SKILL.md +1069 -0
  58. package/skills/offensive/snailsploit-fork/request-smuggling/SKILL.md +773 -0
  59. package/skills/offensive/snailsploit-fork/shellcode/SKILL.md +477 -0
  60. package/skills/offensive/snailsploit-fork/sqli/SKILL.md +372 -0
  61. package/skills/offensive/snailsploit-fork/ssrf/SKILL.md +830 -0
  62. package/skills/offensive/snailsploit-fork/ssti/SKILL.md +349 -0
  63. package/skills/offensive/snailsploit-fork/vuln-classes/SKILL.md +1229 -0
  64. package/skills/offensive/snailsploit-fork/waf-bypass/SKILL.md +820 -0
  65. package/skills/offensive/snailsploit-fork/windows-boundaries/SKILL.md +15153 -0
  66. package/skills/offensive/snailsploit-fork/windows-mitigations/SKILL.md +14546 -0
  67. package/skills/offensive/snailsploit-fork/xss/SKILL.md +784 -0
  68. package/skills/offensive/snailsploit-fork/xxe/SKILL.md +996 -0
  69. package/skills/ops/README.md +6 -0
@@ -0,0 +1,595 @@
1
+ <!-- aegis-local: forked 2026-04-23 from SnailSploit/Claude-Red@c74d53e2938b59f111572e0819265a1e73029393; attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ # SKILL: HTTP Parameter Pollution (HPP)
4
+
5
+ ## Metadata
6
+ - **Skill Name**: parameter-pollution
7
+ - **Folder**: offensive-parameter-pollution
8
+ - **Source**: https://github.com/SnailSploit/offensive-checklist/blob/main/parameter-pollution.md
9
+
10
+ ## Description
11
+ HTTP parameter pollution (HPP) checklist: duplicate parameter injection, backend vs frontend parsing differences, WAF bypass via HPP, server-side vs client-side HPP, and practical exploitation patterns. Use when testing web applications for parameter handling flaws.
12
+
13
+ ## Trigger Phrases
14
+ Use this skill when the conversation involves any of:
15
+ `parameter pollution, HTTP parameter pollution, HPP, duplicate parameter, WAF bypass, parsing differences, server-side HPP, client-side HPP, parameter injection`
16
+
17
+ ## Instructions for Claude
18
+
19
+ When this skill is active:
20
+ 1. Load and apply the full methodology below as your operational checklist
21
+ 2. Follow steps in order unless the user specifies otherwise
22
+ 3. For each technique, consider applicability to the current target/context
23
+ 4. Track which checklist items have been completed
24
+ 5. Suggest next steps based on findings
25
+
26
+ ---
27
+
28
+ ## Full Methodology
29
+
30
+ # HTTP Parameter Pollution (HPP)
31
+
32
+ ## Mechanisms
33
+
34
+ HTTP Parameter Pollution (HPP) is a web attack technique that exploits how web applications and servers handle multiple occurrences of the same parameter name. When a web application receives duplicate parameters, different technologies process them differently:
35
+
36
+ ```mermaid
37
+ flowchart TD
38
+ subgraph "HTTP Parameter Pollution"
39
+ A[Multiple occurrences of same parameter] --> B{Server Technology}
40
+ B -->|ASP.NET/IIS| C[Uses first occurrence]
41
+ B -->|PHP/Apache| D[Uses last occurrence]
42
+ B -->|JSP/Tomcat| E[Uses first occurrence]
43
+ B -->|Perl CGI| F[Concatenates with comma]
44
+ B -->|Python/Flask| G[Builds array of values]
45
+ B -->|Node.js/Express| H[Uses first occurrence]
46
+ end
47
+ ```
48
+
49
+ ### Parameter Handling Behaviors
50
+
51
+ - **ASP.NET/IIS**: Uses the first occurrence of the parameter
52
+ - **PHP/Apache**: Uses the last occurrence of the parameter
53
+ - **JSP/Tomcat**: Uses the first occurrence of the parameter
54
+ - **Perl CGI/Apache**: Concatenates all occurrences with a comma delimiter
55
+ - **Python/Flask**: Builds an array of values
56
+ - **Node.js/Express**: Uses the first occurrence by default
57
+
58
+ ### Notes and modern caveats
59
+
60
+ - Node.js `express` uses either `querystring` (first-wins) or `qs` (arrays/last-wins). `app.set('query parser', 'extended')` changes behavior. Many middlewares assume `param[]=a&param[]=b` for arrays; duplicates without `[]` can produce surprising results.
61
+ - Spring MVC/Spring Boot binders often collect duplicates into lists; API gateways (Kong, APIGEE, NGINX, Cloudflare) may collapse/normalize differently than backends.
62
+ - JSON duplicate keys: most parsers accept last-wins; some gateways reject duplicates while backends accept, creating precedence gaps.
63
+ - Cookies: duplicate cookie names and comma/semicolon handling vary by proxies/agents.
64
+
65
+ HPP attacks leverage these inconsistencies in parameter handling across application layers, servers, proxies, and frameworks. Two main types of HPP exist:
66
+
67
+ 1. **Server-side HPP**: Exploiting the server's handling of multiple parameters
68
+ 2. **Client-side HPP**: Manipulating parameters that are later processed by client-side code
69
+
70
+ ## Hunt
71
+
72
+ ### Identifying HPP Vulnerabilities
73
+
74
+ ```mermaid
75
+ sequenceDiagram
76
+ participant Attacker
77
+ participant WebApp
78
+ participant Backend
79
+
80
+ Attacker->>WebApp: Request with duplicate parameter<br/>param=safe&param=malicious
81
+ Note over WebApp: Layer 1 processes first value
82
+ WebApp->>Backend: Forward request to backend
83
+ Note over Backend: Layer 2 processes last value
84
+ Backend->>WebApp: Process with malicious value
85
+ WebApp->>Attacker: Response
86
+ ```
87
+
88
+ #### Testing Parameter Handling
89
+
90
+ 1. Identify forms and request parameters
91
+ 2. Test duplicate parameters with different values:
92
+
93
+ ```
94
+ // Original request
95
+ https://example.com/search?param=value1
96
+
97
+ // Test request
98
+ https://example.com/search?param=value1&param=value2
99
+ ```
100
+
101
+ 3. Observe application behavior
102
+ 4. Identify which value is used (first, last, concatenated)
103
+
104
+ #### Vulnerable Scenarios
105
+
106
+ - **Parameter Overriding**: Search for places where parameters might be overridden
107
+ - **Request Proxies**: Applications forwarding requests to other services
108
+ - **Query String Processing**: Applications that process query strings manually
109
+ - **Multiple-Layer Processing**: Applications where parameters pass through multiple layers
110
+ - **OAuth/SAML Flows**: Authentication flows where parameters may be manipulated
111
+
112
+ ### Testing Techniques
113
+
114
+ #### URL Parameter Pollution
115
+
116
+ ```
117
+ # Original URL
118
+ https://target.com/page?parameter=original_value
119
+
120
+ # Polluted URL
121
+ https://target.com/page?parameter=original_value&parameter=malicious_value
122
+ ```
123
+
124
+ #### Form Parameter Pollution
125
+
126
+ 1. Intercept a legitimate form submission
127
+ 2. Add duplicate parameters with different values:
128
+
129
+ ```
130
+ // Original POST body
131
+ parameter=original_value
132
+
133
+ // Modified POST body
134
+ parameter=original_value&parameter=malicious_value
135
+ ```
136
+
137
+ #### Hybrid Parameter Pollution
138
+
139
+ Combining parameters in both URL and POST body:
140
+
141
+ ```
142
+ // URL
143
+ https://target.com/page?parameter=url_value
144
+
145
+ // POST body
146
+ parameter=body_value
147
+ ```
148
+
149
+ #### JSON Parameter Pollution
150
+
151
+ Testing duplicate keys in JSON objects:
152
+
153
+ ```json
154
+ {
155
+ "parameter": "value1",
156
+ "parameter": "value2"
157
+ }
158
+ ```
159
+
160
+ Also test:
161
+
162
+ ```http
163
+ Cookie: role=user; role=admin
164
+ X-Role: user
165
+ X-Role: admin
166
+ ```
167
+
168
+ Observe which value the application trusts.
169
+
170
+ #### GraphQL Parameter Pollution
171
+
172
+ GraphQL queries can be polluted through aliasing, batch mutations, and duplicate variables:
173
+
174
+ ```graphql
175
+ # Alias pollution - bypass rate limits
176
+ query {
177
+ a: user(id: 1) {
178
+ name
179
+ email
180
+ }
181
+ b: user(id: 2) {
182
+ name
183
+ email
184
+ }
185
+ c: user(id: 3) {
186
+ name
187
+ email
188
+ }
189
+ # ... repeat to z or beyond
190
+ }
191
+
192
+ # Variable pollution
193
+ query ($id: Int!, $id: Int!) {
194
+ user(id: $id) {
195
+ name
196
+ }
197
+ }
198
+
199
+ # Batch mutation pollution
200
+ mutation {
201
+ a: redeemCoupon(code: "SAVE50") {
202
+ success
203
+ }
204
+ b: redeemCoupon(code: "SAVE50") {
205
+ success
206
+ }
207
+ c: redeemCoupon(code: "SAVE50") {
208
+ success
209
+ }
210
+ }
211
+ ```
212
+
213
+ #### WebSocket Parameter Pollution
214
+
215
+ WebSocket connections can carry polluted parameters in the upgrade request or message payloads:
216
+
217
+ ```http
218
+ GET /chat HTTP/1.1
219
+ Host: vulnerable.com
220
+ Upgrade: websocket
221
+ Connection: Upgrade
222
+ Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
223
+ Sec-WebSocket-Version: 13
224
+
225
+ # URL with polluted params
226
+ ws://vulnerable.com/chat?token=valid&token=malicious&room=1&room=admin
227
+ ```
228
+
229
+ ```json
230
+ // WebSocket message payload pollution
231
+ {
232
+ "action": "sendMessage",
233
+ "room": "public",
234
+ "room": "admin",
235
+ "message": "test"
236
+ }
237
+ ```
238
+
239
+ #### Parameter Array Notation Pollution
240
+
241
+ Different frameworks handle array notation differently, creating pollution opportunities:
242
+
243
+ ```http
244
+ # PHP - expects brackets
245
+ param[]=value1&param[]=value2
246
+
247
+ # Express (qs parser) - bracket optional
248
+ param=value1&param=value2
249
+
250
+ # Rails - numeric indices
251
+ param[0]=value1&param[1]=value2
252
+
253
+ # Mixed notation confusion
254
+ param=single&param[]=array1&param[0]=indexed
255
+ ```
256
+
257
+ **Testing strategy:**
258
+
259
+ 1. Test with `param=a&param=b` (no brackets)
260
+ 2. Test with `param[]=a&param[]=b` (array notation)
261
+ 3. Test with `param[0]=a&param[1]=b` (indexed)
262
+ 4. Mix notations to confuse parsers
263
+
264
+ #### Parameter Cloaking
265
+
266
+ Using encoding and case variations to bypass filters:
267
+
268
+ ```http
269
+ # URL encoding variations
270
+ param=value1&par%61m=value2
271
+ param=value1&PARAM=value2
272
+
273
+ # Double/triple encoding
274
+ param=value1&par%2561m=value2
275
+
276
+ # Unicode normalization
277
+ param=value1&pαram=value2 # Greek alpha instead of 'a'
278
+
279
+ # Null byte injection (legacy)
280
+ param=value1&param%00=value2
281
+ ```
282
+
283
+ ## Vulnerabilities
284
+
285
+ ### Common HPP Vulnerabilities
286
+
287
+ ```mermaid
288
+ graph LR
289
+ subgraph "HPP Attack Vectors"
290
+ A[HTTP Parameter Pollution] --> B[Access Control Bypass]
291
+ A --> C[Request Forgery Enhancement]
292
+ A --> D[Data Manipulation]
293
+ A --> E[API Vulnerabilities]
294
+
295
+ B --> B1[Parameter Override]
296
+ B --> B2[Permission Escalation]
297
+
298
+ C --> C1[CSRF Token Bypass]
299
+ C --> C2[SSRF Augmentation]
300
+
301
+ D --> D1[SQL Query Manipulation]
302
+ D --> D2[Filter Evasion]
303
+
304
+ E --> E1[Parameter Precedence]
305
+ E --> E2[OAuth Manipulation]
306
+ end
307
+ ```
308
+
309
+ #### Access Control Bypass
310
+
311
+ - **Parameter Override**: Overriding security-related parameters
312
+ ```
313
+ https://example.com/admin?access=false&access=true
314
+ ```
315
+ - **Permission Escalation**: Adding administrative parameters
316
+ ```
317
+ https://example.com/profile?user=victim&user=admin
318
+ ```
319
+
320
+ #### Request Forgery Enhancement
321
+
322
+ - **CSRF Token Bypass**: Duplicating anti-CSRF tokens
323
+ ```
324
+ https://example.com/transfer?token=valid_token&token=random_value&amount=1000
325
+ ```
326
+ - **SSRF Augmentation**: Overriding restricted URLs
327
+ ```
328
+ https://example.com/fetch?url=safe.com&url=internal.server
329
+ ```
330
+
331
+ #### Data Manipulation
332
+
333
+ - **SQL Query Manipulation**: Influencing SQL queries
334
+ ```
335
+ https://example.com/products?category=1&category=1 OR 1=1
336
+ ```
337
+ - **Filter Evasion**: Bypassing input filters
338
+ ```
339
+ https://example.com/search?q=safe_value&q=<script>alert(1)</script>
340
+ ```
341
+
342
+ #### API Vulnerabilities
343
+
344
+ - **Parameter Precedence Confusion**: Different parameter precedence between API gateway and backend
345
+ - **GraphQL Parameter Pollution**: Duplicate variables in GraphQL queries
346
+ - **OAuth Parameter Manipulation**: Manipulating OAuth redirect flows
347
+ - **Header/Cookie Pollution**: Conflicting header values across CDN → WAF → app layers
348
+
349
+ ### Impact Scenarios
350
+
351
+ #### Authentication Bypass
352
+
353
+ ```
354
+ # Application authenticates using the first parameter but authorizes using the last
355
+ https://example.com/login?role=user&role=admin
356
+ ```
357
+
358
+ #### WAF Bypass
359
+
360
+ ```
361
+ # WAF checks the first parameter, backend processes the last
362
+ https://example.com/search?q=safe&q=<script>alert(1)</script>
363
+ ```
364
+
365
+ #### XML External Entity (XXE) via HPP
366
+
367
+ ```
368
+ # Bypassing XML filtering by parameter pollution
369
+ https://example.com/upload?xml=safe&xml=<!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
370
+ ```
371
+
372
+ #### API Gateway vs Backend Precedence
373
+
374
+ ```
375
+ # Gateway picks first id, backend picks last id -> IDOR/AC bypass
376
+ /api/user?id=123&id=999
377
+ ```
378
+
379
+ ## Methodologies
380
+
381
+ ### Tools
382
+
383
+ - **Burp Suite Pro**: Parameter pollution testing via Repeater and Intruder
384
+ - **OWASP ZAP**: HTTP fuzzer for parameter testing
385
+ - **Param Miner**: Extension for discovering hidden parameters
386
+ - **HPP Finder**: Specialized tool for HPP vulnerability detection
387
+ - **Burp Repeater (Parallel)**: Validate precedence across layers quickly
388
+ - **Schemathesis**: Fuzz OpenAPI-defined endpoints for duplicate-field handling
389
+
390
+ ### Testing Methodology
391
+
392
+ ```mermaid
393
+ flowchart TD
394
+ A[HPP Testing Methodology] --> B[Initial Discovery]
395
+ A --> C[Exploit Development]
396
+ A --> D[Impact Assessment]
397
+
398
+ B --> B1[Map application parameters]
399
+ B --> B2[Test duplicate parameters]
400
+ B --> B3[Document behavior]
401
+
402
+ C --> C1[Access control testing]
403
+ C --> C2[Security control bypass]
404
+ C --> C3[API security testing]
405
+
406
+ D --> D1[Authentication bypass]
407
+ D --> D2[Authorization bypass]
408
+ D --> D3[Data manipulation]
409
+ ```
410
+
411
+ #### Initial Discovery
412
+
413
+ 1. Map all application parameters (URL, form, cookie, header)
414
+ 2. Test each parameter with duplicates to observe behavior
415
+ 3. Document how different application components handle parameter duplication
416
+
417
+ #### Exploiting HPP for Web Application Testing
418
+
419
+ 1. **Access Control Testing**:
420
+
421
+ ```
422
+ # Test privileged parameter override
423
+ https://example.com/admin?admin=false&admin=true
424
+
425
+ # Test user context override
426
+ https://example.com/profile?id=attacker&id=victim
427
+ ```
428
+
429
+ 2. **Security Control Bypass**:
430
+
431
+ ```
432
+ # Test CSRF token pollution
433
+ token=legitimate&token=fake
434
+
435
+ # Test parameter validation bypass
436
+ param=valid_value&param=malicious_value
437
+ ```
438
+
439
+ 3. **API Security Testing**:
440
+
441
+ ```
442
+ # Test API parameter handling
443
+ /api/v1/user?id=123&id=456
444
+
445
+ # Test with different content types
446
+ Content-Type: application/json
447
+ {"id": "123", "id": "456"}
448
+ ```
449
+
450
+ 4. **HTTP Request Smuggling via HPP**:
451
+
452
+ ```
453
+ # Testing inconsistent interpretation
454
+ Transfer-Encoding: chunked
455
+ Transfer-Encoding: identity
456
+ ```
457
+
458
+ 5. **Header/Cookie Pollution**:
459
+
460
+ ```
461
+ Cookie: session=abc; session=attacker
462
+ X-Forwarded-Proto: http
463
+ X-Forwarded-Proto: https
464
+ ```
465
+
466
+ ### Real-World Test Cases
467
+
468
+ #### E-commerce Application Testing
469
+
470
+ ```
471
+ # Price manipulation
472
+ https://shop.com/checkout?price=100&price=1
473
+
474
+ # Quantity override
475
+ https://shop.com/cart?quantity=1&quantity=100
476
+ ```
477
+
478
+ #### Banking Application Testing
479
+
480
+ ```
481
+ # Amount parameter pollution
482
+ https://bank.com/transfer?amount=100&amount=10000
483
+
484
+ # Recipient override
485
+ https://bank.com/transfer?to=legitimate&to=attacker
486
+ ```
487
+
488
+ #### CMS Admin Testing
489
+
490
+ ```
491
+ # Permission bypass
492
+ https://cms.com/edit?permission=read&permission=write
493
+
494
+ # User impersonation
495
+ https://cms.com/admin?user=admin&user=victim
496
+ ```
497
+
498
+ #### Social Sharing Button Parameter Pollution
499
+
500
+ A specific case of parameter pollution that affects social sharing functionality:
501
+
502
+ 1. **Testing Methodology**:
503
+
504
+ ```
505
+ # Original share URL
506
+ https://target.com/article
507
+
508
+ # Polluted share URL
509
+ https://target.com/article?u=https://attacker.com&text=malicious_text
510
+ ```
511
+
512
+ 2. **Common Parameters**:
513
+ - `u` or `url`: The URL to be shared
514
+ - `text`: Custom text for the share
515
+ - `title`: Title of the shared content
516
+ - `description`: Description for the shared content
517
+
518
+ 3. **Impact**:
519
+ - Redirect users to malicious sites
520
+ - Modify shared content
521
+ - Social engineering attacks
522
+ - Brand reputation damage
523
+
524
+ 4. **Testing Steps**:
525
+ - Identify social sharing functionality
526
+ - Analyze original share parameters
527
+ - Append malicious parameters
528
+ - Test each social platform separately
529
+ - Verify if malicious content appears in share preview
530
+
531
+ ## Real-World Cases and CVEs
532
+
533
+ ### Notable Parameter Pollution Vulnerabilities
534
+
535
+ 1. **CVE-2021-41773 - Apache HTTP Server Path Traversal**:
536
+ - Parameter pollution in URL path normalization
537
+ - Multiple encoded path segments bypassed access controls
538
+ - Impact: Remote code execution via CGI scripts
539
+
540
+ 2. **CVE-2018-8033 - Apache OFBiz**:
541
+ - Parameter pollution in authentication bypass
542
+ - Duplicate parameters in login form bypassed security checks
543
+ - Impact: Administrative access without credentials
544
+
545
+ 3. **HPP in OAuth Implementations (Multiple Vendors)**:
546
+ - Duplicate `redirect_uri` parameters in OAuth flows
547
+ - Gateway checked first parameter, backend used last
548
+ - Impact: Account takeover via malicious redirect
549
+
550
+ 4. **API Gateway vs Backend Precedence (Bug Bounty)**:
551
+ - AWS API Gateway processed first `id` parameter
552
+ - Backend Lambda function processed last `id` parameter
553
+ - Impact: IDOR allowing access to other users' data
554
+
555
+ 5. **GraphQL Rate Limit Bypass (Multiple Platforms)**:
556
+ - Aliased queries bypassed per-query rate limits
557
+ - 100+ identical operations in single request
558
+ - Impact: Account enumeration, resource exhaustion
559
+
560
+ 6. **WAF Bypass via HPP (Generic)**:
561
+ - WAF inspected first parameter for XSS/SQLi
562
+ - Backend processed last parameter
563
+ - Impact: Complete WAF bypass for injection attacks
564
+
565
+ ### Impact Ratings
566
+
567
+ - **Critical**: HPP enables authentication/authorization bypass or RCE
568
+ - **High**: HPP allows WAF bypass, payment manipulation, or privilege escalation
569
+ - **Medium**: HPP bypasses rate limiting or validation controls
570
+ - **Low**: HPP causes logic errors with minimal security impact
571
+
572
+ ### Common Bug Bounty Targets
573
+
574
+ - E-commerce checkout flows (price/quantity parameters)
575
+ - OAuth/SAML redirect parameters
576
+ - API endpoints with pagination/filtering
577
+ - File upload with filename/path parameters
578
+ - Social sharing functionality
579
+ - Payment processing integrations
580
+ - Multi-step wizards/forms
581
+
582
+ ## Remediation Recommendations
583
+
584
+ - **Consistent Parameter Handling**: Implement consistent handling across all application layers
585
+ - **Parameter Validation**: Validate parameters before processing
586
+ - **Framework Awareness**: Understand how your framework handles duplicate parameters
587
+ - **Web Application Firewall**: Configure WAF to detect parameter pollution attempts
588
+ - **API Gateway Rules**: Implement rules to reject duplicate parameters
589
+ - **Canonicalization**: Convert parameters to a standard form before processing
590
+ - **Schema Enforcement**: Use JSON Schema/OpenAPI validation to reject duplicates and unexpected fields
591
+ - **Drop Duplicates at the Edge**: Normalize parameters at CDN/API gateway and log events
592
+ - **Explicit Parser Settings**: e.g., in Express set a custom query parser and explicitly forbid duplicates without `[]` suffix for arrays
593
+ - **GraphQL Query Complexity Limits**: Enforce maximum query depth and alias counts
594
+ - **WebSocket Frame Validation**: Parse and validate WS message structures consistently with HTTP parameter handling
595
+