JavaScript: Funktionen ohne Klammern aufrufen – mit prepareStackTrace

Yet another way to invoke functions without parentheses

Ein neuer Weg, in JavaScript beliebige Funktionen ohne Klammern aufzurufen: Man überlädt Error.prepareStackTrace mit dem Function-Konstruktor und manipuliert Array.prototype.toString, um den Stacktrace in gültigen Code zu verwandeln. Anschließend wird die erzeugte Funktion über den valueOf-Trick als Primitive aufgerufen. Der vollständige Payload lässt sich direkt in der Browser-Konsole testen.

Object.prototype.message='alert\x281337\x29';Array.prototype.toString=Error.prototype.toString;Error.prepareStackTrace = Function;const x = new Error;x.valueOf=x.stack;+x;

Mehr von diesem Tag

2026-10-16