
Web3 – Crypto 지갑 로그인 및 NFT 토큰 게이팅 < 3.0.0 - 인증 우회 Wordpress 플러그인에 대한 POC
Wordpress 플러그인 Web3 – Crypto wallet Login & NFT token gating < 3.0.0 - 인증 우회 에 대한 POC
이 취약점은 ‘handle_login_request’ 함수와 ‘handle_auth_request' 함수의 잘못된 인증 확인으로 인한 인증 우회에 관한 것입니다.
로그인 플로우를 3단계로 나누었습니다. 이 3단계는 실제로 web3 지갑으로 로그인할 때 발생하는 3개의 서로 다른 POST 요청입니다.


이 POST 요청을 통해 누구나 기존 사용자의 nonce를 조회할 수 있습니다. 따라서 관리자(admin) 사용자의 사용자 이름이나 지갑 주소만 알면 “address” 파라미터를 해당 사용자 이름으로 바꿔 POST 요청을 전송함으로써 관리자 사용자의 nonce를 얻을 수 있습니다.
그런 다음 두 번째 로그인 POST는 생략할 수 있습니다. 이 POST는 nonce의 서명이 올바른지 여부만 확인할 뿐 로그인 플로우와 분리되어 있기 때문입니다.


3단계에서는 다음 항목만 전송하면 로그인할 수 있습니다:
• 대상 사용자 이름
• 대상 nonce(1단계에서 획득)
• 공개 wp nonce


즉, 기본적으로 3단계에서 로그인을 시도하는 사용자가 2단계에서 서명을 생성한 사용자와 동일한지 확인하지 않습니다. 따라서 누구나 인증 로그인을 우회할 수 있으며, 잠재적으로 관리자(admin) 사용자로 로그인할 수 있습니다.
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