pragmaMx Support Forum

pragmaMx => Allgemeines => Thema gestartet von: Energy-drink am 05 August 2005, 09:12:53

Titel: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: Energy-drink am 05 August 2005, 09:12:53
Was genau bringt mir Sql-Injection Gefahr verringern?

Klar SQL = Datenbank aber über welche Gefahr wird hier gesprochen
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: der_luecke am 05 August 2005, 10:06:05
Ich merke wir müssen die Einstellungen genauer unter die Lupe nehmen, danke für diese Hinweise und deinen Mut ;)

Hier eine erste URL:http://www.aspheute.com/artikel/20011030.htm

Eine erste Schlussfolgerung:
Das Einfügen von beliebigen SQL Strings in Formulare, die dann am Server ausgeführt werden. Und warum passiert das? Weil die Formulare dem Input der Benutzer vertrauen, und ihn nicht entsprechend validieren. Generell sollte Michael Howard's Regel gelten: All input is evil, until proven otherwise!. Somit ist die Gegenmaßnahme klar: validieren, validieren, validieren.
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: Energy-drink am 05 August 2005, 11:24:34
Naja da ich noch nicht all zu lange dabei bin habe ich mich einfach mal in meine Anfangszeit versetzt und mich gefragt was für fragen sind bei mir aufgetaucht für mich selber als ich das vkpMx durchgegangen bin. daher wohl die für euch sehr simplen fragen aber wohl für viele anfänger einfach nur eine einbahnstrasse  :-[
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: Andi am 05 August 2005, 20:09:09
Hi :)

Noch etwas zu den Internas der Funktion:

Die Validierung der dem Script übergebenen Parameter geschieht im pragmaMx fünfstufig:
Der Punkt "Sql-Injection Gefahr verringern", oder auch mx-detection genannt, betrifft jetzt die Stufen 2 und 5. Wenn diese Option eingeschaltet ist, dann erst, kommt die Stufe 5 richtig zum tragen. Es werden dann die dem Script übergebenen Parameter, wenn sie verdächtige Zeichenfolgen enthalten, so wie sie ankommen, nochmals mit den Daten verglichen, so wie sie an die Datenbank gesendet werden. Besteht hier eine Übereinstimmung, d.h. ein verdächtiger String befindet sich sowohl in den Übergabeparametern als auch in der Datenbankanfrage, so schlägt das System Alarm.
Es werden in der Grundeinstellung sämtliche Übergabeparameter, die komplette Datenbankanfrage, versch. Browser- sowie Userdaten, IP-Adressen usw. mitgeloggt und an den Administrator per mail gesendet.
Natürlich wird auch verhindert, dass die entsprechenden Daten an die Datenbank gesendet werden.
Je nach schwere des potentiellen Angriffs wird die zugehörige IP-Adresse im System gesperrt.

So, der ganze Aufwand verbraucht natürlich einiges an wertvollen Systemrsourcen und Rechnerzeit. Da, wie in Punk 4 zu sehen ist, das pragmaMx und dessen Module bereits keine Probleme mit sql_injections haben, wird diese Option eigentlich fast ausschliesslich für Fremdmodule, Themes oder Blöcke benötigt und kann eigentlich bei einer pragmaMx "ReinInstallation" abgeschaltet bleiben.
Allerdings ist es ganz interessant anhand der Log-Mails zu sehen, wie sich die Nuke-Scriptkiddies an dem System die Zähne ausbeissen ;)

Nachfolgend ein Log-Mail, wo ein Kiddie versucht hat die Adminpasswörter über das Private_Messagemodul von nuke 6.5 auszulesen...
05-08-2005 18:01:13 [Union] Hack detected (0)

user: Anonymous
admin: Anonymous

request:
_GET[name] = Private_Messages 
_GET[file] = index 
_GET[folder] = savebox 
_GET[mode] = read 
_GET[p] = 99 
_GET[pm_sql_user] = AND pm.privmsgs_type=-99 UNl0N SELECT aid,null,pwd,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null FROM nuke_authors WHERE radminsuper=1 LIMIT 1/* 
_GET[pm_sql_user (encoded)] = Ğş¦jkŠù¬,Ër¥

Serverinfo:
REMOTE_ADDR:          81.215.203.178
QUERY_STRING:         name=Private_Messages&file=index&folder=savebox&mode=read&p=99&pm_sql_user=AND%20pm.privmsgs_type=-99%20UNION%20SELECT%20aid,null,pwd,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null%20FROM%20nuke_authors%20WHERE%20radminsuper=1%20LIMIT%201/*
REQUEST_URI:          /cool//modules.php?name=Private_Messages&file=index&folder=savebox&mode=read&p=99&pm_sql_user=AND%20pm.privmsgs_type=-99%20UNl0N%20SELECT%20aid,null,pwd,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null%20FROM%20nuke_authors%20WHERE%20radminsuper=1%20LIMIT%201/*
REMOTE_PORT:          50725
REMOTE_HOST:         
HTTP_REFERER:         http://xxxx.host.sk/phpnuke.php?target=http%3A%2F%2Fwww.xxxxx.com%2Fcool%2F&admin=karakutu&sifre=dreamcast&Submit=Sitedeki+a%E7iklara+bak
HTTP_USER_AGENT:      Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
HTTP_X_FORWARDED_FOR:



Apropo Adminpasswörter:
Durch die Sessionautentifizierung im pragmaMx kann man mit den MD5 verschlüsselten Passwörtern der USer oder Admins so gut wie nichts anfangen. Die einzige Möglichkeit ist per "brute-force" den md5 Haschwert zu knacken. Nicht unmöglich, aber seeeehr unwahrscheinlich, weil ein "brute-force Login" im pragmaMx auch blockiert wird.
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: Catlak am 07 August 2005, 00:06:56
Hey Andi,
danke dir für die Erklärung.
Jetzt kann ich wieder in ruhe atmen  :)
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: schnikemike am 11 Dezember 2005, 18:00:24
Kannst du mal kurz erklären was da in den logs vor sich geht. Ist mir irgendwie nicht so klar.
lG
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: Andi am 11 Dezember 2005, 23:58:06
Zitatin den logs vor sich geht

Moin ;)

da geht nichts drin vor, da werden einfach nur die Daten, die per mail kommen nochmal in einer Textdatei zusammengefasst.
Titel: Re: Was genau bringt mir Sql-Injection Gefahr verringern?
Beitrag von: schnikemike am 12 Dezember 2005, 01:53:16
häHä!

Ich meinte natürlich der ablauf z.B: anfrage xy - gesendet , dann funktion ab ausgeführt etc. .Keine Ahnung wie ich anders eklären  soll.  Aber ist auch nicht wichtig hätte es nur gerne verstanden.


ICH GEB JETZT MAL WIEDER RUHE,  FRAG HIER EH SCHON IMMER LÖCHER IN BAUCH:

lg :-X