ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > IT-Security Forum > IT-Security
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


IT-Security Alles rund um IT-Security aus den Bereichen Hard- und Software

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-01-2016, 17:52
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Cool PHP - ereg - und dessen Folgen!

Da schau her:

Das verfluchte Nullbyte – Teil 1 | burncycle

ist ebenfalls wichtig zu erwähnen und so kann man alle eregs() umgehen :/

Denn wer will schon, dieses Problem haben? Also es scheint, als hätte sich zum Beispiel "Wordpress" keinerlei Gedanken darüber gemacht

Also -> immer eine Handbreit Puffer unterm Code


Gruß Robert
Mit Zitat antworten
  #2 (permalink)  
Alt 14-01-2016, 17:58
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

ich überleg mir auch mal n sec scanner zu schreiben ...
mit allen mir bekannten Schwachstellen

Mal schauen obs was wird

greetz Robert
Mit Zitat antworten
  #3 (permalink)  
Alt 14-01-2016, 18:50
mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 386
mermshaus wird schon bald berühmt werden
Standard

Jetzt finden wir bitte mal das Jahr raus, seit dem die ereg-Funktionen als deprecated markiert sind.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-01-2016, 07:59
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

Natürlich ist sie das. Aber denk mal an die 'veraltete' mysql Funktion ohne pdo :/ Wird trotzdem noch verwendet! Und okay es mag sein das ereg noch länger veraltet ist aber es wird immer noch verwendet! Und deswegen sollte man dies wissen. Gerade wenn man es mit einem älteren Script zu tun hat.

Wie gesagt wollte ich nur einen weiteren Grund liefern, warum man niemals auf ereg vertrauen sollte

Gruß Robert
__________________
Immer eine Handbreit Puffer unterm Code

