php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.05.2005, 19:10  
Gast
 
Beiträge: n/a
Standard gefährlicher Fehler bei der Funktion addslashes()

Hallo

ist jemandem dieser Fehler bekannt? Ich habe einen $text der eine mysql-injection enthält, in der Form:

$text = "'); DROP TABLES; 'bla';"

mit

$text = addslashes($text)

wird der Code NICHT entschärft!! Das einfache Anführungszeichen am Anfang des Strings bleibt unangetastet. Kein Backslash davor!!

Die einfachen Anführungszeichen in der Mitte jedoch haben einen Backslash vorangestellt.

Das ist eine Katastrophe! Sowas unlogisches ist mir noch nie unter gekommen. Kann jemand helfen?
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.05.2005, 19:14  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

?? wie bitte?

mein testcode:

PHP-Code:
<?php
echo ("'); DROP TABLES; 'bla';");
echo 
'
'
."\n";
echo (
addslashes("'); DROP TABLES; 'bla';"));
?>
das ergebnis:

Code:
'); DROP TABLES; 'bla';

\'); DROP TABLES; \'bla\';
weis ja ned was du für ein php hast ...
getestet lokal auf xampp
robo47 ist offline  
Alt 07.05.2005, 19:15  
Gast
 
Beiträge: n/a
Standard

getestet bei 1&1: und es funktioniert definitiv NICHT. Ein Anführungszeichen am Anfang wird nicht geslasht.
 
Alt 07.05.2005, 19:18  
Gast
 
Beiträge: n/a
Standard

Test bei 1&1:

http://www.cix88.de/test.php
 
Alt 07.05.2005, 19:22  
Gast
 
Beiträge: n/a
Standard

mich macht das krank! Bei einer anderen Variable geht es einwandfrei. so hole ich diesen text aus einer email:

PHP-Code:
<?php
$mailtext 
.= imap_fetchbody($mailbox$mailcount$partstring);

[...]

$mailtext quoted_printable_decode($mailtext);

[...]

$mailtext strip_tags(addslashes($mailtext));

?>

kann's sein das addslashes nicht damit klar kommt, weil der String nicht das ist wonach er aussieht? falsche kodierung oder sowas? Im Browser seh ich den shit aber in klartext. Und er slasht ja auch die Anführungszeichen, nur halt nicht wenn sie am Anfang stehen!
 
Alt 07.05.2005, 19:27  
Gast
 
Beiträge: n/a
Standard

scheint völlig egal zu sein was ich ausprobiere solange der output von der E-Mail stammt, funktioniert addslashes nicht korrekt.

habe auch diesen quoted_printable_decode mal weg genommen. Bringt nix. Und ein addslashes da rein gebaut. Bringt auch nichts.

Merkwürdig ist, das es beim Subject funktioniert.
 
Alt 07.05.2005, 19:35  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

...
teste mal mit ord()
ob das zeichen wirklich das ist für das es sich ausgibt.
robo47 ist offline  
Alt 07.05.2005, 19:36  
Gast
 
Beiträge: n/a
Standard

Zitat:
imap_fetchbody
Warum benutze nicht einfach imap_body() ?

Vieleicht hilf ja auch das dir etwas weiter:
http://www.php.net/manual/de/functio...-fetchbody.php

(bin jetzt zu faul, um selber zu testen)
 
Alt 07.05.2005, 19:57  
Gast
 
Beiträge: n/a
Standard

doch, es handelt sich ganz genau um das "richtige" zeichen...

trotztdem wird es nicht geslasht. und es ist nur bei dieser einen verfluchten Variable so. Der content von der Mime-Mail der dekodiert wurde.

d.h. sql-befehle in emails führt mein skript trotz addslashes aus, beim speichern der mail in die Datenbank. aus irgend einem grund erkennt addslashes hier nichts und ist blind.

ok ich gebs auf, addslashes ist fürn arsch. andere lösung... welche Zeichen werden normalerweise von addslashes geslasht? ausserdem lese ich gerade, das addslashes eine dämliche lösung ist um die datenbank vor mysql-injection zu schützen. man muss innerhalb der query das hier nehmen:

mysql_real_escape_string()

alles andere ist bullshit

siehe: http://de.php.net/manual/de/function...ape-string.php

werds wohl oder übel mal testen müssen, mit einer harmloseren injection als "DROP TABLES;"
 
Alt 07.05.2005, 20:13  
Gast
 
Beiträge: n/a
Standard

ich werd bekloppt die anwendung von mysql_real_escape_string() ist ja sowas von brutal kompliziert das macht doch keiner. glaub da bin ich extrem auf dem holzweg.
 
 


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
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
Name der aufrufenden Funktion mAy^daY PHP Tipps 2007 5 20.01.2007 22:55
Fehler in rekursiver Funktion tinchen PHP Tipps 2006 1 27.08.2006 20:24
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
fehler in einer funktion imported_master PHP Tipps 2006 3 08.04.2006 21:10
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
Problem mit einer rekursiven Funktion in einer Klasse ajo_silent PHP-Fortgeschrittene 6 13.06.2005 16:40
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32
GDLIB -> Fehler : xxx.jpg is not a valid JPEG file PHP-Fortgeschrittene 11 09.06.2004 22:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
addslashes anführungszeichen, 1und1 addslashes, addslashes fehler, e-mail addslashes, addslashes 1und1, addslashes eingabe anführungszeichen, addslashes performance

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:21 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.