Vor Kurzem durfte ich für einen großen Kunden ein ziemlich spannendes Projekt betreuen: eine umfangreiche WordPress-Website, die aus rechtlichen Gründen einem OWASP Penetrationstest unterzogen werden musste. Und ja, das klingt erst mal ziemlich ernst. Aber ehrlich gesagt? Ich hatte richtig Spaß daran. Denn wann bekommt man schon mal die Gelegenheit, die eigene Website von Profis „angreifen“ zu lassen, um zu sehen, wie gut sie wirklich dasteht?
Und weil ich mich nun so intensiv mit diesem Thema beschäftigt habe, schreibe ich es mal auf. Für mich, für euch und für alle, die ihre Website besser schützen wollen.
Was ist überhaupt ein OWASP Pen-Test?
Falls ihr den Begriff noch nie gehört habt:
OWASP steht für Open Web Application Security Project. Das ist eine Non-Profit-Organisation, die sich weltweit mit der Sicherheit von Webanwendungen beschäftigt. Sie veröffentlicht regelmäßig die sogenannten OWASP Top 10. Das sind die zehn häufigsten und gefährlichsten Sicherheitslücken im Web.
Ein Penetrationstest nach OWASP-Standards prüft, ob eine Website für solche Angriffe anfällig ist. Das läuft nicht automatisch, sondern echte Menschen versuchen in euer System einzudringen. Natürlich im Auftrag und mit freundlicher Absicht. Das Ziel: Schwachstellen aufdecken, bevor sie jemand anderes ausnutzt.
Wie sicher ist WordPress im Vergleich zu anderen CMS?
Diese Frage bekomme ich oft gestellt und sie ist gar nicht so leicht pauschal zu beantworten. WordPress ist mit über 40 % Marktanteil das weltweit meistgenutzte Content-Management-System. Genau das macht es gleichzeitig attraktiv für Angreifer. Wo viele Installationen existieren, lohnt sich der Aufwand für Hacker besonders. Aber WordPress selbst ist im Kern nicht unsicherer als andere CMS wie Joomla, Drupal oder Typo3. Die eigentliche Schwachstelle liegt fast immer in der Nutzung.
Während Systeme wie Drupal von Haus aus restriktiver konfiguriert sind, punktet WordPress durch seine große Flexibilität. Und genau diese Offenheit verlangt etwas mehr Verantwortungsbewusstsein bei der Wartung. Wer regelmäßig aktualisiert, sichere Plugins auswählt und grundlegende Sicherheitsmaßnahmen umsetzt, kann eine WordPress-Seite genauso sicher betreiben wie jedes andere CMS auch.
Vorbereitung ist (fast) alles
Ich wusste, dass der Test kommt und habe mich dementsprechend vorbereitet. Ich habe mir die OWASP Top 10 geschnappt, jede einzelne Schwachstelle durchgelesen und geschaut, wie sie sich in WordPress vermeiden lässt.
Nachfolgend habe ich diese 10 Schwachstellen aufgelistet und was sie grob bedeuten.
| Punkt | Risiko |
|---|---|
| A01: Broken Access Control | Zugriffsbeschränkungen funktionieren nicht korrekt (z. B. kann jemand auf Inhalte zugreifen, die eigentlich geschützt sind) |
| A02: Cryptographic Failures | Unsichere oder fehlende Verschlüsselung von Daten (z.B. Klartext-Passwörter oder fehlendes HTTPS) |
| A03: Injection | Fremde Eingaben über Formulare oder Suchfelder (z. B. SQL, HTML, Command Injection) werden nicht korrekt gefiltert und führen zu gefährlichem Code |
| A04: Insecure Design | Sicherheitsaspekte wurden in der Architektur oder Logik gar nicht eingeplant (z. B. Rollen, Rechte, Passwortregeln) |
| A05: Security Misconfiguration | Falsche oder fehlende Server-, WordPress- oder Plugin-Einstellungen |
| A06: Vulnerable and Outdated Components | Plugins oder Themes mit bekannten Sicherheitslücken |
| A07: Identification and Authentication Failures | Fehler bei Logins z. B. fehlende 2-Faktor-Authentifizierung, unzureichendes Logout |
| A08: Software and Data Integrity Failures | Manipulierte Software oder fehlerhafte Updates, z. B. durch unsichere Update-Prozesse oder -Quellen |
| A09: Security Logging and Monitoring Failures | Fehlende oder unzureichende Überwachung von Angriffen oder Fehlversuchen |
| A10: Server-Side Request Forgery (SSRF) | Der Server wird über manipulierte Requests dazu gebracht, interne Ressourcen aufzurufen |
Manches davon ist leicht umsetzbar, anderes erfordert tiefere Kenntnisse. Ich habe versucht, die Punkte nach Schwierigkeit zu sortieren. Falls etwas fehlt oder ihr noch ein interessantes Tool kennt, schreibt es gern in die Kommentare.
Wie man Sicherheitslücken vermeidet – Für Beginner
Am Anfang geht’s gar nicht darum, alles perfekt zu machen, sondern die Grundlagen zu verstehen. Schon mit ein paar einfachen Einstellungen könnt ihr eure Website deutlich sicherer machen. Die meisten dieser Punkte dauern keine zehn Minuten, bringen aber jede Menge Ruhe im Bauchgefühl.
- Regelmäßige Updates:
Klingt banal, ist aber essenziell. Viele Sicherheitslücken entstehen schlicht durch veraltete Versionen. In meinem Artikel über Updates gibt es ein paar Tipps, wie das auch ohne Stress geht. - Login- und Benutzerverwaltung absichern:
Nutzt starke Passwörter, Zwei-Faktor-Authentifizierung (z.B. mit dem Plugin Two Factor) und überprüft Benutzerrollen regelmäßig auf Notwendigkeit (vor allem Admins!). Mit dem Plugin Limit Login Attempts Reloaded begrenzt ihr die Anzahl an zulässigen Anmeldeversuchen. Hier erfahrt ihr mehr über sichere Logins. - Backups & Monitoring:
Automatisierte Backups helfen im Ernstfall schnell zu reagieren. Mit dem Plugin Updraft Plus könnt ihr einstellen wie oft und welche Dateien gesichert und wo sie gespeichert werden sollen. - Minimalprinzip umsetzen:
Nur so viele Plugins wie nötig. Jedes zusätzliche Plugin bedeutet auch mehr potenzielle Angriffsfläche. - SSL für die gesamte Website:
Mittlerweile ist ein SSL-Zertifikat Standard, aber es kann passieren, dass nicht die gesamte Seite auf HTTPS umgestellt ist. Ob das bei euch der Fall ist, überprüft ihr mit dem Online-Service Why no Padlock? Mehr über SSL und wie ihr es einstellt, erfahrt ihr hier.
Wie man Sicherheitslücken vermeidet – für Fortgeschrittene
Wenn ihr WordPress regelmäßig nutzt, kommt ihr irgendwann an den Punkt, an dem ihr ein bisschen mehr Kontrolle wollt.
Welche Daten gebt ihr preis, was läuft automatisiert im Hintergrund und wie könnt ihr das alles sicherer machen, ohne euch selbst auszubremsen? Hier beginnt der spannende Teil, wo ihr merkt: Sicherheit ist kein Hexenwerk, sondern solides Handwerk.
- Security Header konfigurieren:
Mit Hilfe von securityheaders.com könnt ihr eure Website checken und ermitteln welche Security Header fehlen. Richtig konfigurieren könnt ihr sie mit z.B. Probely (Online-Dienst und dann Eintrag in die .htaccess) oder dem Plugin HTTP Headers. - xmlrpc deaktivieren (wenn nicht benötigt):
Diese alte Remote-Schnittstelle wird kaum noch gebraucht und ist anfällig. Ein einfaches Snippet in der functions.php genügt, um sie abzuschalten. - Formulare durch CAPTCHA absichern:
Um sich vor Brute-Force-Angriffe zu schützen, ist die Begrenzung der Einträge wichtig. Ein einfaches CAPTCHA ist da schon hilfreich.
Wie man Sicherheitslücken vermeidet – für Profis
Jetzt geht’s um Themen, bei denen man auch mal ins Terminal oder auf den Server schaut.
- WP-Cron durch Serverseitigen Cron ersetzen:
Der eingebaute WP Cron läuft nur, wenn jemand die Website aufruft – Angreifer können das ausnutzen oder Tasks manipulieren. Ein echter Server-Cron sorgt für verlässliche, sichere Ausführung unabhängig vom Website-Traffic. - REST API granular absichern:
Die REST API ist praktisch, aber jeder offene Endpoint kann Daten preisgeben oder missbraucht werden. Unnötige Endpoints sollte man abschalten. Achtung: Der Block Editor benötigt die REST API im Backend! - Plugins mit Patchstack vorab prüfen:
In unserem Pen-Test gab es tatsächlich zwei Plugins mit veralteten Vue-Bibliotheken. Die Datenbank von Patchstack überwacht Schwachstellen und hier kann man sich zuverlässig informieren, bevor man Plugins verwendet. Ein Plugin-Autor hat sofort reagiert und Vue aktualisiert. Ein anderer hat es leider abgelehnt. Wir haben das Plugin daraufhin ersetzen müssen. - Test mit WPScan oder OWASP ZAP:
Simuliert einen Pen-Test und schaut direkt nach Schwachstellen mit diesen beiden Open Source Tools.
Fazit: Pen-Tests tun nicht weh
Am Ende des Tages war der OWASP-Test kein Grund zur Panik, sondern eine richtig gute Erfahrung. Ich habe mehr über WordPress-Sicherheit gelernt als in unzähligen Blogartikeln zuvor und ein paar neue Routinen etabliert, die ich sicher beibehalten werde.
Und falls ihr selbst mit WordPress arbeitet:
Nehmt euch ruhig mal die Zeit, eure Website unter Sicherheitsaspekten zu betrachten.
Nicht aus Angst, sondern aus Neugier.



