UnCAPTCHA: Koristite Googleove usluge da zaobiđete Google reCAPTCHA. Riješimo se dosadne captcha na VKontakte Kako botovi zaobilaze captcha

10.05.2020 Zanimljiv

Mnoge web stranice sada koriste Recaptchu od Googlea i to s dobrim razlogom: jednostavno i praktično rješenje za borbu protiv neželjene pošte. Ali u isto vrijeme, mnogi umovi se bore dešifrirati algoritme Google Captcha kako bi zaobišli ovu zaštitnu mjeru. Metode su prilično originalne i zanimljive; smiješno je to što Googleove tehnologije u većini slučajeva pomažu hakirati Recaptchu. Kako se to događa i zašto, razmotrit ćemo u našem materijalu.

Prvo, malo teorije. U početku je pojam captcha značio unos znakova sa slike: slova, brojeva ili kombinacije slova i znamenki. S vremenom su se pojavili programi za prepoznavanje teksta, a captcha se počela komplicirati: počela se pojavljivati ​​pozadina, slova i brojevi počeli su se nalaziti pod kutom, broj znakova za unos počeo je varirati, dodani su šum i smetnje kako biste isključili automatsko prepoznavanje. Upravo tako je izgledala prva verzija recaptche, koju su mnogi korisnici toliko mrzili.

Na kraju se sve svelo na to da kompliciranje slike za unos nije dalo vidljiv učinak, već je samo otežalo ulazak običnim korisnicima. Mislim da se mnogi ljudi sjećaju vremena kada su otvoreno psovali, kada niste razumjeli koji je simbol prikazan i nije bilo moguće unijeti captcha prvi put. A onda je korporacija Google skočila daleko naprijed, ponudivši javnosti Recaptchu 2. Ne može se reći da je ideja bila toliko inovativna - do tada su već bile implementirane mnoge zanimljive zaštite od spama: slaganje slagalice, odgovaranje na pitanje - svi su imali svoje prednosti i nedostatke.

Druga verzija recaptcha postala je pametnija i više orijentirana na ljude: jednostavno kliknuti kvačicu bilo je dovoljno da prođe provjeru. U složenijim situacijama, pristranost je bila prema odabiru prikladnih slika. Google tu ne staje i planira predstaviti Invisible Recaptchu u sljedećoj generaciji, o čemu više možete pročitati u članku. Ali u isto vrijeme, umovi hakera su zaokupljeni zadatkom kako zaobići ovaj sustav: nakon svega, tada se otvara prostor za veliki broj stranica.

Jedan od velikih nedostataka svih recaptcha je ograničen skup kombinacija. U prvoj recaptchi to je bio određeni skup riječi i fraza, u drugoj je to bio ograničen broj slika i istih riječi u audio verziji captcha (pogledat ćemo to malo kasnije). Sve to uz pravi pristup omogućuje sužavanje kruga u potrazi za rješenjima.

Od glavnih metoda za krekiranje recaptcha, istaknuo bih samo dvije: odabir kombinacije slika na koje je potrebno kliknuti da bi prošli test i dešifriranje audio zapisa.

Jedan od prvih uspješne metode pomogao u implementaciji algoritma za prepoznavanje slike za odabir kućnih brojeva. Zatim su se pojavile složenije mogućnosti prepoznavanja, koje su se specijalizirale za Google Recaptcha. Ali Google nije stajao po strani, slike su počele biti podvrgnute svim vrstama obrade: zamućivanje, rastezanje, izobličenje.

Hakirajte Google Recaptchu koristeći Google Speech

Kako se pokazalo, najranjivija metoda, koja je dala najbolje rezultate, pokazalo se prepoznavanje captcha iz audio signala, što se nudi kao alternativna opcija za slušanje ako iz nekog razloga ne možete proći test. Dobiti zvučna datoteka Vrlo je jednostavno, trebate kliknuti na ikonu sa slušalicama na dnu recaptcha i ponudit će vam se glasovna poruka.