Geändert von ibor (15-01-2016 um 08:15 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 15-01-2016, 09:12
mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 386
mermshaus wird schon bald berühmt werden
Standard

Übrigens: Die Issue, die der verlinkte Blogeintrag anspricht, existiert zwar, aber der Code dort zur Demonstration ist ungeeignet.

Zitat:
PHP-Code:
$var "stringpasst";
$var2 "stringpasst\0üch";

$wert ereg("[a-z]",$var); //ergibt true
echo $wert;
$wert ereg("[a-z]",$var2); //ergibt auch true
echo $wert
Beide ereg-Aufrufe ergeben nicht bool(true), sondern int(1). Das ist auch beim zweiten Aufruf zufällig die korrekte Rückgabe, weil das verwendete Pattern nur sicherstellt, dass ein Zeichen [a-z] irgendwo in der Eingabe auftaucht. Anders gesagt: Das Pattern liefert auch für Eingaben wie "123a456" den Wert int(1).

Hier ist eine geeignetere Demonstration der NUL-Byte-Problematik:

PHP-Code:
var_dump(
    
ereg('^[a-z]+$'"abc\x00123"// ergibt int(1)
); 
"\x00" ist hier das NUL-Byte. Dieser Ausdruck sollte bool(false) liefern, liefert aber int(1), da ereg das NUL-Byte wahrscheinlich für das Eingabeende hält (Stichwort nullterminierte Strings).

Dieses Problem tritt tatsächlich nur beim NUL-Byte auf:

PHP-Code:
<?php // ereg.php

$pattern '^[a-z]+$';

for (
$i 0$i <= 255$i++) {
    
$input 'a' chr($i) . '1'// Number in string. Pattern should never match

    
if (false !== ereg($pattern$input)) {
        
printf("False positive for byte chr(%s)\n"$i);
    }
}

echo 
"Done\n";
Ausgabe:

Code:
$ php -f ereg.php 
False positive for byte chr(0)
Done
Es scheint für dieses Problem mit ereg also eine Lösung zu sein, vorher NUL-Bytes aus der Eingabe zu filtern. Nutzen sollte man die ereg*-Funktionen natürlich dennoch nicht, da sie seit Mitte 2009 als deprecated gelten und in PHP 7 laut Doku gar nicht mehr existieren.

Der Vollständigkeit halber ein Test für PCRE/preg*-Funktionen:

PHP-Code:
<?php // pcre.php

$pattern '/\A[a-z]+\z/';

for (
$i 0$i <= 255$i++) {
    
$input 'a' chr($i) . '1'// Number in string. Pattern should never match

    
if (!== preg_match($pattern$input)) {
        
printf("False positive for byte chr(%s)\n"$i);
    }
}

echo 
"Done\n";
Code:
$ php -f pcre.php 
Done

Geändert von mermshaus (16-01-2016 um 12:58 Uhr) Grund: Grammatik
Mit Zitat antworten
  #6 (permalink)  
Alt 15-01-2016, 10:34
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

Bravo
__________________
Immer eine Handbreit Puffer unterm Code
Mit Zitat antworten
  #7 (permalink)  
Alt 16-01-2016, 12:31
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 840
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von ibor Beitrag anzeigen
eregs()...

Denn wer will schon, dieses Problem haben? Also es scheint, als hätte sich zum Beispiel "Wordpress" keinerlei Gedanken darüber gemacht
Gibts da einen Zusammenhang mit Wordpress? (Ich glaube zwar kaum, dass die da noch ereg_...() verwenden, aber man weiß ja nie ...)

Die PCRE-Erweiterung gibts mindestens seit PHP 5.0.0. Seit dieser Zeit besteht also keine Veranlassung mehr, POSIX-Regex-Funktionen zu nutzen. Sie können nichts, was die PCRE nicht auch könnten. Und wer die POSIX-Syntax liebt, nimmt halt die MultiByte-Version. Die sollte per Definition NUL-Byte-sicher sein.
Mit Zitat antworten
  #8 (permalink)  
Alt 16-01-2016, 12:37
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Post

Habe mir den Quellcode auch von wordpress Plugins angeschaut und habe dann diese Feststellung gemacht!

Ob der Code auf GitHub noch aktuell ist weiss ich nicht aber ich habe was wordpress anbelangt auch was gefunden

EDIT: Sorry habe nicht im repository gesucht :/

Aber die Plugins sind wirklich teilweise betroffen - wenn man das so sagen kann :P

Einfach hier her gehen: https://github.com/search?l=php&q=wo...utf8=%E2%9C%93

Gruß Robert
__________________
Immer eine Handbreit Puffer unterm Code

Geändert von ibor (16-01-2016 um 12:50 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 16-01-2016, 23:09
mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 386
mermshaus wird schon bald berühmt werden
Standard

WordPress-Core kann allerdings wenig für irgendwelche Plugins. Die kann ja jeder schreiben. Da die Software schon so lange existiert und so verbreitet ist, wird es eben entsprechend viele Plugins geben und auch etliche, die seit Jahren nicht mehr gepflegt werden, deren Code aber noch irgendwo rumgeistert. Zudem müsste man im Einzelfall schauen, ob die jeweilige Nutzung von ereg*-Funktionen tatsächlich problematisch in Bezug auf die in diesem Thread besprochene Sache ist oder ob es einfach nur alter, aber nicht unsicherer oder fehlerhafter Code ist. Das ist ansonsten auch nur ein einziger Programmierfehler, den man machen kann. Man könnte sich genauso gut zig andere Sachen herausgreifen und auch zig andere Software-Projekte. Ich sehe hier jedenfalls keinen Anlass für besondere WordPress-Kritik.

PS: Immerhin hast du es wenigstens inhaltlich versucht. Was man ansonsten teilweise liest, ist leider… Nun ja. (Edit: Auch wenn es in der Übertreibung natürlich auch als Witz gemeint sein soll.)

Geändert von mermshaus (16-01-2016 um 23:43 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit DB abfrage von Wordpress und dessen ausgabe Takeru85 SQL / Datenbanken 0 24-11-2014 09:30
Ligasystem und dessen Ausgabe wskc SQL / Datenbanken 0 01-10-2012 16:36
[Script] Pic soll der maus folgen und nach gewisser zeit ausblenden d2ta Apps und PHP Script Gesuche 5 03-09-2006 20:34
[Funktion] ereg und Platzhalter der_Behr PHP Developer Forum 4 08-02-2004 14:57
Fehler im Job und seine Folgen Günni Out of Order 0 22-01-2003 02:10

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

Zeit ist Geld, PC einfach selbst reparieren!
Zeit ist Geld, PC einfach selbst reparieren!Wenn der PC nicht richtig läuft, wirft sie das in Ihrem Arbeitsalltag meist zurück. Dabei können Sie einige Probleme mit relativ wenig Aufwand und ohne intime Kenntnisse Ihres Rechners selbst lösene

18.04.2016 | Berni

Die wichtigsten Rahmenbedingungen für das Hosting
Die wichtigsten Rahmenbedingungen für das HostingGuter Webspace wird in der heutigen Zeit immer wichtiger. Die Scripte werden moderner und fordern höhere Leistung, der allgemeine Traffic im Internet nimmt zu.

17.08.2015 | Berni


 

Aktuelle PHP Scripte

Onlineshop mit CSV Artikel import

Wir erstellen nach Ihren Wünschen Ihren Onlineshop.

11.07.2016 ISD-Genthin | Kategorie: PHP/ Shops
Newsletter PRO SQL V4

Nutzen Sie unser Newsletter-System und halten Sie Ihre Kunden mit neuen Informationen stets auf dem Laufenden. Die benutzerfreundliche Oberfläche bietet sowohl Anfängern als auch Profis, die Erstellung von eleganten bis frechen Newslettern ...

11.07.2016 virtualsystem | Kategorie: PHP/ News
LEPTON CMS ansehen LEPTON CMS

LEPTON CMS ist eine weiterentwickelte Ableitung (Fork) des CMS „WebsiteBaker“ der Version 2.8.1. Das Entwicklerteam hat den ursprünglichen „Geist” erhalten, der dieses Content Management System und seine damalige Community unter Leitung des Gründers Ryan

27.06.2016 erpe | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:23 Uhr.