//pierwsze dane captcha if ($_POST['submit'] != 'submit'){ //WYSWIETLANIE FORMULARZA curl_setopt($hand, CURLOPT_URL, 'http://api.recaptcha.net/noscript?k=6LfEGgIAAAAAABSqQ0rzMd3t-rOU_XrZlC2C9WG2'); curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1); curl_setopt($hand, CURLPROXY_HTTP, 'proxy'); $p=curl_exec($hand); preg_match('/<input type="hidden" name="recaptcha_challenge_field" id="recaptcha_challenge_field" value="(.*?)" \/>/',$p,$dana); $obraz = 'http://api.recaptcha.net/image?c='.$dana[1]; echo'<form method="POST"><input name="id"><input type="hidden" value="'.$dana[1].'" name="dana"><input type="submit" name="submit" value="submit"></form>'; }else{ //WYSYŁANIE danuch recaptcha curl_setopt($hand, CURLOPT_URL, 'http://api.recaptcha.net/noscript?k=6LfEGgIAAAAAABSqQ0rzMd3t-rOU_XrZlC2C9WG2'); curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1); curl_setopt($hand, CURLPROXY_HTTP, 'jakies proxy'); curl_setopt($hand, CURLOPT_POST, 1); 'recaptcha_challenge_field' => $_POST['dana'], 'recaptcha_response_field' => $_POST['id'], 'submit' => $sub )); $p=curl_exec($hand); //pobieranie tokenu captcha curl_setopt($hand, CURLOPT_URL, 'http://www.erepublik.com/pl/register_captcha'); curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1); curl_setopt($hand, CURLPROXY_HTTP, 'proxy'); curl_setopt($hand, CURLOPT_COOKIESESSION, true); curl_setopt($hand, CURLOPT_COOKIEFILE, "/tmp/cookiefiles.txt"); curl_setopt($hand, CURLOPT_COOKIEJAR, "/tmp/cookiefiles.txt"); $p=curl_exec($hand); $token = token($p); //wysyłanie danych captcha curl_setopt($hand, CURLOPT_URL, 'http://www.erepublik.com/pl/register_captcha'); curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1); curl_setopt($hand, CURLPROXY_HTTP, 'proxy'); curl_setopt($hand, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1)"); curl_setopt($hand, CURLOPT_POST, 1); curl_setopt($hand, CURLOPT_REFERER, 'http://www.erepublik.com/pl/referrer/nickjakis'); 'recaptcha_challenge_field' => $kod[1], 'recaptcha_response_field' => 'manual_challenge', '_token' => $token, 'commit' => $ok )); $wynik=curl_exec($hand); }
kod ma na celu zautomatyzowaną rejestracje w erepublik w celach edukacyjnych, fragment kodu jest odpowiedzialny za wpisywanie kodu captcha do przeglądarki z użyciem recaptcha bez użycia JavaScriptu, niestety, na samym końcu w paragrafie //wysyłanie danych captcha - wysyła błąd "CSRF attack detected"
mam 2 przypuszczenia:
nieprawidłowe dane post.
albo kolejny bug związany z niemożnością wpisania kodu bez użycia js
jeśli to 1 to pomóżcie namierzyć gdzie ewentualnie, a leżeli 2-gie to chyba trzeba by było wypełnić recaptchę z włączonym js - nie wiem jak.