Skriptsprachen Injektion

Was ist eine Skriptsprachen Injektion?

Eine Skriptsprachen Injektion ist eine Schwachstelle, die meist im Web auftritt.

Skriptsprachen Injektion liegt vor, wenn eine Programmiersprache Benutzereingaben verwendet, um Code auszuführen, ohne ihn zu filtern.

Diese Sicherheitslücke ähnelt der OS-Befehlsinjektion, unterscheidet sich aber in der Art der Ausführung.

 

Nehmen wir das Diagramm einer Befehlsinjektion:

In diesem Beispiel führt der Server einen Befehl auf dem Betriebssystem aus, auf dem er gehostet wird, so dass für verschiedene Shells spezifische Befehle injiziert werden können.

Schauen wir uns nun die Injektion der Skriptsprache an:

Hier führt der Server selbst einen Befehl aus, der für die von ihm verwendete Sprache spezifisch ist.

Ein Angreifer muss dann sprachspezifische Funktionen verwenden.

Die meisten der auf einem Server verwendeten Sprachen können jedoch mit dem Betriebssystem interagieren, so dass die Risiken ähnlich sind wie bei der Injektion von Betriebssystembefehlen.

Wenn sich die Befehlsinjektion jedoch nur auf der Serverseite befindet, kann eine Skriptsprachen Injektion auf der Clientseite durchgeführt werden, wenn das verwendete Javascript dies zulässt.

Auswirkungen

 

Die Injektionen in Skriptsprachen haben folgende Auswirkungen:

 

OS-Befehlsinjektion 

Skriptinjektionen ermöglichen die Einschleusung von Befehlen mit Funktionen wie system(), die Folgendes bewirken. 

Weitere Informationen finden Sie im Artikel Command Injection.

 

SQL Injection

Wenn der angegriffene Server eine Datenbank verwendet, ist es möglich, SQL-Injektionen durchzuführen und Risiken wie diese zu verursachen:

Weitere Informationen finden Sie im Artikel SQL-Injection.

Cross Site Scripting (XSS)

Wenn sich eine Schwachstelle in der Skriptsprache auf der Client-Seite befindet, wird die Anwendung anfällig für reflektiertes XSS, was vielfältige Folgen haben kann. Sie finden sie in unserem Artikel Cross Site Scripting.

 

Wie kann ein Hacker Code einspeisen?

  1. Eine Client-Seite und eine Server-Seite verwundbar

Zur Veranschaulichung eines Angriffs durch Skriptsprache verwende ich das Beispiel einer Webanwendung, die zwei Schwachstellen enthält: eine auf dem Client und eine auf der Serverseite. 

Es ist ratsam, die Artikel über Befehlsinjektionen und Cross Site Scripting gelesen zu haben, um zu verstehen, was ein Befehl ist und wie reflektiertes XSS funktioniert. Die gefährdete Website hilft Ihnen, Mathematik zu trainieren. 

Eine Schaltfläche „Generieren“ zeigt eine zufällige Gleichung und ein auszufüllendes Formular an .

  1. Ausnutzung der serverseitigen Skriptspracheninjektion

Auf dem Formular wird Loris, der Hacker, versuchen, einen Shell-Auftrag einzugeben.

 

Es wird eine PHP-Fehlermeldung angezeigt.

Es versteht, dass seine Eingabe von der eval-Funktion verarbeitet wird, einer Funktion zur Ausführung von PHP-Code in einem PHP-Programm.

Um Shell-Befehle ausführen zu können, wandelt es seine Eingaben in:

Die Systemfunktion ermöglicht die Ausführung eines beliebigen Shell-Befehls, und der vom Server ausgeführte Code sieht wie folgt aus:

Wenn Loris ein ls ausführt, sieht er eine Datei namens „routes.txt“,

 Wenn Sie cat darauf anwenden, erhält Loris alle auf der Website verfügbaren Pfade, einschließlich „/{endpoint_name}“, der auf der Website nicht sichtbar ist.

  1. Ausnutzung der clientseitigen Skriptspracheninjektion

Wenn Loris sie aufruft, findet er eine klassische Seite.  

Wenn er sich den HTML-Code ansieht, bemerkt er einen <script>-Abschnitt, der die eval-Funktion aufruft, die ähnlich wie die eval-Funktion in PHP funktioniert, aber mit Javascript-Code. Diese Funktion scheint einen Parameter in der URL zu verwenden.

Es ist also möglich, einen Browser dazu zu bringen, dank eines Parameters in der URL Javascript-Code auszuführen.

Durch die Verwendung von Code, der die Cookies eines Administrators mit „document.cookie“ auf seinen Server umleitet, hätte Loris dann Zugang zu einem Konto mit erhöhten Rechten.

Daher muss er nur seinen Code für ein reflektiertes XSS erstellen:

Dann fügt er ihn in den Parameter „value“ der URL ein.

Schließlich muss er nur noch eine E-Mail an einen Website-Administrator schicken und etwas Social Engineering anwenden.

Welche Schutzmechanismen gibt es gegen Skriptsprachen Injektionsangriffe?

Zum Schutz vor Angriffen durch Skriptsprachen gelten die Empfehlungen für andere Injektionen:

  • Alle Benutzereinträge filtern.
  • Lassen Sie nur bestimmte Werte zu, um den Handlungsspielraum eines Benutzers auf das Maximum zu beschränken.

Angriffe durch Skriptsprachen sind jedoch sehr gefährlich und können schwerwiegende Folgen haben.

Außerdem sind solche Funktionen in der Regel leicht austauschbar.

 

Daher sollten Sie niemals eine Funktion verwenden, die eingegebenen Code ausführt.

Wie schützt R&S®Cloud Protector vor Angriffen durch Skriptsprache schützen?

R&S®Cloud Protector ermöglicht den Schutz von Webanwendungen dank seiner Syntax-Engine, die es ermöglicht, die Grammatik der verschiedenen auf der Serverseite verwendeten Sprachen zu erkennen: PHP, Java etc..

In diesem Beispiel wird R&S®Cloud Protector zwei bösartige Muster finden: “ if () { } “ und “ system() ; “ und gibt ihnen eine Bewertung.

Wenn die endgültige Punktzahl höher ist als der zulässige Grenzwert, wird die Anfrage blockiert und der Benutzer wird auf eine andere Seite umgeleitet.

Fordern Sie Ihre 14-tägige gratis Testversion an

In nur 60 Sekunden Websites und Anwendungen schützen Worauf warten Sie?