Wordpress Archives - Technik - Blogbasis.net https://technik.blogbasis.net/tag/wordpress Die Basis des freien Wissens – Technik Fri, 31 Jan 2014 01:00:02 +0000 de hourly 1 https://wordpress.org/?v=6.8.1 WordPress-Multisite – Liste mit Artikeln der Unterblogs https://technik.blogbasis.net/wordpress-multisite-liste-mit-artikeln-der-unterblogs-31-01-2014 https://technik.blogbasis.net/wordpress-multisite-liste-mit-artikeln-der-unterblogs-31-01-2014#respond Fri, 31 Jan 2014 01:00:02 +0000 http://technik.blogbasis.net/?p=1025 Nachdem sich der Arndt einige Male bei mir beschwert hat, dass er doch gerne auf „blogbasis.net“ eine Übersicht aller auf den Subblogs geschriebener Artikel haben würde, musste ich mir was einfallen lassen.

Im Endeffekt reicht ein wenig Template umcoden und die schöne WordPress Multisite API, um das gewünschte Feature umzusetzen.

Welches Template?

Zunächst stellte sich mir die Frage, welche Templatedatei man anpassen musste. Ich hatte nämlich vor, die „normale“ Hauptseite eines WordPressblogs mit eigenem Inhalt zu überschreiben.

Nach ein wenig stöbern im Template-Editor entschied ich mich für die „Hauptseitendatei (index.php)“.

Die Idee!

Dort findet man ein paar if-Konstrukte und einige Schleifen, um die entsprechenden Daten schön aufzubereiten. Genau diese Funktionalitäten brauchte ich. Nur wie kann man ohne weitere Mühe von einem Subblog auf die Posts der anderen Blogs zugreifen?

Nach ein wenig googeln entdeckte ich eine sehr nützliche Übersicht an WordPress-Multisite-Funktionalitäten: http://codex.wordpress.org/WPMU_Functions

Dort gab es eine Funktion namens „switch_to_blog($id)“. Diese Funktion behielt ich erstmal im Hinterkopf.

Das nächste Problem was sich stellte war folgendes: Da ich für alle Subblogs dasselbe Theme verwende, würde ich durch eine Änderung der „index.php“ auf allen Subblogs nur die Übersicht der Artikel zeigen. Das ist natürlich nicht gewollt. Nach ein wenig Debugging und weiteren Recherchen bzw. der oben verlinkten Dokumentation, entschied ich mich die verschiedenen Subblogs mittels „get_bloginfo(’name‘)“ zu unterscheiden.

Die Funktion liefert uns sehr viele nützliche Informationen über den gerade besuchten (Sub)blog. Da die Namen der Blogs eindeutig sind, konnte ich darüber die Unterscheidung laufen lassen, um die Übersicht nur auf „blogbasis.net“ anzeigen zu lassen.  Für die restlichen Blogs würde dann einfach der „else“-Zweig greifen, und alles ist gut.

Zuallerletzt musste ich noch eine umständliche Methode zum Auslesen bzw. Durchlaufen der einzelnen Posts schreiben, da die einfache „loop“ komischerweise nicht laufen wollte.

Der Code

Lange Rede, kurzer Sinn. Code-mäßig sieht die neue index.php dann so aus: (Nur der obere Teil sollte interessant sein. Der Rest bleibt nur der Vollständigkeit halber.)

[gist id=“8cab54003d119896f252″]

Fazit

Man sollte jetzt nicht mehr das Theme updaten, da sonst die Veränderungen wahrscheinlich verloren gehen :D

Ich denke, dass die Übersicht aller Unterbeiträge auf „blogbasis.net“ eine ganz gute Idee vom Arndt gewesen ist, und dass mir die Umsetzung halbwegs gelungen ist.

PS: Sorry für die Rechtschreibung, aber ich habe nicht nochmal drüber gelesen.

~Sebastian

]]>
https://technik.blogbasis.net/wordpress-multisite-liste-mit-artikeln-der-unterblogs-31-01-2014/feed 0
Social Counter Widget – Twitter Followeranzahl fixen https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013 https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013#respond Tue, 08 Oct 2013 10:53:22 +0000 http://technik.blogbasis.net/?p=931 Seit dem Twitter seine API auf Version 1.1 geupdated hat, funktioniert das Social Counter Widget-Plugin nicht mehr. Das Plugin kann nicht die Anzahl der Follower eines Twitteraccounts herausfinden, und zeigt deswegen „0“ an. Das Problem lässt sich mit einem geschickten Eingriff einfach lösen.