Prvi pokušaji napada na Google captcha bili su popraćeni samostalno napisanim programima za prepoznavanje govora, a stopa prepoznavanja bila je prilično visoka (djelomično zbog ograničenog broja audio fraza). Nakon što je program objavio javnosti, Google je objavio zakrpu koja je promijenila set glasovne poruke, a također su dodali glasove i šum u govor, čime su Recaptcha bypass performanse bile blizu nule.

No, i ovdje je pronađeno vrlo smiješno rješenje. Kako bi pomogao stručnjacima za sigurnost hakirati Google Recaptcha 2... Google je sam priskočio u pomoć! Korištenjem Google API-ja govor se može pouzdano i točno prepoznati zvučne obavijesti captcha. Ranjivost smo primijenili u praksi i napisali uslugu za preusmjeravanje audio datoteka na prepoznavanje, a zatim zamjenu rezultata u polju recaptcha obrasca.

I ovu su rupu popravili i zatvorili zaposlenici Googlea. Sada će hakeri ponovno morati pokazati spretnost i pronaći novu metodu zaobilaženja recaptche. U međuvremenu, na ovaj trenutak Ovo je prilično praktična i dugotrajna opcija za zaštitu od neželjene pošte obrasca za kontakt. Postavlja se pitanje: zašto, unatoč trikovima napadača, nije bilo vala spama na stranicama? Odgovor je prilično jednostavan: Google je razvio prilično složenu i višestupanjsku zaštitu koja može ograničiti broj premosnica. Na taj će se način masovni napad zaustaviti u ranoj fazi: na primjer, ista opcija s audio porukom nije uvijek radila; ponekad se od korisnika tražilo da unesu simbole umjesto da slušaju brojeve.

U međuvremenu ćemo čekati nove vijesti i nove podvige.

Dobar dan prijatelji! Ako čitate ovaj članak, to znači da također imate problema s Google Recaptcha, koju svi koriste velika količina Ali mnogim korisnicima se to ne sviđa, ali sve veći broj korisnika stranica ga koristi. Zašto je tako dobar, koji su mu nedostaci i kako ga položiti, sve to možete pronaći u ovom članku.

ReCaptcha je stvorena kako bi zaštitila web stranice od internetskih robota i digitalizirala tekstove knjiga. Od 2009. u vlasništvu Googlea.

što je kod nje dobro

Kao što je ranije navedeno, prednosti ove vrste captcha su: zaštita od spama i digitalizacija tekstova knjiga.

zašto je ona loša

Naravno, ova captcha nije idealna i ispravno napisan bot može lako zaobići takve recaptcha.

Osim toga, mnogi korisnici imaju problema s recaptcha, koje moraju rješavati nekoliko puta. U nastavku ću vam reći kako brže ispunjavam captcha. Metoda je svakako jednostavna, ali ne baš učinkovita, ali ubrzava vrijeme utrošeno na rješavanje captcha.

Što sam primijetio?

Na primjer, kada rješavamo captchu s prometnim znakovima, ponekad nema prometnih znakova, tada odmah kliknemo preskoči. Ali ponekad captcha s prometnim znakovima itd. To se događa kada su odabrani i potvrda se prenosi na drugu captcha. Zašto? Prilikom rješavanja sam naišao samo na jednu opciju (ako ih ima više napišite u komentarima), kada kliknete na sliku, gumb "preskoči" se zamijeni sa "sljedeća". Ako se pojavi sljedeći gumb, nećete riješiti ovaj captcha i bit ćete prebačeni na sljedeći captcha

Postoji nekoliko nijansi

kako ga proslijediti i male značajke prolaska captcha.

1) ReCaptcha prikaz

a) Slike koje nestaju (uklonite sve nepotrebne)

Takvi captcha se uvijek prosljeđuju. Osobno nikada nisam imao problema s ovom vrstom captcha.

b) Odabir slike ili dijela slike (u nastavku ću dati primjer)

