Un utente ha chiesto informazioni su Constant Contact Forms di Wordpress

ReCAPTCHA può essere bypassato

Un utente ha chiesto 👇

Stiamo ricevendo invii di “spam” alla nostra Newsletter Firma. Ho provato a usare Postman e ho rimosso il campo “g-recaptcha-response”. Tuttavia, se reCAPTCHA è impostato nel plug-in, ti aspetteresti che un errore rimuova completamente quel campo. Invece otteniamo una risposta “positiva”. Lasciando il campo funziona e rendendolo vuoto o il codice non valido funziona come previsto e otteniamo “controllo reCAPTCHA fallito”. Tuttavia, se riesco a rimuovere il campo “g-recaptcha-response” e funziona ancora, è un bug serio, ciò significa che un bot può postare su / wp-admin / admin-ajax. Php usando action = ctct_process_form e bypassare reCAPTCHA , e sembra che stia succedendo a noi.

Lanciatore di thread

(@geektome)

2 anni, 2 mesi fa

Se qualcun altro ha questa domanda, fino a quando il plugin non viene riparato … questo buco dovrebbe essere fermato applicando qualcosa del genere this.php:

add_action( 'init', 'recaptcha_init_fix' );
function recaptcha_init_fix() {
    if ($_REQUEST['action'] == 'ctct_process_form') {
        if (strpos($_REQUEST['data'], 'g-recaptcha-response') === false) {
            $aError['status'] = 'named_error';
            $aError['message'] = 'Failed reCAPTCHA check, g-recaptcha-response is missing.';
            wp_send_json($aError);
            exit;
        }
    }
}

Autore del plugin

(@contatto costante)

2 anni, 2 mesi fa

Ciao @geektome

Molto interessante e sicuramente molto mirato, ma comunque un caso molto valido. Registreremo internamente queste informazioni e scoperte come un problema su cui lavorare e li affronteremo ulteriormente nelle versioni future.

(@bburgay)

2 anni, 2 mesi fa

@contatto costante

Si prega di risolvere questo problema il prima possibile. I clienti si lamentano e vogliono sbarazzarsi di Constant Contact per tutto questo. Penso che sia lecito ritenere che questo sia il problema per tutti gli altri che si lamentano dello spam anche qui.

Autore del plugin

(@contatto costante)

2 anni, 2 mesi fa

@geektome e @bburgay Potete provare la seguente versione del plugin? Il numero di versione non è cambiato, ma è in vigore una modifica.

https://www.dropbox.com/s/0xel5ipd6ayfrf8/constant-contact-forms-recaptcha-bypass-fix.zip?dl=0

questa è la modifica specifica apportata, all’interno di class-process-form.php

if ( $this->plugin->settings->has_recaptcha() && ( empty( $data['g-recaptcha-response'] ) ) ) {
	return array(
		'status' => 'named_error',
		'error'  => __( 'We do no think you are human', 'constant-contact-forms' ),
	);
}

Controlla se dobbiamo usare reCAPTCHA e quindi se abbiamo un valore di risposta dai dati che stiamo elaborando. Se non lo facciamo, rifiuterà.

Lanciatore di thread

(@geektome)

2 anni, 2 mesi fa

Questo funziona, tuttavia, penso che stia davvero causando un errore ed è per questo che funziona … La mia risposta è: “Abbiamo avuto difficoltà a elaborare la tua richiesta. Si prega di controllare le voci e riprovare. “Non è quello pubblicato nel tuo codice sopra. Il problema non si è mai verificato quando g-recaptcha-response è vuoto ma quando non esiste affatto … perché non usare isset vs. empty? E ora che hai un vuoto controllare qualcosa che non è stato risolto, probabilmente stai commettendo un errore?

Autore del plugin

(@contatto costante)

2 anni, 2 mesi fa

Basato su https://www.codepunker.com/blog/is-null-vs-empty-vs-isset-one-lesson-all-php-coders-should-learn empty () è il più completo, che diceva che non siamo contrari ad aggiungere un po ‘di più a questo controllo, per paura che sarebbe necessario. Dovrebbe controllare se il file $data['g-recaptcha-response'] index esiste o no.

Il messaggio “Abbiamo avuto difficoltà a elaborare la tua richiesta. Si prega di rivedere le voci e riprovare. “è probabile che l’errore derivi dai pochi passaggi di verifica nonce se le istruzioni vengono ridotte.

