Securam Consulting Logo

Das große IT-Security-Glossar

Definition:

Code Injection

Was ist Code Injection?

Code Injection ist eine Angriffsklasse, bei der schädlicher Code über Eingabefelder oder Schnittstellen in eine Anwendung eingeschleust und zur Ausführung gebracht wird. Ziel ist es, die Anwendung zu manipulieren, Informationen auszuspähen oder unautorisiert Aktionen durchzuführen – sowohl auf Applikations‑ als auch Systemebene.


Technischer Hintergrund & Varianten

Typen von Code-Injection:

  • SQL Injection: Einschleusen von SQL-Kommandos zur Manipulation von Datenbanken

  • Command Injection: Ausführung von Shell- oder Systembefehlen durch unsichere Systemaufrufe

  • Template Injection: Missbrauch von Templating-Engines (z. B. Jinja2, Twig) zur Codeausführung

  • LDAP Injection, XPath Injection, OGNL Injection: Ähnliche Muster in anderen Abfrage-Engines

Mechanismus:

  • Eingabedaten werden ohne ausreichende Validierung oder Kodierung direkt in ausführbaren Code übernommen

  • Der Angreifer kann dadurch eigenen Code einschleusen – meist mit dem Ziel, Zugriff auf interne Daten oder Systemfunktionen zu erlangen


Bedeutung in der Praxis

Code Injection ist eine der gefährlichsten Web-Schwachstellen – mit oft gravierenden Folgen:

Risiko Auswirkung
Datenexfiltration z. B. alle Userdaten auslesen
Account-Übernahme durch Session-Manipulation
Remote Code Execution (RCE) z. B. über Bash oder Python Shells
Eskalation durch Concerns Verketten mehrerer kleiner Schwächen

Schutzmaßnahmen

  • Input-Validierung: Nur erlaubte Zeichen und Formate zulassen (Whitelisting)

  • Prepared Statements / parametrisierte Abfragen

  • Escape & Encode bei Ausgabe in HTML, JS, SQL

  • Code/Data Separation – niemals Eingaben direkt in ausführbaren Kontext einfügen

  • Einsatz sicherer Frameworks mit integriertem Schutz (ORM, Templating)


Relevanz in Standards


Verwandte Begriffe

  • SQL Injection

  • Command Injection

  • RCE (Remote Code Execution)

  • Input Validation

  • Secure Coding

  • Templating Engine

  • Penetrationstest


Beispiel aus der Praxis

Ein Kontaktformular nahm E-Mail-Adressen entgegen. Ein Angreifer fügte statt einer Adresse ein:
test@example.com'; DROP TABLE users; --
Ohne Prepared Statement führte das zur vollständigen Löschung der Benutzerdatenbank.