Ich habe kürzlich mit allot von JavaScript gespielt und dachte mir, dass ich kein Stück JavaScript finden würde, das ich nicht debuggen könnte.
Nun, ich war heute angenehm überrascht und verärgert, als wir eine Reihe von JavaScript-Redirect-Trojanern auf unserer Unternehmenswebseite entdeckt haben.
Der Großteil des Codes, den wir gefunden haben, konnte ich leicht sezieren und Standard-Escaping verwenden, um die Code-Funktion zu verschleiern.
Aber unter dem Code, den wir gefunden haben, hat mich der unten stehende Code völlig verwirrt, was er tut. (Der einzige Teil, den ich anscheinend ausarbeiten kann, ist, dass er einige der Parameter ersetzt).
Würde also jemand bitte freundlich sein, den folgenden Code für mich zu sezieren? Ich würde gerne genau wissen, was vor sich geht ...
%Vor%Es bettet Ссылка , und dies ist die Zeile, wo Sie es sehen können:
%Vor% Sie sehen, wie jedes ungerade Zeichen, wenn es aus dieser Zeichenfolge ausgewählt wird, die URL bildet. Ich habe das nicht ausgeführt, also bin ich mir nicht sicher, unter welchen Bedingungen dies geschieht, aber Sie können sehen, dass String.replace
in String.gT
umbenannt wurde und eine Regex gegen die Zeichen übergeben wird, die die Zeichenfolge verschleiern. Wenn Sie dieselbe Methode anwenden und ungerade Zeichen auswählen, können Sie sehen, dass ein versteckter Iframe, einige JavaScript-Ereignishandler, setAttribute
usw. vorhanden sind:
So wird String.replace
Aliasing:
Im Kontext dieser Funktion ist this
die Zeichenfolge, für die gT
aufgerufen wird, und d
ist die Zeichenfolge replace
. Beim Prototyp einer Zeichenfolge gibt this['replace']
die Methode replace()
zurück, die dann mit den beiden Argumenten an gT
aufgerufen wird. Das Ergebnis wird zurückgegeben.
Aktualisieren
Ich habe das Skript wie folgt umgestaltet:
string.gT()
wurden durch ihre einfachen Formulare ersetzt. Das ist das Ergebnis, es sollte ziemlich klar sein, wie es jetzt funktioniert:
%Vor%Führen Sie es in einem JavaScript-Debugger aus; Schließlich wird der Code sich selbst dekompilieren und versuchen zu starten. Ich schlage vor, die neueste Version von FireFox vielleicht auf einer Linux-Box zu verwenden, um auf der sicheren Seite zu sein.
Tags und Links javascript debugging obfuscation trojan