Zurück   klamm-Forum > klamm.de > Abuse & Kontakt zum Team

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02.09.2008, 08:12:52   #46 (permalink)
abgemeldet

Reg: 01.05.2006
Beiträge: 33.004
Standard

Zitat:
Zitat von zdabob Beitrag anzeigen
Nö aber bisschen Plan solllte man haben. Siehst ja was sonst passiert.:P
Er hat aber jemandem im Team der Coden kann ... DAS ist der Unterschied. Admins sitzen nicht nur im Quellcode, sie kümmern sich auch am Support, Werbung, Rallyes oder bezahlen einfach nur den Server. Allerdings ist jede Seite aufgeschmissen, wenn der (alleinige) Admin nicht mal eben ein paar Darstellungssachen ändern kann, dann ist er nämlich zu jederzeit abhängig von anderen und wenn dann mal Bugs auftreten ...
 
Benutzer-2472 ist offline   Mit Zitat antworten
Alt 02.09.2008, 13:42:00   #47 (permalink)
Moderator

Reg: 20.04.2006
Beiträge: 5.061
Standard

Zitat:
Zitat von kangoo23 Beitrag anzeigen
Will zwar nicht alzuviel OFF-Topic machen
aber hat sich einer schonmal über folgenden Code gedanken gemacht?
Sorry, aber das wäre völliger Blödsinn.

Was du da zeigst, ist im Prinzip eine magic_quotes-Implementation auf Basis der MySQL-Funktionen. Da kannst du genau so gut Magic Quotes nehmen, kommt im Wesentlichen aufs gleiche raus.
Dazu kommt noch, dass du vorher nicht mal abfragst, ob Magic Quotes vielleicht schon aktiviert ist - also fröhliches Doppelmaskieren.

Man stelle sich einen UPDATE-Query vor, der unmaskiert "input" in einen Query wie diesen übernimmt:
Zitat:
UPDATE table SET newsletter = [input] WHERE [...]
Nun kommt der böse Rabe und setzt input auf "1, lose = 10000000000" - schwupps, erledigt.

Da helfen dir deine Slashes, ganz genau: gar nichts. Um genau zu sein tun die im Prinzip nichts anderes als magic_quotes auch: Ein Mindestmaß an Sicherheit für die Skripte von solchen "Programmierern", wie man sie hier en masse findet, bereitzustellen ...
 
raven ist offline   Mit Zitat antworten
Alt 02.09.2008, 14:57:53   #48 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

Zitat:
Zitat von raven Beitrag anzeigen
Dazu kommt noch, dass du vorher nicht mal abfragst, ob Magic Quotes vielleicht schon aktiviert ist - also fröhliches Doppelmaskieren.
doppelt gemoppelt hält besser
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 02.09.2008, 17:14:32   #49 (permalink)
Nerds2²ever
Benutzerbild von No5251

ID: 8850
Lose-Remote

No5251 eine Nachricht über ICQ schicken
Reg: 02.06.2006
Beiträge: 1.559
Standard

Zitat:
Zitat von ice-breaker Beitrag anzeigen
doppelt gemoppelt hält besser
... vorallem mySQL davon ab ein Ergebnis zu liefern.
greetz
</no5251>


No5251 ist offline   Mit Zitat antworten
Alt 04.09.2008, 07:35:43   #50 (permalink)
Erfahrener Benutzer
Benutzerbild von NeoGriever

ID: 348575
Lose-Remote

Reg: 24.06.2008
Beiträge: 1.050
Standard

Also mal in php-code gefasst:

Nehmen wir an, $wert wäre ein modifizierter Inhalt:

PHP-Code:
1:
$wert '1, `lose` = 25000000000'
Und der würde so ausgeführt werden ...

PHP-Code:
1:
mysql_query('UPDATE `table` SET `newsletter` = ' $wert ' WHERE `id` = 1'); 
Dadurch würde der angreifer-code auch ausgeführt werden.

Nun könnte man das natürlich entschärfen:

PHP-Code:
1:
2:
3:
4:
5:
if(@mysql_query('UPDATE `table` SET `newsletter` = \'' . (int)$wert '\' WHERE `id` = 1')) {
    echo 
"Aktion erfolgreich";
}else{
    echo 
"Ungültiger Wert";
}; 
Durch die \' wird der Wert als String gefasst. Also wird innerhalb dieser klammern kein extra-zeugs ausgeführt. Es sei denn, der user setzt ein \' in seinen string. Jedoch wird dies von der 2ten Funktion (bei zahlenwerten) abgefangen: (int) erzwingt einen Zahlenwert. Andernfalls kommt dir nen Fehler vor die nase, der durch das @ jedoch abgefangen wird.

*meinen senf dazu geb* :P
 
NeoGriever ist offline   Mit Zitat antworten
Alt 04.09.2008, 09:06:46   #51 (permalink)

ID: 24865
Lose-Remote

Reg: 23.12.2006
Beiträge: 333
Standard

