SQL-Injection - Funktionsweise + wie sichern?

05.02.2004, 16:05
...neu hier

Beiträge: 1
#1 Hallo,

wer kann mir etwas über die Funktionsweise und das Gefahrenpotential von SQL Injection sagen. Der nachfolgende Abschnitt ist aus unserer lokalen Tageszeitung und scheint mir _sehr_ pauschal gehalten.


"Eine der neuesten Gemeinheiten der Computercracker sei die so genannte SQL-Injection. Damit kann der Eindringling jegliche Kennwortabfrage einfach umgehen und hat freien Zutritt zum System. "Das klappt bei den meisten Programmen, die keine entsprechende Sicherheitslösung haben ".
Da hilft auch das komplizierteste Passwort aus Sonderzeichen und Zahlensalat nichts."

Danke im Voraus

bye
Mike
Seitenanfang Seitenende
05.02.2004, 16:10
Member

Beiträge: 3306
#2 http://www.sitepoint.com/article/794
http://www.sitepoint.com/article/sql-injection-attacks-safe

Kannst dir das ja mal durchlesen ansonsten Googeln.
__________
Bitte keine Anfragen per PM, diese werden nicht beantwortet.
Seitenanfang Seitenende
05.02.2004, 17:59
Member

Beiträge: 201
#3 Einen weiteren sehr schönen Bericht zum runterladen findest du im folgendem Link. Ist persönlich mit das beste Dokument was ich kenne. Und es ist wirklich erstaunlich bei wie vielen Anwendungen/Abfragen das funktioniert. Das ganze beschränkt sich ja nicht nur auf Internetformulare sondern auf alle Anwedungen die etwas aus einer datenbank holen ;)

Quelle: http://www.nextgenss.com/papers/advanced_sql_injection.pdf
bzw. Anhang Kopie

Wenn du das ganze gerne auch mal legal ausprobieren möchtest kann ich dir als schönes Wargame das SecurityGame #1 von NGSec empfehlen. Da muß man diese Technik in einem Level anwenden um weiterzukommen:

http://quiz.ngsec.biz:8080/

Dieser Beitrag wurde am 05.02.2004 um 17:59 Uhr von MacDefender editiert.
Seitenanfang Seitenende
05.02.2004, 20:16
Administrator
Avatar Lukas

Beiträge: 1743
#4 MySQL Injection ist leider ein wirklich aktuelles Thema.

Sehr viele (auch grosse Webseiten wie gerade gesehen :D z.B. hamburg.de ) haben solche Probleme, das man Formulardaten die man mit dem Browser sendet manipulieren kann und somit falsche Daten in eine Datenbank einspielen kann.

Webseiten mit Formularen die gegen sowas nicht abgesichert sind tragen ein wirklich gigantisches Sicherheitsrisiko mit sich!

das absichern dabei ist falls man es nicht übersieht garnicht so schwer und meistens nur eine kleine Abfrage.

auch interessant dazu:
http://www.boardunity.de/showthread.php?t=1710
__________
Gruß Lukas :yo
Seitenanfang Seitenende
05.02.2004, 21:28
Member

Beiträge: 201
#5 Ja, die Gefahr dabei ist wirklich gigantisch. Man kann ja nicht nur datenb maipulieren oder unrechtmäßig Zugang erlangen sondern wie beim Advanced SQL-Injecting beschrieben einfach alles mit derDatenbank machen incl. einem "schlichen" drop table xy usw. Eine Firma kann so in Sekunden ihren kompletten Onlineshop verlieren und muß erst wieder Backups aufspielen wenn sie denn welche besitzt. Das kann aber mehrere Stunden dauern und somit das Geschäft ruinieren wenn die Kunden den laden nicht erreichen. Oder man könnte in der Datenbank die gesicherten Adressdaten der Benutzer alle manipulieren und und und...

Und wie schon geschrieben kann man sich mit wenigen Zeilen mehr Code dagegen schützen. Aber wie bei fast allen Sachen sind die Betreiber wohl schon immer froh das ihre fertig gekauften pakete überhaupt laufen. Bloß nicht lernen was man da gerade gemacht hat und was überhaupt geht. Dabei gibt es so schöne Sicherheitsseiten die Zusammenfassungen über die größten Probleme besitzen ;)
Seitenanfang Seitenende
09.04.2004, 21:23
stormy
zu Gast
#6 jaja, nette sache das.

