
POC über Web3 – Crypto-Wallet-Login & NFT-Token-Gating < 3.0.0 - Authentifizierungs-Bypass WordPress-Plugin
POC zum WordPress-Plugin Web3 – Crypto wallet Login & NFT token gating < 3.0.0 - Authentication Bypass
Diese Schwachstelle betrifft einen Authentication Bypass aufgrund fehlerhafter Authentifizierungsprüfung in der Funktion ‚handle_login_request' und der Funktion ‚handle_auth_request'
Ich habe den Login-Ablauf in 3 Schritte unterteilt, die tatsächlich 3 verschiedene POST-Requests sind, wenn man sich über unsere Web3-Wallet anmeldet.


Mit diesem POST-Request kann jeder eine vorhandene User-Nonce abrufen, sodass man die Nonce des Admin-Benutzers erhalten kann, indem man nur seinen Benutzernamen oder seine Wallet kennt. Dazu ersetzt man den Parameter „address" durch seinen Benutzernamen und sendet den POST-Request.
Danach kann man den zweiten Login-POST weglassen, da dieser nur prüft, ob die Signatur der Nonce korrekt ist oder nicht, aber er ist vom Login-Ablauf isoliert.


Im 3. Schritt kann man den Login einfach durchführen, indem man Folgendes sendet:
• Ziel-Benutzernamen
• Ziel-Nonce (aus Schritt 1)
• öffentliche WP-Nonce


Im Grunde wird also nicht geprüft, dass der Benutzer, der sich im 3. Schritt anmeldet, derselbe Benutzer ist, der die Signatur in Schritt 2 erstellt hat; und jeder kann den Auth-Login umgehen und dies möglicherweise als Admin-Benutzer tun.
https://wpscan.com/vulnerability/7f30ab20-805b-422c-a9a5-21d39c570ee4
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-6036
https://www.udemy.com/course/0-day-wordpress/?referralCode=7039562B316447367B85