Wiki: Salesforce Aura / Lightning
TL;DR
- Aura uses JSON payloads with
messageandaura.context. - Many issues come from parameter tampering and over-permissive Apex methods.
- Focus on
classname,method, andparamsin the request body.
Common Findings
| Type | Description |
|---|---|
| Unvalidated redirect | aura.redirect, aura.token misuse |
| Parameter tampering | action.setParams() without validation |
| DOM-based XSS | Unsafe HTML merges in components |
| Access control bypass | Public components in siteforce:communityApp |
| Endpoint injection | Manipulated aura.context and message JSON |
| Insecure deserialization | Caching/globals used unsafely |
Anatomy of an Aura Request
Typical endpoint:
POST /sfsites/aura
Key parameters:
message- JSON withactions,classname,method, andparams.aura.context- App, framework UID, loaded components.aura.token- CSRF-like token for some apps.
Test Checklist
- Change
classnameandmethodto locate unintended Apex methods. - Fuzz
paramsfor injection and validation errors. - Toggle
aura.context.modebetweenPRODandDEV. - Remove or fake
aura.tokento test enforcement. - Look for data returned by unauthenticated calls.
Example Tampering Ideas
classname-> try other controllers likeAccountController.params-> try"<img src=x onerror=alert(1)>"or path traversal payloads.aura.context-> invalidfwuidormodeto trigger debug output.
Notes
- Always confirm which components are public vs authenticated.
- Keep payload sizes small to avoid noisy failures.