
CodePath-Aufgabe für Woche 7 und 8: CVE-2017-14719, CVE-2019-9787 & Nicht authentifizierte Seiten-/Beitragsinhaltsänderung über REST-API
CodePath Aufgabe für Wochen 7 & 8: CVE-2017-14719, CVE-2019-9787 & Unauthenticated Page/Post Content Modification via REST API
Zeitaufwand: 16 Stunden insgesamt
Ziel: Finden, analysieren, nachstellen und dokumentieren von Sicherheitslücken, die eine alte Version von WordPress betreffen
- [ ] Schritte zum Nachstellen: Wenn ein Angreifer Zugang zu einem Admin-Konto erlangt hat, kann er auf den Button „Plugins“ klicken und die installierten Plugins anzeigen. Neben jedem aufgelisteten Plugin befindet sich ein „Löschen“-Button. Wenn dieser gedrückt wird, gelangt der Angreifer zu einer Seite, auf der der Admin den Inhalt des Verzeichnisses sehen kann, das er/sie löschen möchte, bevor eine dauerhafte Änderung vorgenommen wird. Auf dieser Seite kann der Angreifer den Namen des Plugins aus der URL entfernen (direkt nach checked[0]= und vor dem '&'). Der Angreifer ersetzt den Plugin-Namen durch ein oder mehrere „../“-Zeichen, bis er das gewünschte Verzeichnis erreicht hat.
- [ ] Betroffener Quellcode:
- https://core.trac.wordpress.org/browser/tags/3.8/src/wp-admin/plugins.php


#######################################################################################
########################################################################################
Ich habe Python-Exploit-Code von dieser URL verwendet: https://www.exploit-db.com/exploits/41223
Während der Arbeit an 'Unauthenticated Page/Post Content Modification via REST API' trat ein Importfehler für die Python-Datei auf, da das Paket lxml nicht installiert war. Nach der Installation von lxml versuchte ich erneut, 'python [exploit_file_name].py http://wpdistillery.vm' auszuführen. Hier stieß ich auf mein zweites Problem: Ich erhielt einen UnicodeEncodeError. Ich löste dieses Problem, indem ich überflüssige Beiträge löschte, die das nicht im Bereich liegende Ordinal enthielten.

Ich erstellte einen neuen Beitrag mit einfachem Textinhalt und führte das Skript erneut aus. Es wurde erfolgreich ausgeführt, entdeckte die API-Endpunkte und ermittelte die verfügbare Beitrags-ID, den Titel und den Link.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.