# Injection-Angriffe als universelles Problem interpretierter Systeme
## Einleitung
# Injection-Angriffe als universelles Problem interpretierter Systeme
Einleitung
Injection-Angriffe zählen zu den grundlegendsten Schwachstellen moderner Softwaresysteme. Sie entstehen immer dann, wenn untrusted input Teil einer formalen Sprache wird und anschließend von einem Parser oder Interpreter verarbeitet wird.
Das zentrale Prinzip ist unabhängig von der Technologie: SQL, Shell, HTML, XPath, JSON oder Template Engines unterscheiden sich syntaktisch, aber nicht strukturell.
Injection bezeichnet die unbeabsichtigte Veränderung der syntaktischen oder semantischen Struktur einer interpretierten Sprache durch manipulierte Eingaben.
Das Muster bleibt konstant: Ein Kontext wird verlassen und dadurch werden Grammatik und Semantik verändert.
— -
Definitionen
Injection Unbeabsichtigte Veränderung der syntaktischen oder semantischen Struktur einer interpretierten Sprache durch manipulierte Eingaben, typischerweise durch das Verlassen des vorgesehenen Kontexts.
Context Escape Der Vorgang, bei dem eine Eingabe ihren ursprünglichen Kontext verlässt (z.B. Stringliteral to SQL code, HTML attribute to JavaScript context). Context escapes are the main mechanism used to change grammar and semantics.
— -
Universelles Muster
Injection folgt immer derselben Struktur:
- Eingaben werden in einen syntaktischen Kontext eingebettet
- Eingaben werden Teil einer formalen Sprache
- Parser oder Interpreter analysieren die Struktur (tokenization, parsing, semantic analysis)
- Der Angreifer verlässt den erwarteten Kontext
- Neue syntaktische Elemente verändern die Bedeutung
Diese Eingaben verändern Token streams, Parse trees oder Abstract Syntax Trees (ASTs).
— -
Parsing vs Execution
Parse Phase
Manipulation der Tokenisierung oder Grammatik (z.B. string termination, new tokens)
Ziel: Strukturveränderung vor der Ausführung
Maßnahmen: lexical validation, token checks, AST checks
— -
Semantic Phase
Manipulation der Ausführungslogik oder des Kontrollflusses
Ziel: Änderung der Bedeutung trotz gültigem Parse
Maßnahmen: policy checks, authorization, runtime isolation
— -
Typische Klassen
- SQL Injection: Manipulation von SQL Queries durch String Bruch und Token Injection
- NoSQL Injection: Nutzung von Operatoren wie $ne, $regex
- Command Injection: Nutzung von Shell Operatoren wie ;, &&, |
- Cross Site Scripting (XSS): Code Injection in Browser Contexts
- Template Injection (SSTI): Missbrauch von Template Engines
- Weitere: XPath, LDAP, XML, CRLF, CSV Injection, ReDoS
Alle folgen demselben Prinzip: Input becomes code in an interpreted context.
— -
Mehrstufige Interpreterketten
Moderne Systeme enthalten verschachtelte Kontexte:
HTML to JavaScript to JSON to SQL
Fehler entstehen oft an Übergängen, da Encoding und Escaping inkonsistent sind.
— -
Gemeinsame Eigenschaften
- Interpreter vorhanden
- Daten und Logik vermischt
- Kontextabhängige Semantik
- Context escape möglich
Injection ist ein Sprachproblem, Parserproblem und Architekturproblem.
— -
Abwehrprinzipien
- Trennung von Daten und Logik (prepared statements, parameter binding)
- Kontextsensitives Escaping
- Typisierung und Schema Validation
- AST based validation statt string filtering
- Least privilege and sandboxing
- Sichere Interpreter Designs ohne dynamic evaluation
— -
SDLC
- Design: Daten dürfen niemals als Code interpretiert werden
- Code Review: Fokus auf Kontextwechsel
- Testing: AST fuzzing und structured attacks
- Monitoring: Anomaly detection for query and AST patterns
— -
Schlussfolgerung
Injection ist kein isoliertes Problem einzelner Technologien, sondern eine fundamentale Eigenschaft interpretierter Systeme.
Das Muster bleibt konstant: Ein Kontext wird verlassen und die Bedeutung der Struktur verändert sich.
— -
Quellen
OWASP Foundation. OWASP Top 10 Injection https://owasp.org/www-project-top-ten/
OWASP Cheat Sheet Series https://cheatsheetseries.owasp.org/
Halfond et al. A Classification of SQL Injection Attacks and Countermeasures
Nadji et al. Context Sensitive String Evaluation for SQL Injection Prevention
Aho, Lam, Sethi, Ullman. Compilers: Principles, Techniques, and Tools
PortSwigger Web Security Academy SSTI https://portswigger.net/web-security/server-side-template-injection
CVE-2014–6271 Shellshock https://cve.mitre.org/
메타데이터
- post_id
- e05feef42dbf
- slug
- injection-angriffe-als-universelles-problem-interpretierter-systeme-e05feef42dbf
- url
- https://medium.com/@rainer_zufall111/injection-angriffe-als-universelles-problem-interpretierter-systeme-e05feef42dbf
- canonical_url
- https://medium.com/@rainer_zufall111/injection-angriffe-als-universelles-problem-interpretierter-systeme-e05feef42dbf
- author_url
- https://medium.com/@rainer_zufall111
- status
- ok
- fetched_at
- 2026-06-20 20:29:01