Wie man die XSS-Lücke ausnutzt und wie man den Wurm indiziert, das erklärt mybeNi. Das ganze basiert auf WordPress Version 2.2.1.
Was man davon halten soll – das muss jeder selbst entscheiden. In jedem Fall lohnt es sich, die Hinweise zu lesen. Es handelt sich um einen „freundlichen“ Wurm, der nur die Lücke aufzeigen will – ein Trost? Schön ist, dass der Wurm dem Admin hilft, die nötigen Lücken zu patchen.
Im weiteren werden alle 7 Lücken erläutert und als Beispiel dargelegt. Die Lücken sind im WP trac registriert und vielleicht erwartet uns bald ein Update. Wer sich händisch an die Arbeit machen will, der liest die Lösungen. In der Regel kommt die WordPress eigene Sicherheits-Funktion attribute_escape() zum Einsatz. Es sind 5 Lücken zu schließen – kurz und bündig im Folgenden.
wp-admin/upload-functions.php Zeile 109
<form<?php echo $enctype; ?> id="upload-file" method="post" action="<?php echo get_option('siteurl') . "/wp-admin/upload.php?style=$style&tab=upload&post_id=$post_id"; ?>">
wird zu:
<form<?php echo $enctype; ?> id="upload-file" method="post" action="<?php echo get_option('siteurl') . "/wp-admin/upload.php?style=" . attribute_escape($style) . "&tab=upload&post_id=" . attribute_escape($post_id); ?>">
wp-includes/functions.php Zeile 206
function get_option($setting) {
global $wpdb;
$setting = $wpdb->escape($setting);
// Allow plugins to short-circuit options.
$pre = apply_filters( 'pre_option_' . $setting, false );
wp-includes/functions.php Zeile 386
function delete_option($name) {
global $wpdb;
$name = $wpdb->escape($name);
wp_protect_special_option($name);
wp-admin/link-import.php Zeile 76
$cat_id = $_POST['cat_id'];
if ( $cat_id == '' || $cat_id == 0 )
wird zu:
$cat_id = (int) $_POST['cat_id'];
if ( $cat_id < 1 )
wp-admin/edit-comments.php Zeile 78
if ( isset( $_GET['apage'] ) )
wird zu:
if ( isset( $_GET['apage'] ) ) {
$page = (int) $_GET['apage'];
if($page < 1)
$page = 1;
}
Hey! das tolle an meinem wurm ist ja, das er nicht nur die Lücken zeigt sondern interaktiv mit dem Administrator zusammen die Lücken patcht! :o)
Gruß beni
Hallo Beni.
Hatte ich auch so verstanden. Danke nochmal, dass es ein freundlicher Wurm ist.
Habe gerade mal deinen Wurm rein gelassen – ist schon erschreckend. Aber dass du alle Patches auf diesem Weg einspielst macht die Arbeit sehr schnell. Das ungute Gefühl dabei bleibt. Im Endeffekt bleibt nur das Vertrauen in deinen Wurm 😉 oder die händische Arbeit.
Trifft das ganze nur WP2.2 oder auch ältere Versionen?
Do you have any help in English? I can’t figure out how to use the plug-in after it’s been activated.
Da ich mich gerade zu Tode gesucht habe, kurz die Rückinfo :
nicht in wp-admin/includes/upload.php Zeile 109 suchen (die gibt es erst in WP 2.3)
sondern wp-admin/upload-functions.php Zeile 109
Ist ja mal ganz nett gemacht das Ding 😉
You find help in english on the site of the worm mybeNi.
Danke nochmal, habe vergessen es zu erwähnen, da ich in 2.3 gespielt habe.
leider passiert bei mir nach dem klick auf „secure my blog“ nichts – bin ich dann schon sicher ? oder was kann ich machen, das nach dem Klick auch etwas passiert (der klich verarbeitet wird)
Sorry, aber da solltest du lieber den Autor des Wirms fragen. Ich habe ihn nur auf einem Tesblog laufen lassen, rein aus Interesse. Die Patches habe ich händisch eingespielt.
Hi Frank, bin ich völlig verwirrt oder fehlen in der Anleitung für die functions.php die „wird zu“ Teile?
Went ahead and rewrote the changes in English, verified them on my WordPress install
http://evaders.swrebellion.com/forums/postp401.html#401
Feel free to use this or the pre-packaged files
Der Syntax wird erweitert, genau hinsehen. Es gibt kein „wird zu“.
Alles klar, hab nicht genau genug hingesehen… thx für den Post… bueltge wird ja immer mehr zum „inoffiziellen“ offiziellen wp-deutschland blog 🙂
Na na, nicht übertreiben – WPD macht das schon gut.
Ja, find ich eh, sehr gut sogar. Trotzdem: ich find’s genial, wie schnell du solche Fix-Anleitungen online hast.
sorry… noch ne Frage: wenn ich den angebenen Code für edit-comments.php ersetze, dann bekomme ich im backend zwar keine fehlermeldung, aber immer „Es wurden keine Kommentare gefunden, die deinen Suchkriterien entsprechen.“ Da hat’s irgendwo was.
WordPress 2.2.2 bzw. 2.0.11 ist draußen, ich denke mal daß die Lücken entsprechend geschlossen wurden.
http://wordpress.org/development/2007/08/wordpress-222-and-2011/
Vielen Dank für die klärenden Infos, aber ich erhalte nach dem Editieren der wp-admin/edit-comments.php bei Aufruf einen Datenbankfehler.
Der Fehler tritt nach dem Reaktivieren der alen Datei nicht mehr auf.
Ich benutze WP 2.2.1, PHP Version 5.2.3 und MySQL-Client-Version: 5.0.32
Gruß Thorsten
Nach dem Kommentar habe ich gelesen, daß 2.2.2 released wurde. Der Fehler wurde dadurch behoben.
Habe die Version 2.2.2 installiert, damit ist es erledigt. Thanxx
Yup, die läuft inzwischen bei mir auch.
Habe die meisten meiner Blogs bereits auf die aktuelle WP Version aktualisiert…auf den anderen habe ich mal dein Plugin implementiert…danke für den Fix. Funktioniert einwandfrei.
Mark