Zitat:
Zitat von NeoGriever Beitrag anzeigen
*meinen senf dazu geb* :P
Ich halte es nicht vor sinvoll, SQL die Gültigkeitsprüfung der eingebenen Werte durchzuführen.
Zumal ich persönlich Deine Lösung eher ungünstig finde ....
Was liefert (int) wenn der Wert nicht gültig ist?
Und was macht Dein Code dann?
Wieso willst Du einen String in ein Integer Datenfeld einfügen?
Wie willst Du prüfen, ob da ein böser Hacker am Werk war?

Der Ansatz von Mone, ist doch der Richtige.
$_GET bzw deren Inhalt hat nichts im Code zu suchen, nur an einer Stelle und zwar da, wo er auf auf seine Gültigkeit geprüft und schon entsprechend vorbehandelt wird.
 
paulrene ist offline   Mit Zitat antworten
Alt 05.09.2008, 01:09:36   #52 (permalink)
Erfahrener Benutzer
Benutzerbild von NeoGriever

ID: 348575
Lose-Remote

Reg: 24.06.2008
Beiträge: 1.050
Standard

Zitat:
Zitat von paulrene Beitrag anzeigen
Was liefert (int) wenn der Wert nicht gültig ist?
(int) erzwingt einen Integer-Wert. Sollte dieser nicht umgewandelt werden können, wird ein PHP-Fehler erzeugt.

Zitat:
Zitat von paulrene Beitrag anzeigen
Und was macht Dein Code dann?
mit einem @ vor dem (int) kann man den fehler abfangen, wodurch ein ungültiger MySql-Code übergeben werden würde (alles danach wird nicht mehr angefügt). und dann kann man den MySql-Fehler abfangen lassen.

Zitat:
Zitat von paulrene Beitrag anzeigen
Wieso willst Du einen String in ein Integer Datenfeld einfügen?
Es sollte auch recht sinnvoll sein, diese abfrage nur da einzubauen, wo auch zahlenwerte rein sollen.

Zitat:
Zitat von paulrene Beitrag anzeigen
Wie willst Du prüfen, ob da ein böser Hacker am Werk war?
ich habe dieses system erfolgreich bei einem login-script verwendet. es hat selbst geplante, gezielte angriffe darauf überstanden.

MFG
Griever
 
NeoGriever ist offline   Mit Zitat antworten
Alt 05.09.2008, 16:19:01   #53 (permalink)
Erfahrener Benutzer

ID: 118459
Lose-Remote

Reg: 20.04.2006
Beiträge: 4.530
Standard

Zitat:
Zitat von NeoGriever Beitrag anzeigen
(int) erzwingt einen Integer-Wert. Sollte dieser nicht umgewandelt werden können, wird ein PHP-Fehler erzeugt.
Quatsch, dann kommt ne 0.

Zitat:
Zitat von NeoGriever Beitrag anzeigen
mit einem @ vor dem (int) kann man den fehler abfangen, wodurch ein ungültiger MySql-Code übergeben werden würde (alles danach wird nicht mehr angefügt). und dann kann man den MySql-Fehler abfangen lassen.
Wo ist da ein @ vor dem (int), das steht vor mysql_query. Und bei deiner Query wird immer "Aktion ausgeführt" angezeigt, weil die Query niemals fehlerhaft sein wird. mysql_query liefert nur false zurück, wenn ein MySQL Fehler auftritt! Und das ist bei dir ganz sicher nicht der Fall, weil MySQL so gutmütig ist und deine Stringinteger automatisch umwandelt statt nen Fehler zu geben.

Zitat:
Zitat von NeoGriever Beitrag anzeigen
Es sollte auch recht sinnvoll sein, diese abfrage nur da einzubauen, wo auch zahlenwerte rein sollen.
Omg nein, dieser (sinnlose) Code sollte nirgends verwendet werden.
Und dadurch dass du den Wert in einen Integer umwandelst, kann da trotzdem noch nen Wert wie z.B. 3 rein, und ich denke sowas ist nicht gewollt oder? Du musst die Usereingaben prüfen an solchen Stellen! (wenn es klar ist, dass da ein Integer erscheinen sollte (in einer Bedingung/Where) dann schreib ich auch mal nur die Umwandlung hin, denn wenn was anderes kommt is die ID 0 und es wird nichts gefunden, reicht aus, aber in was anderem als in ner Bedingung sollte man niemals einfach nur umwandeln!)

Zitat:
Zitat von NeoGriever Beitrag anzeigen
ich habe dieses system erfolgreich bei einem login-script verwendet. es hat selbst geplante, gezielte angriffe darauf überstanden.
Toll, die Lücken stopfst du aber nicht vernünftig.
flaschenkind ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hackerangriff auf mailread.de chocoman Paid4 - News & Infos 97 24.03.2008 00:27:23
Hackerangriff auf Losedepot.de Kriegstreiber Lose-Talk 8 28.02.2007 20:14:39
Hackerangriff auf edv-klinik.de? T-Offline Scripts & Software 7 13.11.2006 21:41:47
Hackerangriff-> Daten weg Lolator Webhosting 3 02.10.2006 20:03:52


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13:28 Uhr.