dabei kann man z.b. mit ner einfachen funktion wie z.b.

function secure_input($input_string)
{
return addslashes($input_string);
}

alles so schnell schön sicher machen.
Seitenanfang Seitenende
09.04.2004, 22:08
Member

Beiträge: 201
#7 Tja, wenn das wirklich so einfach wäre.
Genau das ist ja der Punkt wo Advanced SQL Injection mit ins Spiel kommt. Da kann man dann auch schnell solche einfachen Schutzmechanismen mit aushebeln ;)

Zitat

Advanced SQL Injection: It is often the case that a web application will 'escape' the single quote character (and others), and otherwise 'massage' the data that is submitted by the user, such as by limiting its length. In this section, we discuss some techniques that help attackers bypass some of the more obvious defences against SQL injection, and evade logging to a certain extent....
Dieser Beitrag wurde am 09.04.2004 um 22:11 Uhr von MacDefender editiert.
Seitenanfang Seitenende
28.04.2004, 19:06
Administrator
Avatar Lukas

Beiträge: 1743
#8 weitere gute Links zum Thema:

Wikipedia SQL Injections Erklärung
de.comp.lang.php.* FAQ (PHP)
http://www.securityfocus.com/infocus/1709 -> Security Focus
http://www.heise.de/security/artikel/43175 -> Heise Security
http://www.nukecops.com/postt14289.html -> NukeCops (PHP)
http://www.aspheute.com/artikel/20011030.htm -> ASP Heute Teil 1 (ASP)
http://www.aspheute.com/artikel/20011031.htm -> ASP Heute Teil 2 (ASP)

wichtig ist es halt an folgendes beim PHP coden bzw. verwenden von MySQL Datenbanken zu denken:
mysql_real_escape_string + mysql_escape_string + addslashes
__________
Gruß Lukas :yo
Seitenanfang Seitenende
10.02.2006, 14:07
Member
Avatar Laserpointa

Beiträge: 2176
#9 MySQL Injection funktioniert meistens über Variablen in einer URL:

für http://website.de/list.php?user=all
setzt man für all z.B. einen der folgenden Ausdrücke ein um Informationen in die Datenbank einzuspeisen oder auszulesen!
Falls die Variable $user nicht gut überprüft wird kann man dieses natürlich ausnutzen:

ein paar Beispiele:

Zitat

Guess Table Name
x' AND 1=(SELECT COUNT(*) FROM tablename); --

Guess Field Name
x' AND fieldName IS NULL; --

Select All
anything' OR 'x'='x

Insert
x'; INSERT INTO tablename ('field1','field2') VALUES ('1','2');--

Like Values
x' OR full_name LIKE '%Bob%

Guess specific values
bob@example.com' AND passwd = 'hello123

union
' union select * from table

drop table
x'; DROP TABLE members; --

update
x'; UPDATE tablename SET field1 = 'value' WHERE field1 = 'oldvalue'

integer field select all
23 OR 1=1
ein Tool/Firefox Erweiterung womit man das auf Websites gut testen kann ist:

Zitat

Tamperdata is an extension to track and modify http/https requests.
What I use it for

* security testing of Web based applications
* tracking request/responses
* It's just cool.


http://tamperdata.mozdev.org/
angehängt habe ich ebenfalls noch ein interessantes Dokument ;)

Greetz Lp

Seitenanfang Seitenende
18.08.2007, 15:48
Member
Avatar Laserpointa

Beiträge: 2176
#10 ein Forum von dem nicht unbekannten RSnake:
http://sla.ckers.org/forum/list.php?16

beschäftigt sich genau mit diesem Thema: SQL Code Injection und gibt sowohl Anleitung als auch Hilfestellung um die Sicherheit der eigenen Website zu testen.

nicht zu vergessen das SQL Injection Cheet Sheet von eben diesem:
http://ha.ckers.org/sqlinjection/

Greetz Lp
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: