Hier zeige ich dir, wie Hacker vorgehen, wenn sie über PHP und Node.js einbrechen wollen und ich zeige dir auch, wie du gefährliche Operationen erkenn kannst. Zuerst muss unterscheidet werden, ob es sich um eine direkte (per Load) oder indirekte (Request) Operation handelt. Um überhaupt Schadcode auf dem Gerät zu platzieren, muss der Hacker irgendwie Zugriff erhalten, dabei nutzten sie meistens Inkrementierende Algorithmen. Wenn du dies also verhindern willst, solltest du nach sich vergrössernden Variabel-Antworten Ausschau halten. Manchmal wird diese Methode auch als Art DDOS verwendet um einen Prozess zu beenden (Bsp. Anti-Viren Software). Es kommt auch immer wieder vor, dass in Anfragen verschlüsselte Befehle stehen, die dann bei der Umwandlung in Assemblercode oder bei der Dekompilierung erst ihren Sinn zeigen bzw. diesen auch wirklich erfüllen. Wie du sicher weisst, ist es sehr schwierig solchen Code zu erkennen, da Anti Viren Programme nur auf den oberen Schichten (Normaler Code und bei manchen auch Assemblercode) aktiv sind! Welche Anti-Viren Software soll ich nutzen?
Regierungen wie die von Nordkorea könnten auch solche Angriffsmethoden nutzen, deshalb solltest du dich unbedingt schützen:
1.Führe eine Doppelte Validieren durch.
2.Wenn du wichtige Daten verschiebst, solltest du in der Netzwerkübersicht prüfen, was für Daten empfangen und gesendet werden.
3.Verschlüssle Variabeln:
Das heisst: nicht md5($_GET["variabel"] sondern $var1 = $_GET["variabel"]; md5($var1).
Um zu verhindern, dass ein Hacker die Verschlüsslung knackt kannst du folgendes tun:
Bei jeder Session wird ein random Passwort generiert und als Textdatei auf dem Server gespeichert, das PHP File liest die Datei aus und nutzt sie als Passwort für den vom User eingegeben Content!
Beispiel:
$passwort = file_get_contents('password.txt'); //Falls die Datei nicht im gleichen Ordner wie das Skript ist, ganzen Pfad angeben! $salt = $_POST["hey"]; echo md5($passwort.$salt);
authorized_keys nicht funktionierend wird angezeigt, aber es gibt trotzdem eine Transaktion? Da könnte ein Hacker am spielen sein...........
— KKTVCAM (@kktvcamnews) 26. November 2017
1.Das "Entenmaul"(<) am Anfang durch ein anderes Zeichen (Bsp: *) ersetzen.
Aus <script wird dann *script.
Dies erfordert allerdings ein sehr kompliziertes stück PHP Code.
2.Alle Daten die eingegeben werden können, sollen in eine TXT Datei geschrieben werden.
Dazu solltest die PHP Write Funktion nutzen.
Die meisten Browser werden nicht herausfinden das es sich in Wirklichkeit um JavaScript handelt!
Ausserdem solltest du die normale ASCII14 Codierung verhindern.
3.Behalte deine Webseite im Auge. Stellst du verdächtige Aktivitäten fest, solltest du sie umgehend Offline nehmen!
4.Nutze all diese Tipps gleichzeitig!
Du hast eine Frage oder benötigst Hilfe?
Drücke hier um zum Support Chat zu gelangen.
Person A hat enorm viel Geld und möchte in den Nationalrat gewählt werden, Person B möchte dies auch, hat aber viel weniger Geld. Gäbe es keine #NetzNeutralität könnte Person A einem Internet Provider Geld zahlen, dass die Seite von Person B nicht angezeigt wird.
— KKTVCAM (@kktvcamnews) 26. November 2017
Das ist dann ähnlich wie wenn man ein zufälliges Französisches Wort auf Deutsch übersetzt und erst dann merkt, dass es sich um ein primitives Schimpfwort handelt. Es kommt manchmal auch vor, dass Nutzer ausersehen solche Daten senden, damit du aber den Einbruch verstehst, zeige ich dir dies kurz anhand eines Beispiels:
?ID=42
Der Hacker ändert den Inhalt des Befehls so, dass er den Wert mit der ID42 verändern kann:
UPDATE+ID=43+SET+TYPE="admin"+WHERE+IDS=12
Bei diesem Beispiel wird der Wert von der ID 12 zur ID 42 integriert.
BSP FÜR EINE INFORMATION DIE ÜBERTRAGEN WIRD:
https://www.facebook.com/?stype=lo&jlou=AffUs1HhAitm7nZPk
Der Parameter stype sendet die im Login Formular angegeben Daten, zur Überprüfung an die SQL Datenbank, dort wird überprüft ob der Nutzer vorhanden ist.
Dabei nutzt Facebook eine sehr clevere Methode, um SQL Injections zu nutzen:
Sie verändern die Art wie die Daten übertragen werden ständig.
Die du im Link sehen kannst, werden die Informationen verschlüsselt übertragen, die Verschlüsselung wird dabei aber bei jedem Login geändert!
DATEN AUSSPÄHEN:
Das Problem hierbei ist, dass der WebMaster nichts davon mitbekommt oder erst davon erfährt, wenn es bereits zu spät ist.
42+UNION+SELECT+login,+password,+'x'+FROM+user
42 steht für das betreffende Datenfeld.
Dabei erhält der Hacker alle Daten die sich in dem betreffenden Feld befinden!
Mache unbedingt eine Duale Verifikation, da Client-Side Javascript verändert werden können.
javascript: void(document.file="variable"
Hier hat der Angreifer eine Serverseitige Variabel genommen.
Hier kurz ein paar Überprüfungstipps:
Um die Variabeln so sicher wie möglich zu verschlüsseln, solltest du sie als passive Variabeln verarbeiten.
Das heisst: nicht md5($_GET["variabel"] sondern $var1 = $_GET["variabel"]; md5($var1).
Um zu verhindern, dass ein Hacker die Verschlüsslung knackt kannst du folgendes tun:
Bei jeder Session wird ein random Passwort generiert und als Textdatei auf dem Server gespeichert, das PHP File liest die Datei aus und nutzt sie als Passwort für den vom User eingegeben Content!
Beispiel:
Bei der Übertragung von den Daten via CURL kann jedes Script auf der Website genutzt werden. Es ist also wichtig das die Ziel Url und das Datenziel, fest und statisch verankert sind! Dies kann zum Beispiel durch eine ht.access Datei, welche nur Nutzer mit einer bestimmten Session zulässt geregelt werden. Dazu muss aber jeder Ordner (der ein Script enthält) über eine eigene access Datei verfügen.
Session beispiel:
Hier werde ich auch einige Viren die hierfür bekannt sind angeben: