Portswigger-2FA simple bypass
풀이
wiener:peter 계정을 이용해 로그인할 수 있다. carlos:montoya 계정으로 접속할 수 있는데, 2FA를 통과해야 한다. Carlos의 “My account” 페이지에 접속해야 한다.

로그인을 하면 2FA 코드를 입력한다. 2FA 코드는 이메일로 온다.

이메일로 받은 코드를 등록하면 mfa-code 파라미터로 설정되어 간다. 4자리 숫자의 코드를 이용한다. 잘못된 코드를 입력하면 로그아웃된다.

하지만 2FA를 하지 않고 그냥 홈으로 돌아가거나 다른 페이지로 이동하면 로그인이 되어있다. 그냥 2FA 코드 입력 창에서 입력을 하지 않고 다른 곳으로 이동하면 성공한다.
이 취약점은 사용자가 무조건 계획된 워크 플로우에 따라 행동할 것이라고 잘못 가정하여 생긴 취약점이다. 로그인을 절반만 한 상태에서 로그인이 필요 없는 위치로 이동하는 상황 등을 제대로 처리하지 못한 듯 하다.
tags: writeup, business-logic-vul, wstg-busl-06, web hacking