Schluss mit API v1

Vor einigen Monaten kündigte Twitter das Ende der API v1 an, um diese durch die neuere Version 1.1 zu ersetzen. Da die Entwicklung an dem Social Counter Widget scheinbar eingeschlafen ist, gab es bisher kein Update des Plugins, sodass der Twitter Followercount falsch oder gar nicht berechnet wird.

In der Datei wp-content/plugins/social-counter-widget/social-counter-widget.php wird folgender Code verwendet:

if(trim($arr['twitterName'])) {
             $query = 'http://api.twitter.com/1/users/show.json?screen_name='.$arr['twitterName'];
            $result = json_decode(file_get_contents($query));
            $this->twitter = $result->followers_count;

Der Lösungsversuch

Leider reicht es nicht aus, das „/1/“ durch „/1.1/“ zu ersetzen, da Twitter sonst den API Aufruf mit einem Fehler quittiert. Man müsste nämlich OAuth-Tokens nutzen, um sich zu authentifizieren. Da wir diesen zusätzlichen Aufwand nicht treiben wollen, muss eine andere Lösung her.

Als Quick-Fix hatte ich daraufhin die Followeranzahl im Code festgeschrieben:

if(trim($arr['twitterName'])) { 
                $this->twitter = 43; //$result->followers_count;

Auf dauer war diese Lösung aber nicht optimal, da ich jedes Mal den Code neu anpassen musste, wenn ein neuer Follower dazu kam oder weg ging.

Die bessere Lösung

Nach ein wenig Googlen stieß ich auf einen Thread auf Stackoverflow.com, in dem genau mein Problem behandelt wurde. Dort wählte ich die verhältnismäßig einfachste Lösung aus, und änderte die Plugin-Klasse folgendermaßen ab:

Als erstes fügen wir eine neue private Funktion hinzu:

private function get_twitter_followers($url){
            $data = file_get_contents("http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20from%20html%20where%20url=%22".$url."%22%20AND%20xpath=%22//a[@class='js-nav']/strong%22&format=json"); // Opening the Query URL
            $data = json_decode($data); // Decoding the obtained JSON data
            $count = intval($data->query->results->strong[2]); // The count parsed from the JSON
            return $count; // Printing the count
    }

Danach passen wir die Twitter-Codestelle noch einmal an:

if(trim($arr['twitterName'])) {
            $followercount=$this->get_twitter_followers("http://twitter.com/".$arr['twitterName']);
            $this->twitter = (int) $followercount;

Die Funktion „get_twitter_followers“ macht nichts anderes, als die offizielle Twitterseite zu nutzen, um das Profil aufzurufen, und dann über XPATH den Wert des Followeranzahl-HTMl-Elements auszulesen.

Nachdem man die Änderungen vollzogen hat, muss man eine Weile warten, bis das Plugin die Statistiken erneuert. Dann sollte die Twitter-Followeranzahl auch wieder stimmen :)

Fazit

Man kann alles wieder in Ordnung bringen und muss nicht gleich das Plugin deinstallieren. Falls ihr zufällig Twitter nutzt, und der Post euch geholfen hat, dann folgt uns doch einfach ;)

Twitter-Profil: https://twitter.com/Blogbasis

~ Sebastian

]]>
https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013/feed 0
WP-Highlight.js Plugin zerstört RSS Feed – Lösung des Problems https://technik.blogbasis.net/wp-highlight-js-plugin-zerstoert-rss-feed-loesung-des-problems-08-10-2013 https://technik.blogbasis.net/wp-highlight-js-plugin-zerstoert-rss-feed-loesung-des-problems-08-10-2013#respond Tue, 08 Oct 2013 00:07:49 +0000 http://technik.blogbasis.net/?p=927 Vielleicht haben es einige von euch mitbekommen, dass in den letzten Wochen der RSS Feed aller Blogbasis-Kategorien nicht mehr funktionierte. Es dauerte eine Weile, bis ich das Problem finden und beheben konnte. Der Übeltäter war das Plugin „wp-highlight.js“.

