FREE Hacking & defense LESSON · Hacking & defense

Follow untrusted data

Sources, transformations, sinks, and context

Exploitation often begins by tracing data across trust boundaries.

User-controlled bytes enter through requests, files, messages, devices, or integrations; code parses and transforms them; a sink interprets them as SQL, markup, a shell command, a path, a template, or an object. Safety depends on the grammar expected at the sink, not generic cleansing. In an authorized lab, trace one value end to end and test the smallest payload that distinguishes interpretation from data.

Validation constrains meaning; contextual encoding preserves data at a specific interpreter boundary.

A dramatic payload can obscure the actual primitive.

Large exploit chains introduce unrelated variables and can damage systems. Reduce the finding to the smallest authorized proof: exact source, transformation, sink, missing check, and controlled effect. Capture requests, responses, versions, and environmental assumptions so maintainers can reproduce without guessing.

A good proof of concept minimizes harm and maximizes causal clarity.
Practise this lesson free →