Wie Hacker Websites mit SQL Injection und DDoS übernehmen

Sep 28, 2025
Privatsphäre und Sicherheit
UNCACHED INHALT

Selbst wenn Sie die Ereignisse der Hacker-Gruppen Anonymous und LulzSec nur lose verfolgt haben, haben Sie wahrscheinlich von gehackten Websites und Diensten wie den berüchtigten Sony-Hacks gehört. Haben Sie sich jemals gefragt, wie sie das machen?

Es gibt eine Reihe von Tools und Techniken, die diese Gruppen verwenden. Wir versuchen zwar nicht, Ihnen ein Handbuch zu geben, um dies selbst zu tun, aber es ist hilfreich zu verstehen, was los ist. Zwei der Angriffe, von denen Sie regelmäßig hören, sind "(Distributed) Denial of Service" (DDoS) und "SQL Injections" (SQLI). So funktionieren sie

Bild von xkcd

Denial-of-Service-Angriff

Was ist es?

Ein "Denial-of-Service" -Angriff (manchmal auch als "Distributed Denial of Service" oder DDoS bezeichnet) tritt auf, wenn ein System, in diesem Fall ein Webserver, so viele Anforderungen gleichzeitig empfängt, dass die Serverressourcen überlastet sind und das System einfach abstürzt und fährt herunter. Das Ziel und Ergebnis eines erfolgreichen DDoS-Angriffs ist, dass die Websites auf dem Zielserver für legitime Verkehrsanforderungen nicht verfügbar sind.

Wie funktioniert es?

Die Logistik eines DDoS-Angriffs lässt sich am besten anhand eines Beispiels erklären.

Stellen Sie sich vor, eine Million Menschen (die Angreifer) kommen zusammen, um das Geschäft von Unternehmen X zu behindern, indem sie ihr Callcenter herunterfahren. Die Angreifer koordinieren sich so, dass sie am Dienstag um 9 Uhr alle die Telefonnummer von Unternehmen X anrufen. Höchstwahrscheinlich kann das Telefonsystem von Unternehmen X nicht eine Million Anrufe gleichzeitig verarbeiten, sodass alle eingehenden Leitungen von den Angreifern gebunden werden. Das Ergebnis ist, dass legitime Kundenanrufe (d. H. Solche, die nicht die Angreifer sind) nicht durchkommen, weil das Telefonsystem die Anrufe der Angreifer bearbeitet. Im Wesentlichen verliert Unternehmen X möglicherweise sein Geschäft, da legitime Anfragen nicht durchkommen können.

Ein DDoS-Angriff auf einen Webserver funktioniert genauso. Da es praktisch keine Möglichkeit gibt, festzustellen, welcher Datenverkehr von legitimen Anforderungen im Vergleich zu Angreifern stammt, bis der Webserver die Anforderung verarbeitet, ist diese Art von Angriff in der Regel sehr effektiv.

Den Angriff ausführen

Aufgrund der „Brute Force“ -Natur eines DDoS-Angriffs müssen viele Computer gleichzeitig für einen Angriff koordiniert sein. Bei einem erneuten Besuch unseres Callcenter-Beispiels müssten alle Angreifer wissen, dass sie um 9 Uhr morgens anrufen und zu diesem Zeitpunkt tatsächlich anrufen müssen. Während dieses Prinzip sicherlich funktioniert, wenn es darum geht, einen Webserver anzugreifen, wird es erheblich einfacher, wenn Zombie-Computer anstelle von tatsächlich bemannten Computern verwendet werden.

Wie Sie wahrscheinlich wissen, gibt es viele Varianten von Malware und Trojanern, die auf Ihrem System inaktiv sind und gelegentlich „nach Hause telefonieren“, um Anweisungen zu erhalten. Eine dieser Anweisungen könnte beispielsweise darin bestehen, wiederholte Anfragen um 9 Uhr morgens an den Webserver von Unternehmen X zu senden. Mit einem einzigen Update des Heimatorts der jeweiligen Malware kann ein einzelner Angreifer sofort Hunderttausende kompromittierter Computer koordinieren, um einen massiven DDoS-Angriff auszuführen.

Das Schöne an der Verwendung von Zombie-Computern liegt nicht nur in ihrer Effektivität, sondern auch in ihrer Anonymität, da der Angreifer seinen Computer überhaupt nicht verwenden muss, um den Angriff auszuführen.

SQL Injection Attack

Was ist es?