Imao sam problema s odabirom slike. Ali nisam mogao shvatiti zašto. Na primjer, na slici ispod, zadatak kaže: "odaberite sve kvadrate koji sadrže prometne znakove. Ako ih nema, kliknite gumb "preskoči"." Zapravo, postoji prometni znak P = "parking", ali ReCaptcha ga neće računati, jer se umjesto gumba "preskoči" pojavljuje gumb "dalje", iako prometni znak postoji u zadatku, ali možda ReCaptcha programeri ne misle tako. Događa se i suprotna situacija, ali neću dati primjer u članku, mislim da je svima sve jasno.

2) Ako je ovo captcha sa slikama koje ne nestaju, odaberite jedan kvadrat i pogledajte promjenu na gumbu "preskoči".

a) Ako se gumb promijenio u gumb "sljedeće". Nećete proći takav captcha, čak i ako postoji rješenje.

b) Ako se gumb promijenio u gumb "potvrdi", tada ćete proći ovaj captcha ako ga ispravno prođete.

S poštovanjem, Mars Magafurov

Google reCaptcha v2 više nije problem za naše korisnike. Uveli smo integraciju s popularnom uslugom zaobilaženja captcha Death By Captcha i sada vaši strugači mogu jednostavno zaobići najnovije captcha.

Pogledajmo kako izgleda reCaptcha v2:

Ako vidite upravo takav captcha na web mjestu. koje trebate raščlaniti, onda će vam ovaj članak svakako pomoći. Pokušat ćemo vam dati opsežan vodič na stvarnom primjeru, tako da možete jednostavno implementirati takvo rješenje za svoju web stranicu. Analizirat ćemo sljedeću stranicu: http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp.

Kako biste koristili ovu funkcionalnost morate imati vlastiti račun na usluzi Death by Captcha. Njihove usluge nisu besplatne; cijena rješavanja 100 captcha je otprilike 2,89 USD (cijena je trenutna od 28.2.2018.).

Rješavanje captcha događa se automatski; samo trebate učitati stranicu s captcha u svoj scraper i pozvati posebnu naredbu captcha_resolve s određenim parametrima:

prodiver : pružatelj captcha rješenja, potrebno je postaviti vrijednost deathbycaptcha.com
type : vrsta captcha, potrebno je postaviti vrijednost nocaptchav2
korisničko ime : korisničko ime vaše smrti putem captcha računa
lozinka : lozinka za vaš račun u sustavu smrti pomoću captcha

PAŽNJA!!! Kako bi se ova vrsta captcha uspješno riješila, ljudi koji će ručno riješiti vašu captchu morat će to učiniti pod istom IP adresom koju koristi vaš parser. Zato, jedina opcija Da biste to postigli, koristite VAŠ VLASTITI PROXY POSLUŽITELJ u konfiguraciji diggera. Našim običnim proxy poslužiteljima ne može se pristupiti s IP adresa izvan naše glavne mreže, tako da obični proxy jednostavno neće raditi u ovom slučaju. U budućnosti ćemo uvesti poseban skup proxy poslužitelja za ovaj zadatak, ali za sada ćete morati koristiti vlastiti proxy.

Osnovni kod našeg parsera bit će ovakav:

Config: debug: 2 agent: Firefox proxy: VAŠ PROXY TREBA BITI UMETNUT OVDJE do: # Ponovit ćemo neuspjeli zahtjev, pa ćemo napisati varijabilna vrijednost, # koji će opcija ponavljanja koristiti - varijabla_set: polje: vrijednost ponavljanja: "da" # Učitajte stranicu s captcha - hodajte: do: http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva /cnpjreva_solicitacao2. asp repeat: do: # Solve captcha - captcha_resolve: provider: deathbycaptcha.com type: nocaptchav2 korisničko ime: VAŠE KORISNIČKO IME U DBC SERVISU lozinka: VAŠA LOZINKA U DBC SERVISU

Nemojte još pokretati svoj parser, samo proučite kôd. Ako je captcha uspješno riješena, token će biti pohranjen u captcha varijabli. Stoga je prva stvar nakon rješavanja captcha provjeriti prisutnost tokena u varijabli. Ako postoji token, onemogućit ćemo opciju ponavljanja i proslijediti token poslužitelju zajedno s ostalim parametrima našeg zahtjeva. Ako nema tokena, zahtjev će se ponoviti jer je opcija ponavljanja postavljena na "da".