Was war das Problem?

Das Problem bestand darin, dass auf merkwürdige Weise eine Leerzeile am Anfang des RSS Feeds eingefügt wurde. Da der RSS-Feed im XML-Format vorliegt, und der XML-Parser sehr strikt mit Fehlern umgeht, wurde einfach der RSS Feed als „kaputt“ eingestuft.

Folgender XML-Fehler erschien als Diagnose:

This page contains the following errors:

error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

Der Lösungsversuch

Nach ein wenig Googlen wusste ich, dass das Problem enstehen kann, wenn entweder vor „<?php“ bzw. nach „?>“ eine Leerzeile in einer PHP-Datei steht. Es wurden auch einige potentielle Fehlerquellen vorgestellt, wie z.B. wp-config.php. Nach einem Check dieser Dateien schien jedoch alles soweit in Ordnung. Die Suche ging weiter…

Mein nächster Verdacht bestand in einigen Plugins. Ich nutze Yoasts SEO Plugin zum Erstellen der Sitemaps bzw. des RSS-Feeds. Eine testweise Deaktivierung des Plugins brachte allerdings nicht den gewünschten Effekt.

Die Lösung

Nach einer längeren Zeit des Verzweifelns entschied ich mich auf Empfehlung von „@Yakuza112“ alle Plugins zu deaktivieren. Dieser Schritt zeigte einen ersten Erfolg, denn der Feed war wieder in Ordnung. In dem ich jedes Plugin einzeln aktivierte, konnte ich am Ende den Übeltäter identifizieren.

Es handelte sich um das Plugin „WP-Highlight.js“. Das Ergebnis überraschte mich ein wenig, denn das Plugin lief zuvor einwandfrei. Nun gut, ein weiterer Blick in die entsprechende PHP-Datei

wp-content/plugins/wp-highlightjs/wp_highlight.js.php

brachte die überflüssige Leerzeile hervor (Am Ende der Datei). Wenn man diese Zeile löscht, und die Datei abspeichert, dann funktioniert alles wieder wie es soll. WIN!

Fazit

Es ist erstaunlich, was so eine Leerzeile alles anrichten kann :( Außerdem sollte man daraus lernen, dass halbe Sachen nichts bringen ;)

An der Stelle nochmal ein „Entschuldigung!“ an alle Leser die in dem Zeitraum unseren Feed nicht nutzen konnten.

~ Sebastian

]]>
https://technik.blogbasis.net/wp-highlight-js-plugin-zerstoert-rss-feed-loesung-des-problems-08-10-2013/feed 0
WordPress postview-counter einrichten https://technik.blogbasis.net/wordpress-postview-counter-einrichten-14-08-2013 https://technik.blogbasis.net/wordpress-postview-counter-einrichten-14-08-2013#respond Wed, 14 Aug 2013 21:02:28 +0000 http://technik.blogbasis.net/?p=841 In diesem Blogartikel beschreibe ich den Vorgang des Einrichtens eines Postview-counters. Dieser zählt die einzelnen Aufrufe jedes Blogartikels.

Der Autor „aberlin“ hatte mich zwischendurch gefragt, ob ich ihm nicht sagen könnte, wie viele Aufrufe seine Beiträge haben. Zur Trafficanalyse nutzen wir das quell-offene System Piwik. Dieses bietet leider nicht direkt die Möglichkeit nachzuschauen, wie viele Besuche auf einer URL stattgefunden haben.

Die Lösung: Das WP-Postview Plugin

Die Lösung des Problems ist relativ einfach. Es gibt ein kleines Plugin, welches die gewünschte Funktionalität bietet. Nach der Installation des Plugins sollte im Menüpunkt „Einstellungen“->“Postviews“ die folgende Seite erscheinen:

Postviews Plugin Einstellungen

Postviews Plugin Einstellungen

Das Plugin könnt ihr nach eurem Geschmack konfigurieren, doch es bieten sich die im Screenshot gezeigten Einstellungen an.

Bis hierhin war das der einfache Teil der Einrichtung. Jetzt muss man nämlich noch an der gewünschten Stelle im Theme die Funktion

the_views();

einbinden.

Ich habe den Zähler im unteren Bereich des Artikels eingebunden, wie man es auf dem folgenden Screenshot erkennen kann:

Postview Counter Beispiel

Postview Counter Beispiel

Um das genauso umzusetzen, muss man im Theme-Editor die Datei „content.php“. Diese findet sich unter „wp-content/themes/[THEMENAME]/content.php“. Dort findet sich unter anderen der folgende Code im unteren Teil der Datei:

Postview Count im Theme

Postview Count im Theme

Ihr müsst also nur in dem Footer (oder Header) ein „<span>“-Tag mit dem gewünschten Text und dem kleinen Stück PHP-Code dort eintragen. In meinem Beispiel ist dies also:

<span>Der Beitrag wurde <?php the_views(); ?> Mal aufgerufen.</span>

Ich sollte hier vielleicht noch anmerken, dass wirklich jeder Aufruf der Seite gezählt wird. Lädt jemand eine Seite neu, wird der Zähler direkt erhöht. Man sollte den Zahlen im Zweifel eher kritisch gegenüber stehen.

Fazit

Die Anzahl der Aufrufe kann potentieller Leser dazu bringen einen Artikel zu lesen, genauso wie es auch das Gegenteil bewirken kann. Da ich jedoch ein Statistik-Freak bin, kann ich dem Postview-Counter nur positives abgewinnen :)

~ Sebastian

]]>
https://technik.blogbasis.net/wordpress-postview-counter-einrichten-14-08-2013/feed 0
WordPress – Erlaubte Upload-Datentypen einstellen https://technik.blogbasis.net/wordpress-erlaubte-upload-datentypen-einstellen-08-05-2013 https://technik.blogbasis.net/wordpress-erlaubte-upload-datentypen-einstellen-08-05-2013#respond Wed, 08 May 2013 22:58:01 +0000 http://technik.blogbasis.net/?p=525 Unser TgZero hat vor einigen Tagen seinen Blogpost über das Anhängen von Daten an ausführe Dateien geschrieben. Den dazugehörigen Quelltext hat er in einem Archiv veröffentlicht. Das ist leider bei der Standardinstallation von WordPress nicht ohne weiteres möglich, denn die Datentypen für den Medienbereich sind beschränkt.

Es bedarf einem kleinen Eingriff in den Quellcode von WordPress, um eigene Dateitypen zu erlauben bzw. für den Upload freizuschalten.

Der Eingriff in den Quellcode

Die Änderungen werden wir in der „functions.php“ des jeweiligen Themes durchführen. Die Datei findet ihr entweder unter „/wp-content/themes/THEMENAME/functions.php“ oder über Design->Editor->Theme-Funktionen(functions.php).

Dort fügen wir zunächst die folgende Zeile hinzu:

add_filter( 'upload_mimes', 'edit_upload_mimes' );

Das wird später die von uns geschriebene „edit_upload_mimes“ Funktion aufrufen, wenn die Funktion „upload_mimes“ aufgerufen wird.

In der angesprochenen Funktion werden wir einfach die gewünschten, fehlenden Dateiendungen bzw. Mime-Types hinzufügen. Hier habe ich die gängigen Archive freigeschaltet:

function edit_upload_mimes($mimes) {
     $mime_types = array( 
        'pdf' => 'application/pdf',
        'tar' => 'application/x-tar',
         'zip' => 'application/zip',
        'gz|gzip' => 'application/x-gzip',
        'rar' => 'application/rar',
        '7z' => 'application/x-7z-compressed'
     );
    return array_merge($mime_types,$mimes);              
}

Wir erstellen ein neues Array, in dem wir unsere gewünschten Dateiendungen festlegen, und führen dieses mit den voreingestellten Dateitypen zusammen. Somit haben wir nun die Kontrolle über die zusätzlichen Dateitypen.

Die Änderungen müssen dann nur noch abgespeichert werden. Man sollte darauf achten, keine „kritischen“ Dateitypen (z.B. html/php/cgi/usw.) zu erlauben, denn ansonsten gefährdet man ggf. seine WordPress-Installation.

Die Auswahl

Die Auswahl an möglichen Dateitypen ist eigentlich unbegrenzt. Eine Übersicht möchte ich dennoch liefern, damit man sich die nötigen Einträge zusammenstellen kann:

    'jpg|jpeg|jpe' => 'image/jpeg',
    'gif' => 'image/gif',
    'png' => 'image/png',
    'bmp' => 'image/bmp',
    'tif|tiff' => 'image/tiff',
    'ico' => 'image/x-icon',
    // Video formats
    'asf|asx|wax|wmv|wmx' => 'video/asf',
    'avi' => 'video/avi',
    'divx' => 'video/divx',
    'flv' => 'video/x-flv',
    'mov|qt' => 'video/quicktime',
    'mpeg|mpg|mpe' => 'video/mpeg',
    'mp4|m4v' => 'video/mp4',
    'ogv' => 'video/ogg',
    'mkv' => 'video/x-matroska',
    // Text formats
    'txt|asc|c|cc|h' => 'text/plain',
    'csv' => 'text/csv',
    'tsv' => 'text/tab-separated-values',
    'ics' => 'text/calendar',
    'rtx' => 'text/richtext',
    'css' => 'text/css',
    'htm|html' => 'text/html',
    // Audio formats
    'mp3|m4a|m4b' => 'audio/mpeg',
    'ra|ram' => 'audio/x-realaudio',
    'wav' => 'audio/wav',
    'ogg|oga' => 'audio/ogg',
    'mid|midi' => 'audio/midi',
    'wma' => 'audio/wma',
    'mka' => 'audio/x-matroska',
    // Misc application formats
    'rtf' => 'application/rtf',
    'js' => 'application/javascript',
    'pdf' => 'application/pdf',
    'swf' => 'application/x-shockwave-flash',
    'class' => 'application/java',
    'tar' => 'application/x-tar',
    'zip' => 'application/zip',
    'gz|gzip' => 'application/x-gzip',
    'rar' => 'application/rar',
    '7z' => 'application/x-7z-compressed',
    'exe' => 'application/x-msdownload',
    // MS Office formats
    'doc' => 'application/msword',
    'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
    'wri' => 'application/vnd.ms-write',
    'xla|xls|xlt|xlw' => 'application/vnd.ms-excel',
    'mdb' => 'application/vnd.ms-access',
    'mpp' => 'application/vnd.ms-project',
    'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
    'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
    'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
    'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
    'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
    'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
    'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
    'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
    'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
    'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
    'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
    'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
    'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
    'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
    'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
    'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
    'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
    'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
    // OpenOffice formats
    'odt' => 'application/vnd.oasis.opendocument.text',
    'odp' => 'application/vnd.oasis.opendocument.presentation',
    'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
    'odg' => 'application/vnd.oasis.opendocument.graphics',
    'odc' => 'application/vnd.oasis.opendocument.chart',
    'odb' => 'application/vnd.oasis.opendocument.database',
    'odf' => 'application/vnd.oasis.opendocument.formula',
    // WordPerfect formats
    'wp|wpd' => 'application/wordperfect',

Fazit

Ich finde es schade, dass WordPress keine Einstellungsmöglichkeit im Backend bietet (oder habe ich die nicht gefunden?), und man diese Einstellungen nur über quasi-direkte Eingriffe in den Quelltext treffen kann.

~ Sebastian

]]>
https://technik.blogbasis.net/wordpress-erlaubte-upload-datentypen-einstellen-08-05-2013/feed 0
WPScan – Sicherheitsscanner für WordPress https://technik.blogbasis.net/wpscan-sicherheitsscanner-fuer-wordpress-26-03-2013 https://technik.blogbasis.net/wpscan-sicherheitsscanner-fuer-wordpress-26-03-2013#respond Tue, 26 Mar 2013 12:46:50 +0000 http://technik.blogbasis.net/?p=282 Gestern Abend bin ich auf das Tool WPScan gestoßen. Das möchte ich euch natürlich nicht vorenthalten und ein wenig vorstellen.

Was kann das Tool?

Mit diesem Tool kann man einige Informationen über eine WordPress Installation herausfinden. Dazu gehören:

  • Benutzernamen
  • Plugins
  • Themes
  • WordPressversion

Es ermöglicht ebenfalls das Durchführen von Brute Force Attacken mit Hilfe einer Wörterliste und einem angegebenen Benutzernamen. 

WPScan installieren

Man benötigt für das Tool eine Version von ruby (am Besten 2.0.0). Wie man ruby installiert, möchte ich an dieser Stelle nicht erklären.  Die entsprechenden Abhängigkeiten lassen sich einfach per apt installieren:

sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev git

Danach clonen wir das git-Repository und wechseln in das neue Verzeichnis:

git clone https://github.com/wpscanteam/wpscan.git
cd wpscan

Zuletzt müssen wir nur noch die entsprechende Umgebung erstellen:

sudo gem install bundler && bundle install --without test development

Es bietet sich nach der Installation an, ein Update der Plugin/Theme-Dateien durchzuführen. Dies können wir mit Hilfe des wpstools.rb machen:

ruby wpstools.rb --generate-all

Dies kann einige Minuten dauern.

WPScan nutzen

Die Hilfe sagt eigentlich schon alles zur Nutzung:

-Do 'non-intrusive' checks ...
ruby wpscan.rb --url www.example.com

-Do wordlist password brute force on enumerated users using 50 threads ...
ruby wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50

-Do wordlist password brute force on the 'admin' username only ...
ruby wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin

-Enumerate installed plugins ...
ruby wpscan.rb --url www.example.com --enumerate p

-Enumerate installed themes ...
ruby wpscan.rb --url www.example.com --enumerate t

-Enumerate users ...
ruby wpscan.rb --url www.example.com --enumerate u

-Enumerate installed timthumbs ...
ruby wpscan.rb --url www.example.com --enumerate tt

-Use a HTTP proxy ...
ruby wpscan.rb --url www.example.com --proxy 127.0.0.1:8118

-Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)
ruby wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000

-Use custom content directory ...
ruby wpscan.rb -u www.example.com --wp-content-dir custom-content

-Use custom plugins directory ...
ruby wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins

Je nach gewünschter Aktion muss man die entsprechenden Optionen nutzen. Ruft man WPScan nur mit der URL auf, dann bekommt man beispielsweise folgende Ausgabe:

| URL: http://blogbasis.net/
| Started on Tue Mar 26 13:36:05 2013

[+] robots.txt available under 'http://blogbasis.net/robots.txt'
[+] This site seems to be a multisite (http://codex.wordpress.org/Glossary#Multisite)
[+] XML-RPC Interface available under http://blogbasis.net/xmlrpc.php
[+] WordPress version 3.5.1 identified from advanced fingerprinting

[+] The WordPress theme in use is whitelake v1.0

 | Name: whitelake v1.0
 | Location: http://blogbasis.net/wp-content/themes/whitelake/
 | WordPress: http://wordpress.org/extend/themes/whitelake/

[+] Enumerating plugins from passive detection ... 
2 plugins found :

 | Name: social-counter-widget v0.8.1
 | Location: http://blogbasis.net/wp-content/plugins/social-counter-widget/
 | WordPress: http://wordpress.org/extend/plugins/social-counter-widget/
 | Readme: http://blogbasis.net/wp-content/plugins/social-counter-widget/readme.txt

 | Name: wp-highlightjs v0.2.2
 | Location: http://blogbasis.net/wp-content/plugins/wp-highlightjs/
 | WordPress: http://wordpress.org/extend/plugins/wp-highlightjs/
 | Readme: http://blogbasis.net/wp-content/plugins/wp-highlightjs/readme.txt

[+] Finished at Tue Mar 26 13:36:11 2013
[+] Elapsed time: 00:00:05

WPScan führt eine Liste mit bekannten Sicherheitslücken in (veralteten) Plugins. Wird ein Plugin oder Theme entdeckt, welches Sicherheitslücken aufweist, so zeigt dies WPScan an. Es wird in einem solchen Fall eine URL zum Advisory ausgegeben.

Ich werde hier die weiteren Nutzungsmöglichkeiten nicht aufführen, da diese immer nach dem gleichen Schema ablaufen: Man startet wpscan.rb mit den gewünschten Parametern und es liefert den entsprechenden Output.

Fazit

WPScan ist ein nützliches Tool, wenn man Informationen über eine WordPress-Installation herausfinden möchte. Dadurch, dass es zuverlässig die Informationen liefert, welche man haben möchte, seien es Plugins, Benutzernamen oder die WordPressversion, kann man es zur Absicherung der eigenen WordPressinstallation nutzen.

 

]]>
https://technik.blogbasis.net/wpscan-sicherheitsscanner-fuer-wordpress-26-03-2013/feed 0