
POC о Web3 – Crypto wallet Login & NFT token gating < 3.0.0 - обход аутентификации плагина WordPress
POC об уязвимости плагина Wordpress Web3 – Crypto wallet Login & NFT token gating < 3.0.0 - Authentication Bypass
Эта уязвимость связана с обходом аутентификации из-за некорректной проверки аутентификации в функциях ‘handle_login_request’ и ‘handle_auth_request'
Я разделил процесс входа на 3 шага, которые на самом деле являются 3 разными POST-запросами при входе через наш web3-кошелёк.


С помощью этого POST-запроса любой может получить существующий nonce пользователя, так что можно получить nonce администратора, просто зная его имя пользователя или кошелёк, подставив в параметр “address” имя пользователя и выполнив POST-запрос.
Затем можно пропустить второй POST-запрос входа, поскольку он лишь проверяет, корректна ли подпись nonce, но он изолирован от процесса входа.


На 3-м шаге можно выполнить вход, просто отправив:
• имя целевого пользователя
• целевой nonce (с шага 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