multipart/form-data

Hallo Leser,

ich schreibe hier mal wieder was über php5. Diese hat wieder eine Lücke die erst ab 5.3.1 gepatcht ist.
Da viele Leute aber die Repros b.z.w die search Dateien oder die deb´s Nutzen ist eine Installation nicht möglich.
Naja möglich schon aber mit viel aufwand verbunden

Nun gut es gibt ja einige Wege um das ganze zu Patchen.

Das dotdeb Projekt hat nun die Version 5.3.1 für Debian Lenny Packages zusammengestellt.

/etc/apt/sources.list

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

danach ein
apt-get update && apt-get upgrade

und schon sollte das ganze Installiert werden.

Wer das ganze mit php5-suhosin lösen möchte kann dieses auch ganz einfach tun.
Hierzu machen wir ein apt-get update && apt-get install php5-suhosin in der Console

apt-get install php5-suhosin
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein… Fertig
Die folgenden NEUEN Pakete werden installiert:
php5-suhosin
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 66,4kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 180kB Plattenplatz zusätzlich benutzt.
WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!
php5-suhosin
Diese Pakete ohne Überprüfung installieren [j/N]? j
Hole:1 http://ftp.hosteurope.de stable/all php5-suhosin 5.2.12-0.dotdeb.1 [66,4kB]
Es wurden 66,4kB in 0s geholt (367kB/s)
Wähle vormals abgewähltes Paket php5-suhosin.
(Lese Datenbank … 27973 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke php5-suhosin (aus …/php5-suhosin_5.2.12-0.dotdeb.1_amd64.deb) …
Richte php5-suhosin ein (5.2.12-0.dotdeb.1) …

und schon findet man bei /etc/php5/conf.d/ die suhosin.ini

insgesamt 32
drwxr-xr-x 2 root root 4096 7. Jan 14:04 .
drwxr-xr-x 5 root root 4096 6. Jan 18:53 ..
-rw-r–r– 1 root root 58 4. Jan 15:50 mcrypt.ini
-rw-r–r– 1 root root 57 19. Sep 23:28 mysqli.ini
-rw-r–r– 1 root root 56 19. Sep 23:28 mysql.ini
-rw-r–r– 1 root root 52 19. Sep 23:28 pdo.ini
-rw-r–r– 1 root root 60 19. Sep 23:28 pdo_mysql.ini
-rw-r–r– 1 root root 60 5. Jan 16:36 suhosin.ini

Diese kann man mit nano,vi oder einem anderen Editor öffnen

der Inhalt dürfte in etwa so ausschauen

; configuration for php suhosin module
extension=suhosin.so

Im Standart steht suhosin.upload.max_uploads schon auf 25, nun können wir das ganze auch auf 20 begrenzen.

; configuration for php suhosin module
extension=suhosin.so
suhosin.upload.max_uploads = 20

ein apache reload b.z.w restart und schon ist das ganze Aktiv!
Jedoch sollte man aufpassen suhosin kann auch das System ausbremsen und zu unerwünschten verhalten führen.

Hierzu sollte man unbedingt mal bei http://www.hardened-php.net/suhosin.127.html vorbei schauen und sich mal alle möglichen Einstellungen anschauen. Suhosin kann noch mehr 🙂

Selbst verständlich kann man die Änderung auch in seiner phpinfo verfolgen.

Viel Spaß beim testen..

acrotxt.php SQL Injektion

Hallo,
wie auch immer so gibt es diese Lücke ja schon eine lange Zeit.
Ich hatte diese Gott sei Dank schon früher gefunden und bei unserem Board gefixt. Nun war ich auf der Suche nach einem Update und da ist mir durch Zufall dieses aufgefallen.

Hier auch das Paper von milw0rm dazu, alter Bug:
http://www.milw0rm.com/exploits/4327

Variable hat auch Probleme mit seite 🙂
das heißt nun:

Standart war:
SQL-Injection:
http://[target]/[path]/acrotxt.php?show=[SQL]

nun kommt aber auch dieses hinzu:
SQL-Injection:
http://[target]/[path]/acrotxt.php?seite=[SQL]

ob das ein Problem in versch. PHP Versionen ist kann ich nicht sagen.
Die v1 hat ja einige Bugs, von daher kan ich garnicht mehr sagen was ich damals alles gefixt habe. Hier sind Select Abfragen und auch die Insert nicht Okay. Hier mal ein schneller Fix wie man das mit der Seite hinbekommt, das dort kein SQL Error erscheint und das Injektion Problem behebt.


SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.3.6 pl2): Invalid SQL: SELECT * FROM bb1_acrotxt WHERE activate=1 ORDER BY word ASC LIMIT -30,30
mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-30,30' at line 1
Date: 03.01.2010 @ 20:21
Referer:

Wie man hier schön sieht liegt das Problem im Bereich $offset, dort werden die Anzahlen der Seiten gezählt und mit dieser Query abgefragt.
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_acrotxt WHERE activate=1 ORDER BY word ASC LIMIT ".$offset.",".$limit."");
Wie wo, ja offset,seiten und limit sind nicht Wirklich definiert auch – wenn das Limit selber abgefragt wird.

Was nun tun?

Am besten überarbeitet man das ganze Script etwas.

Zum einen Baut man mal ein
if(empty($seite))
$seite = 1;
ein damit überhaupt eine Seite angezeigt wird.

ein Fix ist mit empty und is_numeric auf der Variable offset möglich! Bitte aber nicht vergessen alle SQL Abfragen mit intval,addslashes oder viel besser mit mysql_real_escape_string zu sichern.

Und zum Abschluss gibt es hier noch ein kleines Video was ich gefunden habe.

http://www.youtube.com/watch?v=BsrBe1V4GwM

Viel Spaß damit

cultd3ad

SQL Bugs in Woltlab Addons & Co

Hallo Gemeinde,

ich habe mir jetzt mal vorgenommen was hier über „SQL Bugs“ zu veröffentlichen.
Es kommt immer wieder vor das Addons für z.b das alte woltlab 2.3.* immer noch Buggy sind,wobei inzwischen klar sein dürfte wie man sich gegen SQL-Injection schützen kann.

Um seine SQL Query zu Schützen sollte man mit der php-funktion intval,addslashes oder auch mysql_real_escape_string arbeiten.

Genaue Aufklärung findet man auch bei wikipedia unter SQL-Injektion