Nell'API di reCAPTCHA (senza plug-in), la parte chiave è
<iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key"height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
value="manual_challenge">
Il sito web che incorpora questa API richiede effettivamente all'utente di recuperare un iframe da reCAPTCHA utilizzando una chiave pubblica . Supponiamo che stackexchange stia usando reCAPTCHA e che abbia una chiave pubblica A. E voglio attaccare stackexchange aggirando il suo CAPTCHA.
Supponiamo di avere un sito Web con utenti legittimi. Posso incorporare un'API reCAPTCHA nel mio sito Web che utilizza la chiave pubblica A, che è la chiave pubblica reCAPTCHA di stackexchange. Ora dopo che i miei utenti hanno risolto il CAPTCHA, presenteranno un ID sfida CAPTCHA e una soluzione al mio sito web. Successivamente, posso inviare lo stesso ID challenge e la soluzione a stackexchange utilizzando uno script automatico. Quindi ho superato con successo la sfida CAPTCHA di stackexchange.
Non sono sicuro che questo attacco sia pratico o meno. Supponiamo che il browser dei miei utenti non riempia il campo del referrer HTTP nella richiesta di reCAPTCHA, il che impedisce a reCAPTCHA di sapere che il mio sito Web sta effettivamente utilizzando la chiave pubblica di stackexchange.