Config: debug: 2 agent: Firefox proxy: VAŠ PROXY TREBA BITI UMETNUT OVDJE do: # Ponovit ćemo neuspjeli zahtjev, pa ćemo napisati vrijednost varijable # koju će koristiti opcija ponavljanja - variable_set: field: repeat vrijednost: "da" # Učitaj stranicu iz captcha - walk: do: http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/cnpjreva_solicitacao2.asp repeat: do: # Rješavanje captcha - captcha_resolve: provider - variable_get: captcha # Provjerite je li naš registar prazan - if: match: \w+ do: # Ako nije prazan, onemogućite ponavljanje - variable_set: polje: ponavljanje vrijednosti: "no" # Proslijedite token i druge parametre na stranicu s koje smo prikupljati informacije. # U ovom slučaju pokušavamo dobiti informacije o tvrtki pomoću njenog identifikacijskog broja poreznog obveznika (CNPJ) - hodajte: do: postavljajte: http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/valida_recaptcha .asp data: origem: comprovante cnpj: 05754558000186 g-recaptcha-response: submit1: Consultar search_type: cnpj do: - find: path: "div#principal" do: - object_new: item - find: path: td:haschild(font :contains("NÚMERO DE INSCRIÇÃO")) b slice: 0 do: - parse - space_dedupe - trim - object_field_set: object: item field: register_number - find: path: td:haschild(font:contains("DATA DE ABERTURA") ) b isječak: 0 do : - parse - space_dedupe - trim - object_field_set: object: item field: registration_date - find: path: td:haschild(font:contains("NOME EMPRESARIAL")) b isječak: 0 do: - raščlamba - space_dedupe - trim - object_field_set: object: item field: company_name - find: path: td:haschild(font:contains("CÓDIGO E DESCRIÇÃO DA ATIVIDADE ECONÔMICA PRINCIPAL")) b isječak: 0 do: - parse - space_dedupe - trim - object_field_set : objekt: polje stavke: primarni_kod - pronađi: put: td:haschild(font:sadrži("CÓDIGO E DESCRIÇÃO DAS ATIVIDADES ECONÔMICAS SECUNDÁRIAS")) b do: - analiziraj - razmak_dedupe - trim - polje_objekta_push: objekt: polje stavke: sekundarni_kodovi - pronađi: staza: td: haschild(font:sadrži("CÓDIGO E DESCRIÇÃO DA NATUREZA JURÍDICA")) b isječak: 0 do: - raščlani - razmak_dedupe - trim - object_field_set: object: item field: legal_code - find: path: td: haschild(font:contains( "LOGRADOURO")) b slice: 0 do: - parse - space_dedupe - trim - object_field_set: object: item field: street - find: path: td:haschild(font:contains("BAIRRO/DISTRITO" )) b isječak: 0 do: - raščlanjivanje - razmak_dedupe - trim - object_field_set: objekt: polje stavke: okrug - pronađi: put: td:haschild(font:contains("MUNICÍPIO")) b isječak: 0 do: - raščlani - space_dedupe - trim - object_field_set: object: item field: municipal - find: path: td:haschild(font:contains("TELEFONE")) b slice: 0 do: - parse - space_dedupe - trim - object_field_set: object: item field: telefon - pronađi: staza: td:haschild(font:contains("E-MAIL")) b isječak: 0 do: - parse - space_dedupe - trim - object_field_set: object: item field: email - object_save: name: item

Captcha tehnologija (CAPTCHA) je automatizirani test dizajniran za identifikaciju korisnika stroja, poznatih kao botovi.

Cilj mu je postaviti problem koji čovjek može lako riješiti, a računalo teško.

No postoje i situacije kada naizgled korisna skripta postane previše nametljiva.

Postoji pretpostavka da Google obučava AI svojih dronova, zahvaljujući korisnicima koji unose captcha sa slikama Ja nisam robot.

Kako ukloniti captcha Ja nisam robot

Razlozi ovakvog ponašanja mogu biti različiti, ali uvijek možete pokušati sve popraviti - provodimo radnje ako se pojave iznimke:

  • Odspojite i ponovno spojite aktivnu internetsku vezu. Ponovno pokrenite usmjerivač ili modem. Stoga se IP adresa može promijeniti.
  • Pribjegavamo korištenju VPN usluge. Potonji su i plaćeni i za besplatno korištenje. Dostupni su u obliku ekstenzija (dodataka) za preglednike i kao zasebno instalirani softver na računalu.
  • Gledamo kroz i instalirane ekstenzije. Na primjer, najnovija verzija Yandex.Browser sama po sebi onemogućuje dodatke iz neprovjerenih izvora i povremeno provjerava lažne one koji su već instalirani.
  • Provjerite je li JavaScript omogućen u web pregledniku: Postavke → Prikaži dodatne postavke→ blok osobnih podataka Postavke sadržaja → odjeljak JavaScript.
  • Ne zaboravimo na antivirusni programi– možda je računalo postalo žrtvom botneta, otuda i nezadovoljstvo CAPTCHA-om za promet koji se stvara na ovoj adresi.

Zanimljivo je da svaki dan korisnici interneta unesu stotine milijuna captcha. Nije tajna da ga svi ne uspijevaju ispravno unijeti prvi put.

Nedavno je Google nadopunio funkcionalnost ReCaptcha v2 nevidljivom captchom.
Uzorak toga možete vidjeti na ovoj poveznici:
https://www.google.com/recaptcha/api2/demo?invisible=true

Sada korisnik često ne treba ni kliknuti potvrdni okvir "Ja nisam robot", sama captcha se pojavljuje u nevidljivom sloju, dodatno pomaknuta 10.000 px iznad vrha stranice i nije vidljiva korisniku. Prijenos captcha počinje tek u trenutku slanja obrasca. Ako su korisnikovi kolačići dobri, tada on neće ni primijetiti da postoji captcha. Ako kolačići nisu baš dobri, tada će prilikom podnošenja obrasca odmah dobiti standardnu ​​recaptchu u sredini zaslona, ​​gdje treba odabrati nekoliko slika.

Općenito, princip rada recapthca nije se nimalo promijenio, ali neki korisnici usluge web stranice naišli su na probleme. Ako u svom radu generirate POST zahtjev koji sadrži “g-recaptcha-odgovor” na stranicu na kojoj je captcha instalirana, tada nećete ni primijetiti promjene. Problem se pojavio među onim korisnicima koji koriste motor preglednika za automatizaciju bilo kakvih radnji, na primjer silenium.

Što trebam učiniti da omogućim Invisible ReCaptcha u svom pregledniku?
1) Izrežite div koji sadrži recaptcha iz tijela dokumenta:

2) Izrežite cijeli blok

var onSuccess = function(response) ( var errorDivs = document.getElementsByClassName("recaptcha-error"); if (errorDivs.length) ( errorDivs.className = ""; ) var errorMsgs = document.getElementsByClassName("recaptcha-error-message "); if (errorMsgs.length) ( errorMsgs.parentNode.removeChild(errorMsgs); ) document.getElementById("recaptcha-demo-form").submit(););

3) Stavite sljedeći kod na mjesto:
%g-recaptcha-odgovor%

U kojem je %g-recaptcha-response% kod koji ste primili od 2captcha.com

4) Imat ćete gumb "Pošalji upit", kada kliknete na njega, poslat ćete sve podatke obrasca i g-recaptcha-odgovor na stranicu na kojoj je instaliran captcha

Na ovaj jednostavan način pretvaramo Invisible ReCaptcha u običnu ReCaptcha V2 i prosljeđujemo je.

A oni programeri koji ne emuliraju preglednik, već odmah šalju POST zahtjeve, neće ni primijetiti ako se recaptcha promijeni u nevidljivo