php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.09.2008, 13:59  
Neuer Benutzer
 
Registriert seit: 05.09.2008
Beiträge: 2
ft16a befindet sich auf einem aufstrebenden Ast
Standard Wichtiges PHP- Sicherheitsproblem !

Hallo, PHP- Freunde !
Ich habe mich hier neu angemeldet, weil ich ein merkwürdiges Problem entdeckt habe, über das ich keine Infos finden konnte...

Ich habe auf mehreren Webspaces ein PHP- Gästebuch installiert, anstelle eines Spamanfälligen CGI- GB's. Ist ein recht einfaches GB, von einem 14- jährigen Schüler geschrieben, nur das allernötigste drin, kein Schnickschnack, dadurch sehr schnell, mit Bestätigungsabfrage wegen Spamrobots.
Die GB's laufen zuverlässig.

Seit einiger Zeit erhält ein PHP- GB Einträge ohne Absender und Name (keine Pflichtfelder).
- Die Einträge sind kurz, kryptische Wörter und offensichtliche Befehle, durch Sonderzeichen getrennt.
- Die IP ist jedesmal eine andere.

Diese Einträge bewirken merkwürdige Eigenschaften:
- Wechsel der Schriftfarbe beim Mouseover rot/ schwarz
- Einloggen zur Administration geht nicht mehr ("Webseite nicht gefunden")
(das sind erst mal die, die ich festgestellt habe).

Später stellte ich zufällig fest, daß auf dem noch existierenden, aber nicht mehr verlinkten CGI- GB auf derselben Domain ähnliche Einträge eingingen. Diesmal sogar mit Name, HP, usw., nur sind die Eintragstexte wesentlich länger, ebenfalls kryptische Wörter und Befehlswörter, sowie Sonderzeichenkombinationen.

Offensichtlich kürzt das PHP- GB den Eintrag ab bestimmten Sonderzeichen- Kombinationen ab.

In den Texten im CGI- Spam stehen nun auch Links zu Seiten mit kryptischen Domainnamen, auf dieser stehen dann etliche Links zu bekannten Antivirus- und anderen Programmen, die führen zu Seiten mit weiteren kryptischen Domainnamen, und beim Anklicken öffnen sich javascript- gesteuert, zahlreiche Tabs oder Fenster- und diese wollen dann auch gleich eine Videocodec- exe herunterladen, die schon von Porno- Seiten bekannt ist.

Sieht so aus, als ob Kriminelle da ein aufwendiges Netzwerk geschaffen haben.
Das müssen unzählige Domains mit diesen kryptischen Domainnamen sein, meist co.cc- Domains. Hierzulande kostenpflichtig, wenn überall, muß das irre teuer sein... !?

Mich interessiert speziell der Sicherheitsaspekt, da die Einträge, zumindest im PHP- GB, Effekte erzeugen, bei denen ich ziemlich erstaunt dastehe, ich habe überhaupt nichts über die Möglichkeit gefunden, mit Eintrag irgendwelcher Zeichenkombinationen in Textfeldern genannte Effekte zu erreichen.

Wer weiß da mehr drüber ?
Wie kann man ein PHP- GB gegen diese, offensichtlich undokumentierten Funktionen schützen ?

Bitte um Verständnis, daß ich die Einträge nicht öffentlich poste, damit nicht Spinner versuchen, überall Schaden anzurichten.

ft16a
ft16a ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.09.2008, 15:32  
Neuer Benutzer
 
Benutzerbild von StarSt0rm
 
Registriert seit: 25.08.2008
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
StarSt0rm befindet sich auf einem aufstrebenden Ast
Standard

Du hast dein Problem zwar sehr ausführlich geschildert, jedoch sind meiner
Meinung nach noch einige Fragen offen geblieben. Als erstes würde ein Link
zum Script sehr helfen. Ist das ein PHP/MySQL oder PHP/TXT Gästebuch?

Generell gilt folgendes:
1. Escaping-Funktionen wie mysql_real_escape_string() nutze.
2. Fremddaten validieren
3. PHP-Funktionen strip_tags(), htmlspecialchars(), htmlentities() nutzen
4. nur sichere Inhalte erlauben
StarSt0rm ist offline   Mit Zitat antworten
Alt 05.09.2008, 15:35  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das sind wahrscheinlich Einträge von Spam-Bots.
Schützen kann man sich dagegen mit vielen Methoden.
Zum Beispiel mit einem unsichtbaren <input> Feld, dass nur von Bots aber nicht von normalen Menschen ausgefüllt wird.
Oder einem Captcha, oder .... mehr im Netz!

Ich hoffe der Input deines GBs wird gefiltert, sonnst ist das ein ernsthaftes Sicherheitsleck.

Du postest hier übrigens im Fortgeschrittenen Forum, ohne die Boardregeln zu beachten.

Ohne Code können wir dir überhaupt nicht helfen...

///Zu.langsam///
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 05.09.2008, 15:42  
Neuer Benutzer
 
Benutzerbild von StarSt0rm
 
Registriert seit: 25.08.2008
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
StarSt0rm befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpdummi Beitrag anzeigen
[...]
Zum Beispiel mit einem unsichtbaren <input> Feld, dass nur von Bots aber nicht von normalen Menschen ausgefüllt wird.
[...]
Hier misch ich mich mal eben kurz ein: Hier ist auch super schön beschreiben
wie du das alles machst. Also auch recht anfängerfreundlich.
OpenWebBoard / Tutorials / HTML & CSS / Barrierefreie CAPTCHAs
StarSt0rm ist offline   Mit Zitat antworten
Alt 05.09.2008, 16:34  
Neuer Benutzer
 
Registriert seit: 05.09.2008
Beiträge: 2
ft16a befindet sich auf einem aufstrebenden Ast
Standard

Entschuldigung, wenn ich im falschen Forum gepostet habe...

Ich denke, ist ein Problem der Filterung, ja.

Das GB sollte so einfach wie möglich sein- ohne Registrierungen oder zeitaufwendige Verifizierungen, Riesensammlungen von Smilies, Zappelbildchen, Glüheffekten und sonstwas, ohne Eintragsorgien mit x Eingabefeldern, davon die Hälfte Pflichtfelder... da macht ein GB- Eintrag ja richtig Arbeit... wenn ich selbst solche Seiten besuche, verkneif' ich mir eben den Eintrag, bevor ich da eine Viertelstunde für ein Login in ein Forum oder 3 nette Grußworte in ein GB vergeige.

Deshalb habe ich dieses recht einfache GB genommen... im Gegensatz zu anderen, die ich getestet habe, läuft es schon lange Zeit recht gut, vor allem eben einfach und flink.
Ist übrigens txt- basiert, speichert eben alle Einstellungen und Einträge in normalen Text- Dateien, die .htaccess- gesichert sind.
Hat bis jetzt wegen der doppelten Eingabe- Abfrage keinen Spam angenommen.
Daß Bots die Einträge gemacht haben, ist möglich, aber genauso können es Trolle sein, ich hatte vor Wochen solche in einem anderem GB, konnte die Quelle auch ermitteln (Computerlehrraum einer Schule), vermutete deshalb, daß die Enträge tatsächlich von Hand gemacht wurden, später entdeckte ich solche Einträge in dem alten CGI- GB, ich bin mir also nicht sicher.

Übrigens... Captchas hasse ich wie die Pest... in so vielen Foren und GB's erschweren diese Dinger den Zugang, in Anfällen von Paranoia und Wartungsfaulheit der GB- Admins werden da Bilder generiert, die sowas von mies zu erkennen sind, ich kann mit Brille sehr gut sehen, aber das Kneisten auf diese Bilder strengt meine Augen einfach zu sehr an... und selbst eigentlich erkennbare Zeichen werden oft nicht anerkannt.
Für die bessere Lösung halte ich textmäßige Fragen, wo dann die richtige Antwort den Eintrag auslöst.
Jedenfalls setze ich auf Seiten, die ich erstelle, nicht ein, was ich bei anderen Sites nicht gut finde.

Ich werd' mir den Code des GB- Inputs mal ansehen. Danke erst mal für die Tips- ich bleib' dran.

ft16a
ft16a ist offline   Mit Zitat antworten
Alt 05.09.2008, 18:38  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von StarSt0rm Beitrag anzeigen
3. PHP-Funktionen strip_tags(), htmlspecialchars(), htmlentities() nutzen
4. nur sichere Inhalte erlauben
Die ganzen Funktionen kannst du dir mit einem einfachen preg_match() auf die Formularfelder sparen,somit stellst du sicher was drin stehen darf und alles was dem abweicht führt zu einem Abbruch!

Was meinst du mit nur sichere Inhalte erlauben? Das ist ne sehr pauschale Aussage.

Wichtig auch schauen das man dir kein XSS unterjubeln kann!

mfg der litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 05.09.2008, 19:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Die ganzen Funktionen kannst du dir mit einem einfachen preg_match() auf die Formularfelder sparen
Zumindest auf htmlspecialchars() bzw. htmlentities() trifft diese Aussage nicht zu. Diese Funktionen sind für Umlaute sinnvoll, und auch eine spitze Klammer muß nicht zwingend unerlaubter Inhalt sein.

Ein preg_match Blacklisting ist dagegen nicht so einfach, da Code auch bspw, durch Hex-sequenzen verschlüsselt werden kann.

Zitat:
Wichtig auch schauen das man dir kein XSS unterjubeln kann!
Was sagt die Aussage jetzt, was nicht voeher bereits gesagt wurde?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.09.2008, 08:00  
Benutzer
 
Registriert seit: 02.09.2008
Beiträge: 38
Fumpi befindet sich auf einem aufstrebenden Ast
Standard

Am Besten da: entwickler.de - Channel Security einfach mal paar Stunden verbringen. Ist seeeeehr hilfreich
Fumpi ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ENORM wichtiges UPGRADE! Promaetheus Off-Topic Diskussionen 4 29.08.2007 12:22
Dynamische Navi - (nicht so wirklich wichtiges) Problem Jojo1 PHP Tipps 2005-2 11 09.08.2005 13:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sicherheitsprobleme, kryptische abfrage in eine sql datenbank einbauern, videocod.exe, php sonderzeichen ä in google chart, ich kneiste meine augen zusammen, \google maps\ problems captcha, php bestätigungsabfrage fenster, sicherheitsfehler warum können keine gb hochgeladen werden, php wichtiges

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum