WordPress DOS – wp-admin Verzeichnis schützen

Die Hacker News berichten von einem Angriff auf WordPress, der von Seiten der Entwickler als „nicht-unsere-Baustelle“ abgeschmettert wurde, aber ganz leicht abgewehrt werden kann.

Der Angriff

Im wp-admin Verzeichnis gibt es ein Script namens „load-scripts.php„, das auf Zuruf, und liegt das Problem, alle Javascripte der Installation, zu einer gemeinsamen Javascriptseite zusammenbaut, damit der Browser nicht jede einzeln laden muß. Das Problem daran ist, jeder kann die Seite aufrufen. Wenn man dann noch die gesamten Javascripte eines WordPress zusammenstellen läßt, reichen wenige Aufrufe, bis die Webseite offline ist.

Das liegt daran, daß bei der Zusammenstellung sehr viel IO entsteht, was den Webserver belastet. Dadurch wird alles langsamer, bis es bei genug Anfragen zum faktischen Stillstand kommt. Dazu kommt eine erhöhte Rechenleistung während die Scripte Ihren Job tun.

Was meint WordPress dazu ?

Die sagen, daß ein Admin diese Seite aufrufen können muß, wenn er noch nicht als Admin erkennbar ist. Also muß es jeder können. Man solle doch das Problem irgendwo anders löschen, nur nicht bei Ihnen.

„However, the company refused to acknowledge the issue, saying that this kind of bug „should really get mitigated at the server end or network level rather than the application level,“ which is outside of WordPress’s control.“ (Zitat von THN )

Das ist natürlich peinlich, weil jemand das in WordPress gefixt hat und einen Fork davon bereitstellt. Es ist also scheinbar leicht möglich es zu beheben.

Eine Lösung des Problems

Wenn Ihr Zugriff auch Euren Webserver habt, erstellt Ihr einfach für wp-admin eine .htaccess Datei . Das kann man über eine Weboberfläche lösen, so wie hier :

Wenn man die HT-Accessabfrage mit  Usernamen und Passwort anlegt, fragt einen der Browser nach den Zugangsdaten, aber merkt sich die auch, so daß man selbst recht unproblematisch wieder ins Backend gelangt. ( Die 5.6 Version von PHP ist wohl beim Testen hängen geblieben und wurde bereinigt 😉 ).

Nach dem Anlegen zeigt meine Oberfläche dann auch an, daß dort eine HTAccess mit Benutzernamen liegt :

Admin-Weboberfläche nach dem Anlegen des Benutzers

Nach dem Anlegen des Benutzers

Wenn man das alles von Hand machen muß, geht das so :

In die Datei wp-admin/.htaccess  kommt dieser Inhalt, bei dem Ihr den Pfad anpassen müßt:

AuthType Basic
AuthName "Das ist mein WordPress!"
AuthUserFile /path_to_wp/wp-admin/.htpasswd
Require valid-user

danach gibt man in der Bash ein :

htpasswd -bc  /path_to_wp/wp-admin/.htpasswd username password

Das war es dann schon. Jetzt noch im Browser wp-admin/ aufrufen und die neuen Zugangsdaten eingeben und auf Speichern drücken.

WordPress Kommentarvorschaufunktion abschalten

Liebe Mitblogger,

seid auch Ihr es leid, daß Ihr beim Durchsehen von Spamkommentaren zufällig die per MouseOver() ausgelöste Preview einer Spammerwebseite nicht abschalten könnt ?

Falls Ihr jetzt hofft, daß Euch das per neuer Funktion im heute rausgekommenen Update auf 4.9 möglich wäre, leider nein. Wieso Askimet den Usern diese Funktion nicht zur Verfügung stellt, bleibt mir ein Rätsel. Besonders gut wäre es, wenn die Preview nur bei SPAMS abgeschaltet würde, weil andere Webseitenlinks sind ja vielleicht sogar gewollt.

Aber laßt Eure Köpfe nicht hängen, es gibt eine Lösung 😉

Hier ist die Lösung

In der Datei /wp-content/plugins/akismet/_inc/akismet.js in Zeile 277 ersetzt Ihr diese Anweisung:

$( '#the-comment-list' ).on( 'mouseover', mshotEnabledLinkSelector, function () {
clearTimeout( mshotRemovalTimer );

durch diese hier:

$( '#the-comment-list' ).on( 'mouseover', mshotEnabledLinkSelector, function () {
 return;
 clearTimeout( mshotRemovalTimer );

und bis zum nächsten Update seid Ihr die Kommenturlpreview los!

 

WordPress Traffic Stats Widget defekt

Wer in seinem WordPress Blog das „Traffic Stats Widget“ einsetzt, der könnte ein Problem haben. Seit dem 20.9. hat unser Plugin nichts mehr in die Logdatenbank geschrieben und damit sind fälschlicherweise meine Zugriffszahlen für September und Oktober leicht rückläufig, um nicht zu sagen, nicht mehr vorhanden 😉

Der Fix dafür ist recht einfach:

In der Datei „wp-content/plugins/traffic-stats_widget/wp-traffic-stats-widget.php“ Zeile 174, ersetzt man:

 $data = array (
 'IP' => $ip,
 'Time' => time(),
 'IS_BOT'=> tsw_is_bot(),
 'IS_HIT'=> is_hit($ip)
 );
 $format = array ('%s','%d', '%b','%b');
 $wpdb->insert( $table_name, $data, $format );

mit :

if (!$user_count) {
    $wpdb->query("INSERT INTO $table_name set IP='".$ip."', Time='".time()."', IS_BOT ='". tsw_is_bot() ."', IS_HIT='". is_hit($ip)."'");
}

Damit werden die Zugriffe wieder in die Datenbank eingetragen und die Stats zeigen in einigen Tagen wieder normale Werte an 😀

WordPress updaten auf min. 4.7.5

Lieber Blogger Kollegen,

sofern Ihr WordPress einsetzt und es nicht schon automatisch geschehen ist, updated bitte Eure WordPress auf min. Version 4.7.5. Alle kleineren Versionen haben eine Cross-Site-Request-Forgery-Schwachstelle, d.h. jemand drittes kann auf seiner Webseite einen Vorgang auslösen, bei dem Eurer Browser etwas in Eurem WordPress durchführt, ohne das Ihr das merkt. Natürlich nur, wenn Ihr permanent eingeloggt sein 😉