Ein SQLI-Angriff (SQL Injection) ist ein Exploit, der schlechte Webentwicklungstechniken und in der Regel eine fehlerhafte Datenbanksicherheit nutzt. Das Ergebnis eines erfolgreichen Angriffs kann von der Identität eines Benutzerkontos bis zu einem vollständigen Kompromiss der jeweiligen Datenbank oder des jeweiligen Servers reichen. Im Gegensatz zu einem DDoS-Angriff kann ein SQLI-Angriff vollständig und leicht verhindert werden, wenn eine Webanwendung entsprechend programmiert ist.

Den Angriff ausführen

Wenn Sie sich auf einer Website anmelden und Ihren Benutzernamen und Ihr Kennwort eingeben, führt die Webanwendung zum Testen Ihrer Anmeldeinformationen möglicherweise eine Abfrage wie die folgende aus:

SELECT UserID FROM Users WHERE UserName = 'myuser' AND Password = 'mypass';

Hinweis: Zeichenfolgenwerte in einer SQL-Abfrage müssen in einfache Anführungszeichen gesetzt werden, weshalb sie um die vom Benutzer eingegebenen Werte herum angezeigt werden.

Die Kombination aus dem eingegebenen Benutzernamen (myuser) und dem Kennwort (mypass) muss daher mit einem Eintrag in der Users-Tabelle übereinstimmen, damit eine UserID zurückgegeben werden kann. Wenn keine Übereinstimmung vorliegt, wird keine Benutzer-ID zurückgegeben, sodass die Anmeldeinformationen ungültig sind. Während eine bestimmte Implementierung unterschiedlich sein kann, sind die Mechaniken ziemlich Standard.

Schauen wir uns nun eine Vorlagenauthentifizierungsabfrage an, bei der wir die Werte ersetzen können, die der Benutzer in das Webformular eingibt:

SELECT UserID FROM Users WHERE Benutzername = '[user]' UND Passwort = '[pass]'

Auf den ersten Blick scheint dies ein einfacher und logischer Schritt für die einfache Validierung von Benutzern zu sein. Wenn jedoch eine einfache Ersetzung der vom Benutzer eingegebenen Werte für diese Vorlage durchgeführt wird, ist sie anfällig für einen SQLI-Angriff.

Angenommen, "myuser" - wird in das Feld "Benutzername" und "Falschpass" in das Kennwort eingegeben. Durch einfaches Ersetzen in unserer Vorlagenabfrage erhalten wir Folgendes:

SELECT UserID FROM Users WHERE UserName = 'myuser' - 'AND Password =' ​​falsepass '

Ein Schlüssel zu dieser Aussage ist die Aufnahme der beiden Striche (--) . Dies ist das Anfangskommentar-Token für SQL-Anweisungen, sodass alle nach den beiden Bindestrichen (einschließlich) angezeigten Zeichen ignoriert werden. Im Wesentlichen wird die obige Abfrage von der Datenbank wie folgt ausgeführt:

SELECT UserID FROM Users WHERE UserName = 'myuser'

Das krasse Versäumnis hier ist das Fehlen der Passwortprüfung. Durch das Einfügen der beiden Striche in das Benutzerfeld haben wir die Bedingung für die Kennwortprüfung vollständig umgangen und konnten uns als "myuser" anmelden, ohne das entsprechende Kennwort zu kennen. Diese Manipulation der Abfrage, um unbeabsichtigte Ergebnisse zu erzielen, ist ein SQL-Injection-Angriff.

Welcher Schaden kann angerichtet werden?

Ein SQL-Injection-Angriff wird durch fahrlässige und verantwortungslose Anwendungscodierung verursacht und ist vollständig vermeidbar (was wir gleich behandeln werden). Das Ausmaß des Schadens, der angerichtet werden kann, hängt jedoch vom Datenbank-Setup ab. Damit eine Webanwendung mit der Backend-Datenbank kommunizieren kann, muss die Anwendung ein Login für die Datenbank bereitstellen (Hinweis: Dies unterscheidet sich von einem Benutzer-Login auf der Website selbst). Abhängig davon, welche Berechtigungen die Webanwendung benötigt, kann dieses jeweilige Datenbankkonto alles von Lese- / Schreibberechtigungen in vorhandenen Tabellen bis hin zum vollständigen Datenbankzugriff erfordern. Wenn dies jetzt nicht klar ist, sollten einige Beispiele zur Verdeutlichung beitragen.

