关于WordPress插件 Web3 – Crypto wallet Login & NFT token gating < 3.0.0 - 认证绕过 的POC
该漏洞源于handle_login_request函数和handle_auth_request函数中不正确的身份验证检查,导致认证绕过。
笔者将登录流程分为3个步骤,实际上是通过Web3钱包登录时的3个不同POST请求。


通过这个POST请求,任何人可以检索现有用户的随机数(nonce),因此只需知道用户名或钱包地址,将参数“address”替换为用户名并发送POST请求,即可获取管理员用户的随机数。
然后,您可以跳过登录的第二个POST请求,因为该步骤仅检查随机数的签名是否正确,并且与登录流程隔离。


在第3步中,您只需发送以下内容即可完成登录:
• 目标用户名
• 目标随机数(来自步骤1)
• 公共wp nonce


因此,本质上第3步没有检查尝试登录的用户是否与第2步签署签名的用户相同;任何人都可以绕过身份验证登录,并可能以管理员用户身份执行操作。
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