PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for August, 2011

Testet eure Apache Server auf die neue 0-Day DOS-Lücke

with 19 comments

Ich möchte wenig Zeit verlieren: Heute wurde ein sehr leichter Angriff bekannt, mit dem man viele voll gepatchte Apache 2.2 Server ziemlich einfach abschießen kann. Details dazu finden sich sowohl bei Heise als auch bei Golem.

Es geht also um den HTTP Range-Header. Eigentlich dazu gedacht, Downloads zu pausieren und zu resumen, ist der Apache anfällig wenn man ihm sehr viele Ranges hinwirft, er verbraucht dann unheimlich viel RAM, geht dann an den Swap-Speicher, und dann beginnt Linux damit Prozesse zu beenden weil der Arbeitsspeicher total überlastet ist. Wenn man Pech hat kommt man nicht mal mehr via SSH drauf.

Es gibt einen Exploit, der in Perl geschrieben ist, und der einen Server erst darauf testet ob er anfällig ist, und wenn er es ist, beginnt er damit viele Requests loszuschicken mit vielen Range-Headern. Nach wenigen Sekunden ist der Server nicht mehr erreichbar. Dieser Exploit wird von Heise und Golem verlinkt, also nahezu jeder Script-Kiddy wird nun loslaufen und es benutzen, es wird nur Perl und das Perl-Modul Parallel::ForkManager benötigt.

Weiterlesen »

Written by Michael Kliewe

August 24th, 2011 at 9:01 pm

Posted in PHP

Mini-Storage-Grid crowdsourced

with 25 comments

Ich habe eine verrückte Idee, und ihr sagt mir ob wir das umsetzen können oder nicht. Dabei bin ich auf eure Mitarbeit angewiesen, denn das verrückte daran ist dass es ein verteiltes System sein soll, wobei jeder seinen Client selbst bauen wird (Crowdsourcing).

Also, wir brauchen Speicherplatz, den gibt es da draußen zuhauf, meist auch kostenlos, bei einem Anbieter, „in der Cloud“ oder auch als Peer-to-Peer Grid, ich weiß. Aber es gibt sicher noch kein Speicher-Grid das nur aus unterschiedlichen Nodes besteht. Jeder von euch, der mitmachen möchte, muss sich seinen eigenen Client basteln, theoretisch egal in welcher Programmiersprache. Natürlich müssen die Clients miteinander Daten austauschen, in diesem Fall eure Dateien. Wir brauchen als ein möglichst kleines effizientes Protokoll, mit dem man sich finden und Daten austauschen kann.

Weiterlesen »

Written by Michael Kliewe

August 23rd, 2011 at 8:34 am

Posted in PHP

Tagged with , ,

Text in Bild einfügen: ImageLabeler

with 14 comments

Heute gibts ein kleines Script, das zu einem gegebenen Bild einen Text hinzufügt, also beispielsweise einen Copyright-Hinweis rechts unten einfügt. Im Bild rechts sieht man wie ich den Text ‚PHPGangsta‘ in der Position rechts unten eingefügt habe, mit roter Schriftfarbe und weißer Umrandung.

Es ist die erste Version mit Basisfunktionalität. Aktuell können beeinflusst werden:

  • Text
  • Schriftfarbe
  • Hintergrundfarbe
  • Schriftgröße
  • Dateiausgabeformat (jpg, png, gif) und Qualität
  • Positionen: alle 4 Ecken, zentriert oder individuelle X/Y Koordinaten
  • Rahmen um den Text und Hintergrundfarbe

Auf Github findet ihr das Projekt ImageLabeler, die Klasse könnt ihr einfach benutzen:

<?php

require_once 'ImageLabeler.php';

$imageLabeler = new ImageLabeler();
$imageLabeler->setFilePath('/path/to/image.jpg')
             ->setText('PHPGangsta')
             ->render();
echo $imageLabeler->getRenderedFilePath();
// outputs something like /tmp/63D6.tmp.png

Es gibt aber noch einige weitere Einstellungsmöglichkeiten:

<?php

require_once 'ImageLabeler.php';

$imageLabeler = new ImageLabeler();
$imageLabeler->setFilePath('/path/to/image.jpg')
             ->setText('PHPGangsta')
             ->setPosition(ImageLabeler::POSITION_BOTTOM_CENTER)
             ->setFontSize(3)
             ->setFormat('png')
             ->setFontColor('0000ff')
             ->setBackgroundColor('ffffff')
             ->setTargetFileQuality(80)
             ->setBoxBorderThickness(2)
             ->setBoxBorderColor('ff0000')
             ->render()
             ->outputRenderedImage();

Man könnte sich natürlich noch weitere Dinge vorstellen wie TTF-Schriftarten, Transparenz, Rotation usw.

Eine Frage zum Schluss noch: Sollte ich solche Klassen in meinen eigenen Namespace packen? Nachteil wäre dass die Klassen dann bei PHP < 5.3 angepasst werden müssen…

Written by Michael Kliewe

August 22nd, 2011 at 9:39 am

PHPStorm 20% Rabatt Code noch bis zum 01.09.2011

with 69 comments

20% Rabatt auf die aktuell beste PHP Entwicklungsumgebung (IDE) gibts mit einem Rabatt-Code den ich euch geben kann und der noch bis zum 1. September gültig ist. Seit März habe ich mehr als 250 Coupons rausgeben können, und es soll sich natürlich niemand beschweren dass er es vergessen oder nicht mitbekommen hat, deshalb hier nochmal die Erinnerung.

Dazu einfach hier einen Kommentar hinterlassen, ihr erhaltet dann hoffentlich innerhalb von 24 Stunden eine E-Mail mit dem Code.

Achso, ihr könnt PHPStorm natürlich vorher testen, braucht nicht die Katze im Satz kaufen. Aber es gibt wenige Leute, die sich PHPStorm einige Stunden angeschaut haben und nicht überzeugt waren 😉

Written by Michael Kliewe

August 18th, 2011 at 10:38 am

Posted in PHP

Tagged with , , , ,

Manipulationen erkennen – Bemerken dass man gehackt wurde

with 38 comments

In viele Webseiten wird heutzutage eingebrochen und es werden Änderungen an der Webseite durchgeführt. Das kann die selbst programmierte Webseite sein bei der man eine Lücke eingebaut hat, das kann aber auch ein installiertes WordPress oder Joomla sein.

Häufig sind solche Angriffe nicht geziehlt, sondern werden mittels automatischer Scripte durchgeführt, die dann auf allen anfälligen Servern kleine Änderungen an den Dateien durchführen:

– Phishing Webseiten werden auf den Server gelegt
– in die Webseite wird bösartiger Code eingebaut der mittels Flash, Javascript, Windows Media Player oder anderen Techniken versucht einen Drive-By-Download bei den Besuchern zu platzieren
– die Webseite wird „nur“ defaced, sprich ein witziges Bild wird auf die Webseite gesetzt die den Besitzer blossstellen soll
– an strategisch gut platzierte Stellen im Code werden mail() Aufrufe eingefügt die beispielsweise die Klartextpasswörter an den Angreifer senden
– es werden kleine Scripte abgelegt wie beispielsweise PHProxy oder ein Spam-Mail-Script
– heutzutage wird auch gern die .htaccess Datei verändert, mit der der Suchmachinen-Traffic auf eine andere Seite umgeleitet wird, beispielsweise so:

Weiterlesen »

Written by Michael Kliewe

August 17th, 2011 at 9:42 am