Anhand des obigen Beispiels können Sie dies sehen, indem Sie beispielsweise Folgendes eingeben: "youruser '-", "admin' -" oder einem anderen Benutzernamen können wir uns sofort als dieser Benutzer auf der Website anmelden, ohne das Passwort zu kennen. Sobald wir im System sind, wissen wir nicht, dass wir nicht wirklich dieser Benutzer sind, sodass wir vollen Zugriff auf das jeweilige Konto haben. Datenbankberechtigungen bieten hierfür kein Sicherheitsnetz, da eine Website normalerweise mindestens Lese- / Schreibzugriff auf ihre jeweilige Datenbank haben muss.

Nehmen wir nun an, dass die Website die vollständige Kontrolle über ihre jeweilige Datenbank hat, wodurch Datensätze gelöscht, Tabellen hinzugefügt / entfernt, neue Sicherheitskonten hinzugefügt usw. werden können. Es ist wichtig zu beachten, dass einige Webanwendungen diese Art von Berechtigung benötigen könnten Es ist nicht automatisch eine schlechte Sache, dass die volle Kontrolle gewährt wird.

Um den Schaden zu veranschaulichen, der in dieser Situation angerichtet werden kann, verwenden wir das im obigen Comic bereitgestellte Beispiel, indem wir Folgendes in das Feld Benutzername eingeben: "Robert '; DROP TABLE-Benutzer; -". Nach einfacher Ersetzung lautet die Authentifizierungsabfrage:

SELECT UserID FROM Users WHERE UserName = 'Robert'; DROP TABLE Benutzer; - 'AND Password =' ​​Falschpass '

Hinweis: Das Semikolon in einer SQL-Abfrage kennzeichnet das Ende einer bestimmten Anweisung und den Beginn einer neuen Anweisung.

Was von der Datenbank ausgeführt wird als:

SELECT UserID FROM Users WHERE UserName = 'Robert'

DROP TABLE Benutzer

Einfach so haben wir einen SQLI-Angriff verwendet, um die gesamte Benutzertabelle zu löschen.

Natürlich kann viel schlimmeres geschehen, da der Angreifer abhängig von den zulässigen SQL-Berechtigungen Werte ändern, Tabellen (oder die gesamte Datenbank selbst) in eine Textdatei sichern, neue Anmeldekonten erstellen oder sogar die gesamte Datenbankinstallation entführen kann.

Verhindern eines SQL-Injection-Angriffs

Wie bereits mehrfach erwähnt, kann ein SQL-Injection-Angriff leicht verhindert werden. Eine der Grundregeln der Webentwicklung ist, dass Sie Benutzereingaben niemals blind vertrauen, wie wir es getan haben, als wir in unserer obigen Vorlagenabfrage eine einfache Ersetzung durchgeführt haben.

Ein SQLI-Angriff kann leicht vereitelt werden, indem Ihre Eingaben bereinigt werden (oder entkommen). Der Bereinigungsprozess ist eigentlich ziemlich trivial, da er im Wesentlichen alle Inline-Zeichen in einfachen Anführungszeichen (‘) angemessen behandelt, sodass sie nicht zum vorzeitigen Beenden einer Zeichenfolge innerhalb einer SQL-Anweisung verwendet werden können.

Wenn Sie beispielsweise "O’neil" in einer Datenbank nachschlagen möchten, können Sie keine einfache Ersetzung verwenden, da das einfache Anführungszeichen nach dem O dazu führen würde, dass die Zeichenfolge vorzeitig endet. Stattdessen bereinigen Sie es, indem Sie das Escape-Zeichen der jeweiligen Datenbank verwenden. Nehmen wir an, das Escape-Zeichen für ein einfaches Inline-Anführungszeichen steht vor jedem Anführungszeichen mit einem \ -Symbol. "O'neal" würde also als "O \ 'neil" bereinigt.

Diese einfache Hygiene verhindert so ziemlich einen SQLI-Angriff. Schauen wir uns zur Veranschaulichung unsere vorherigen Beispiele noch einmal an und sehen uns die resultierenden Abfragen an, wenn die Benutzereingaben bereinigt werden.

myuser '- / falscher Pass :

SELECT UserID FROM Users WHERE UserName = 'myuser \' - 'AND Password =' ​​falsepass '

Da das einfache Anführungszeichen nach dem Escapezeichen von myuser maskiert wird (was bedeutet, dass es als Teil des Zielwerts betrachtet wird), sucht die Datenbank buchstäblich nach dem Benutzernamen von "myuser '-". Da die Bindestriche im Zeichenfolgenwert und nicht in der SQL-Anweisung selbst enthalten sind, werden sie außerdem als Teil des Zielwerts betrachtet, anstatt als SQL-Kommentar interpretiert zu werden.

Robert'; DROP TABLE Benutzer; - / falscher Pass :

