2012-04-13 15 views
3

Ich habe mehrere alte Seiten, die gerade von meinem Hosting-Unternehmen offline genommen wurden, offenbar aufgrund eines SQL-Injection-Angriffs. Ich schaute in meine Datenbank und ja, ich wurde gehackt. * oops *asp.net - Wie bereinigen Sie nach einem SQL Injection Attack?

Meine Datenbank wurde mit Script-Tags gefüllt, die an meine Originaldaten angehängt wurden (zumindest meine Originaldaten sind noch da, also war das nett von ihnen).

Ich habe nach meinem alten Code gesucht und ein paar unanitisierte Eingabeplätze gesehen, also werde ich das natürlich gründlich durchgehen und nach mehr suchen. Ich habe auch die gehackte Seite heruntergeladen, um sie mit der Version zu vergleichen, die ich vor Jahren hochgeladen habe (mit einer Art von Dateiprüferprogramm), dies sollte mir erlauben, zu sehen, ob sie versucht haben, eine Hintertür hinzuzufügen.

Meine Fragen sind ...

1) Gibt es eine Möglichkeit ich die beigefügten alle Scrip Streifen aus können Tags aus meiner Datenbank, wie sie sind alle genau das gleiche?

2) Gibt es noch etwas, was ich beachten oder übersehen haben sollte?

Ich möchte nur darauf hinweisen, dass auf diesen alten Websites kein sensibles Material gespeichert ist, also ist es keine große Sache, ich möchte sie einfach wieder hoch und wieder laufen lassen.

Ich bin auf meinem Sicherheitswissen beschäftigt und werde in Kürze alle Dateien auf dem Host löschen, alle Passwörter ändern und die verbesserte (und weniger hackerfreundliche) Seite hochladen.

Dank ...

+1

Ha ha, Pech überspringen. Können Sie uns eine Vorstellung davon geben, wie die angegriffenen Daten aussehen? –

+1

@JamesWiseman - Haha, danke für die Sympathie, leider weiß ich nur, dass es in meiner Datenbank jetzt viele "" – Luckyl337

+0

@AshwiniVerma gibt Das ist in der Nähe und ein Start, aber nicht ganz das, was ich suche – Luckyl337

Antwort

2

Wenn ich speziell auf das Problem mit dem Ersetzen von Skript-Tags antworte, kann ich nichts anderes als eine manuelle Aufgabe sehen.

Ich bin sicher, dass Sie dies in Betracht gezogen haben, aber eine einfache Erklärung auf einem Feld ersetzen sollte dieses Zeug raus:

update MyTable 
set field = replace(field, 'unwanted', '') 
where field like '%unwanted%' 

Wenn es viele Tabellen und Felder sind, dann bin ich sicher, dass Sie könnte eine Art von Automatisierung mit dem SQl Data Dictionary verbinden. Etwas wie folgt aus:

DECLARE @ColName varchar(255), @TableName varchar(255), @sSQL varchar(1000) 
DECLARE colcur CURSOR for 
SELECT name, object_name(id) 
    FROM syscolumns 
    WHERE name = 'Moniker' 

    OPEN ColCur 
FETCH NEXT FROM ColCur 
    INTO @ColName, @TableName 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    Set @sSQL = 'update ' + @TableName + ' set ' + @ColName + ' = replace(' + @ColName + ', ''unwanted'', '''') where ' + @ColName + ' like ''%unwanted%''' 

    exec(@sSQL) 

    select @ColName, @TableName 
    FETCH NEXT FROM ColCur 
    INTO @ColName, @TableName 
END 

CLOSE ColCur 
DEALLOCATE ColCur 
+0

Ja das ist ein viel bessere Idee! Nur ein einfacher Ersatz sollte Wunder wirken. Ich hätte daran denken sollen, aber deshalb stellen wir Fragen. Es gibt ein paar Tabellen und Spalten, aber ich halte es einfach und mache ein wenig Arbeit. Vielen Dank! – Luckyl337

0

erster Protect From SQL Injection

dann, die Daten aus einer aktuellen Sicherung wiederherstellen.

+0

Danke, das ist ein guter Anfang, aber es ist ein wenig veraltet und Microsoft nicht mehr pflegen diese Seite:/Ich würde lieber die Datenbank herunterladen und verwenden Sie eine Art von Programm, nur alle schlechten Daten ausziehen und das wiederherstellen, wenn möglich – Luckyl337

1

Dies ist eine ideale Zeit, um Ihre Sicherung zu verwenden, wenn Sie eine haben, weil Sie nicht genau wissen, wie Sie Ihre Daten beschädigt wurde. Wenn Sie kein Backup haben, sollte dies eine Lektion sein, Backups in der Zukunft zu verwenden und sich vor solchen Angriffen zu schützen. Wenn Sie keine Sicherungskopie haben, sollten Sie einen Algorithmus erstellen, der Ihre Daten aufräumt. Dies garantiert jedoch nicht, dass kein Junk übrig bleibt.

+0

Das ist wahr, aber diese Seiten brauchen nur die Skripte herauszunehmen, wenn sie mit meinen anderen Daten in irgendeiner Weise durcheinander gebracht haben, es ist keine große Sache. Und yeah ja Backups, die ich kenne :) – Luckyl337

2

Ich denke, diese einige Schritte im Idealfall wäre:

offline
  1. Halten Sie Ihre Website. Vielleicht möchten Sie statt einer 404 eine Meldung "Bis zur technischen Wartung" anzeigen.
  2. Erstellen Sie eine Sicherungskopie der gehackten Datenbank, möglicherweise möchten Sie sie später analysieren
  3. Stellen Sie sicher, dass Sie Codeteile für SQL-Injektionen anfällig reparieren. Ich würde empfehlen, dies in einem Team zu tun, um gründlicher zu sein.
  4. Wiederherstellen der Datenbank aus einer Sicherung
  5. Laden Sie das (hoffentlich) fixiert Homepage
  6. kontaktieren Sie bitte Ihr Anwalt, weil Sie wahrscheinlich durchgesickert Kundendaten haben.
  7. Mit Ihrem Anwalt würden Sie die nächsten rechtlichen Schritte besprechen.

Wie Sie erwähnt, wurde kein empfindliches Material auf der gehackten Seite gespeichert, das wahrscheinlich bedeutet, dass Sie die Schritte 6 und 7.

+0

Schöne Schritte, danke! – Luckyl337