ich in ein paar verschleierten Javascript bemerkt Exploit KitObfuscated Javascript in einem Exploit-Kit mit Konstruktor Array
> a = []["constructor"]
Array() { [native code] }
> b = a["constructor"]
Function() { [native code] }
> b("console.log('a');")
anonymous() {
console.log('a');
}
> b("console.log('a');")()
a
oder mit anderen Worten
> [].constructor.constructor("console.log('a');")()
a
Kann jemand erklären, was hier passiert? Was ist der Konstruktor eines Konstruktors eines Arrays?
Sie können '[] .constructor.constructor' in jede JS-Konsole eingeben und selbst herausfinden. –
Falls Sie neugierig sind, der Konstruktor von 'Function' ist auch eine' Funktion', also ist es eine zirkuläre Beziehung darüber hinaus. Hier ist die [MDN-Seite] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) für 'Funktion' – 4castle
Ja, das ist die Ausgabe einer JS-Konsole. Der Schlüssel hier (der fehlte) ist, dass der Function-Prototyp ein String-Literal nimmt und eval darauf prüft. –