SELECT UserID FROM Users WHERE UserName = 'Robert \'; DROP TABLE Benutzer; - 'AND Password =' ​​Falschpass '

Wenn Sie einfach das einfache Anführungszeichen nach Robert maskieren, sind sowohl das Semikolon als auch die Bindestriche in der UserName-Suchzeichenfolge enthalten, sodass die Datenbank buchstäblich danach sucht "Robert '; DROP TABLE Benutzer; -" anstatt die Tabelle zu löschen, löschen.

In Summe

Während sich Webangriffe weiterentwickeln und komplexer werden oder sich auf einen anderen Einstiegspunkt konzentrieren, ist es wichtig, sich vor bewährten Angriffen zu schützen, die von mehreren frei verfügbaren „Hacker-Tools“ inspiriert wurden, die diese ausnutzen sollen.

Bestimmte Arten von Angriffen wie DDoS können nicht einfach vermieden werden, während andere wie SQLI dies können. Der Schaden, der durch diese Art von Angriffen verursacht werden kann, kann jedoch je nach den getroffenen Vorsichtsmaßnahmen von einer Unannehmlichkeit bis zu einer Katastrophe reichen.

.eintragsinhalt .Eintrittsfußzeile

DDOS Attack On Azerbedzjan Web Sites

Tutorial SQL Injection With SQLmap

How A Hacker Could Attack Web Apps With Burp Suite & SQL Injection

Web Application SECURITY In ASP.NET Core - Part 1 - SQL Injection

Hacking Websites With SQL Injection - Computerphile

Anonymous - How To Hack A Website By DDosing And SQL Injection

Hacking With SQL Injection Attacks (and Where To Practice Them Safely)

How A Hacker Could Attack Website With SQL Injection | Hacking Tutorial


Privatsphäre und Sicherheit - Die beliebtesten Artikel

Die ultimative Verteidigung: Was ist ein Computer mit Luftspalt?

Privatsphäre und Sicherheit Sep 3, 2025

a_v_d/Shutterstock.com Wenn Sie über Cybersicherheit lesen, werden Sie wahrscheinlich über Computersysteme mit Luftspalt sprechen. Es ist ein t..


Verwendung der Kindersicherung von TikTok

Privatsphäre und Sicherheit Apr 23, 2025

UNCACHED INHALT TikTok ist eine Social Media Plattform auf dem Sie kurze Videos erstellen, remixen, erweitern oder teilen können. Weil es bei Teenagern so beliebt ist..


Warum Viren auf Android kein wirkliches Problem sind

Privatsphäre und Sicherheit Jun 4, 2025

Es wird allgemein vermutet, dass Android ein "Virusproblem" hat. Aber während dort sind Viren und Malware unter Android - das ist nicht wirklich etwas, worüber Sie ..


So verwenden Sie Snapchat, ohne Ihren Standort zu teilen

Privatsphäre und Sicherheit Aug 18, 2025

UNCACHED INHALT Snapchat ist neu Die Snap Map-Funktion ist unglaublich gruselig - Sie teilen Ihren Standort bei jedem Öffnen von Snapchat mit all Ihren Freunden - ..


So finden Sie Ihr Telefon mit Tile aus dem Internet

Privatsphäre und Sicherheit Apr 7, 2025

Tile ist ein fantastisches kleines Gerät, das Ihnen helfen kann Finden Sie Ihre verlorenen Schlüssel oder Brieftasche . Es kann jedoch auch Ihr Telefon lokalisieren..


Warum ist E-Mail-Spam immer noch ein Problem?

Privatsphäre und Sicherheit Sep 22, 2025

UNCACHED INHALT Bill Gates sagte bekanntlich: "In zwei Jahren wird Spam behoben" im Jahr 2004. Es ist jetzt zehn Jahre später und laut Angaben sind mehr als 70% der E-Mails Spam ..


So zeigen Sie das vergessene WLAN-Passwort auf Ihrem Android-Gerät an

Privatsphäre und Sicherheit Mar 21, 2025

UNCACHED INHALT Waren Sie schon einmal in einer Situation, in der jemand in Ihrer Familie Ihr Telefon oder Tablet an das WLAN angeschlossen hat und Sie jetzt das Kennwort für die..


So verschlüsseln Sie Wechselmedien schnell mit Ubuntu

Privatsphäre und Sicherheit Jun 7, 2025

UNCACHED INHALT Ubuntu kann USB-Flash-Laufwerke und externe Festplatten schnell verschlüsseln. Sie werden jedes Mal zur Eingabe Ihrer Passphrase aufgefordert, wenn Sie das Laufwe..


Kategorien