Per curiosità e aiuto nel garantire la parità di test, come stai facendo le richieste di test? Ad esempio, stai applicando cURL sulla riga di comando con vari parametri POST impostati? Ci piacerebbe avere qualcosa che potremmo copiare / incollare per testare dalla nostra parte per aiutare ad affrontare questo argomento in modo più convincente.

(@bburgay)

2 anni, 2 mesi fa

@contatto costante

Non ho avuto il tempo di provarlo, ma sono venuto a vedere se è stato risolto. @ Geektome ha detto che stava usando Postman per testare: https://www.getpostman.com/. È anche un ottimo strumento gratuito che utilizzo.

(@bburgay)

2 anni, 2 mesi fa

@constantcontact @geektome

L’ho provato solo con Postman e ho anche rispettato il codice. Il blocco aggiuntivo viene lasciato se inserito e ottengo la risposta corretta con “g-recaptcha-response” omesso. Ricevo solo il messaggio “Abbiamo avuto difficoltà a elaborare la tua richiesta”. errore quando commento il nuovo se è un blocco e utilizzo un valore per “ctct_form” che non è più valido (non valido non valido).

@geektome Ho inviato la tua correzione temporanea da alcuni giorni (è stato anche eseguito il debug per assicurarmi che funzionasse) ma stiamo ancora ricevendo spam. Quindi sto iniziando a pensare che questo non sia l’unico problema con il plugin.

Ecco un’immagine che mostra come sto sperimentando con Postman https://pasteboard.co/HUMVYm6.jpg

Autore del plugin

(@contatto costante)

2 anni, 2 mesi fa

Sì, sappiamo anche di Postman.

Useremo queste informazioni fornite oggi per testare ulteriormente e calciare le basi proverbiali con questo. Vogliamo sicuramente isolare e sostenere questo percorso.

Autore del plugin

(@contatto costante)

2 anni, 2 mesi fa

Abbiamo imitato tutti i campi e i campi nascosti dal nostro modulo di prova, come parte di un’applicazione POST x-www-form-urlencoded nel nostro Post, come mostrato nell’immagine e come mostrato di seguito, con l’array di codice che abbiamo evidenziato sopra in posto.

email___ecd412e904309dcce66177488240b016=EMAILADDRESSHERE&ctct-id=54&ctct-verify=hCeih5h4WQS08V0beN4a6p6vg&ctct_time=1546562428&ctct-submitted=Sign%20up&ctct_form=21af49bfef

e

email___ecd412e904309dcce66177488240b016=EMAILADDRESSHERE&ctct-id=54&ctct-verify=hCeih5h4WQS08V0beN4a6p6vg&ctct_time=1546562428&ctct-submitted=Sign%20up&ctct_form=21af49bfef&g-recaptcha-response=true

Entrambe le volte, se ne sono andati presto come ci aspettavamo. L’ultimo era solo un test extra e non sarebbe riuscito perché quello non è il valore di risposta effettivo di Google e non convalida.

A meno che non abbia qualcosa di più chiaro per gli altri, cosa che riconoscerò felicemente se mi verrà detto, non sono sicuro di cosa stia facendo di sbagliato questa versione di noi. Facci sapere di più o i passaggi che non stiamo prendendo che ti mostrano un bypass riuscito.

(@bburgay)

2 anni, 2 mesi fa

Ciao @constantcontact,

Presto se ne andò come speravo anch’io. Ho preso la correzione temporanea e ho installato l’interruttore del plug-in su un sito live. Ti farò sapere tra qualche giorno se lo spam si è fermato.

Grazie,
Brian

Autore del plugin

(@contatto costante)

2 anni, 2 mesi fa

Suona bene. Grazie per la tua disponibilità ad aiutare con test e certificazioni.

(@bburgay)

2 anni, 1 mese fa

Nessun problema. Sono trascorsi 3 giorni e non abbiamo ricevuto alcun invio di spam, quindi direi che questa soluzione è pronta. 🙂

Autore del plugin

(@contatto costante)

2 anni, 1 mese fa

Ottimo per avere qualche conferma da @bburgay.

Ci sono tutte le possibilità che pubblicheremo questo accordo e, come sempre, continuiamo a cercare di rimanere il più al sicuro possibile. Possiamo sempre aggiungerne altri in futuro ei nostri miglioramenti basati sullo spam non si chiudono mai internamente.

Autore del plugin

(@contatto costante)

2 anni, 1 mese fa

Lo ha spinto verso l’alto come parte della versione 1.4.4. Se le cose stanno ancora arrivando, faccelo sapere e continueremo a calciare monete 😀

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *