Каптчи. Способы взлома и защиты / Хабр
Кросс-пост из нашего блога, посвященному компьютерной безопасности
Ранее мы писали о уязвимостях каптч на сайтах компании Киевстар и Билайн. Теперь мы хотим, вашему вниманию предоставить наше исследование в области взломов и защиты каптч.
# Теория каптч
В 1950 году Алан Тьюринг написал статью «Вычислительные машины и разум», которая была опубликованная в философском журнале «Mind». В статье речь шла о неком тесте, который может различить человека от компьютера. Мы не будем описывать подробности о тесте, вы сами это сможете почитать на Википедии
Так вот, каптча — это одна из реализаций теста Тьюринга, которая используется для того, что бы определить пользователя системы: человек он, или компьютер. Иными словами, каптча защищает сайт от спам-ботов, которые оставляют сообщения в гостевых книгах, в комментариях и т.д.
Реализаций каптч — тысячи. В основном, каптчи представляют собой некое изображение с текстом, который и нужно определить человеку. Вот несколько примеров современных каптч:
# Уязвимости каптч
Сразу ответим на вопрос: Зачем пытаются найти уязвимости в каптчах? Самая основная цель — спам. А там где спам — реклама. А реклама — деньги. Спамеры пишут программное обеспечение, например, которое массово рекламирует их клиентов на форумах(оставляя посты и приватные сообщения), в гостевых книгах, mail-гейтах и других сервисах. Они пишут программных ботов, которые имитируют действия человека. Для того, что бы предотвратить массовые сообщения, разработчики программного обеспечения используют каптчу. Это может быть open-source решение, или же «свое» или индивидуальное решение. Используя любое из этих решений, программисты могут допускать ошибки. Это зависит от опытности программиста, но не всегда. Бывает каптча грамотно сделана, но присутствуют ошибки в настройке серверного программного обеспечения или же другие факторы.
Теперь рассмотрим несколько методов, c помощью которых можно обойти каптчу:
1.

Самая распространенная ошибка в реализации каптчи — так это её техническая реализация. Программист может упустить тонкие моменты в обработке результата. Например, текст каптчи может передаваться в сессии, или имя файла-изображения — и есть тот текст. Например, http://markitup.com/Captcha.ashx?txt=G-SG (PageRank этого сайта равен 5-ти)
2. Оптическое распознавание символов
Оптическое распознавание символов (OCR) — электронная конвертация изображений символов и букв в текст, редактируемый на компьютере.
Самое простое OCR — эталонное. Заключается в самом обычном эталонном сравнении цифр(букв) на изображении.
Уязвимость такого рода очень редко встречается. Но попадается и на крупных сайтах. Пример тому — уязвимость каптчи на сайте Билайна.
3. Плохая идея
Суть метода: используется очень хорошая реализация каптчи( с использованием шума и т.п.), но к примеру, это цифирная или буквенная каптча из трёх знаков. В таком случае можно реальным брутфорсом подбирать ответ. Этот метод довольно эффективный, когда применяется нейро-сеть — она же бот-сеть, машин тупых зомби, которые пытаются угадать изображение.
4.Человеческий разум
Этот метод заключается в том, что за определение каптч платят деньги людям. Например, есть очень много отечественных сервисов, которые платят до 0.1$ за определение одной каптчи. Это реальная угроза, потому что противостоять этому тяжело.На этом методе построена целая индустрия.
# Защита каптч
Существует очень много разных вариантов реализации каптч. Мы не будем описывать эти способы, но мы акцентируем ваше внимание на готовых решениях и нескольких советах.
При разработке каптчи нужно в первую очередь делать упор не на красоту, а сложность для автоматизированных ботов. Примером этому может быть каптча, используемая компанией Google и Bigmir-Internet в своих проектах.
Безопасные каптчи нужно очень тщательно продумать. Обязательно использовать разного рода искажения текста(для картинок с циферками и текстом), качественную обработку на стороне сервера.
Также мы хотим вам предложить использовать готовые безопасные решения для организации каптчи на вашем веб-сайте, блоге и сервисе. Одно из таких — reCaptcha. Это уже довольно не новая технология каптч, основанная по клиент-серверным технологиям.
Пример:
Довольно сложная для обхода капчта, и легкая для пользователя. Пользователю предлагается ввести два слова( или набор цыфр). Вводимые значение по специальному API пересылаются на сервер reCaptcha, где проверяются и вашему обрабатываемому скрипту отправляют ответ: правильный ввод, или не правильный.
Очень легко встраивается reCaptcha в популярные движки блогов, сайтов. А также есть библиотеки для разных языков программирования.
# Заключение
На сегодняшний день существует большое количество видов каптч. Реализовывая тест Тьюринга в какой-либо форме мы не можем быть уверены в его надежности. Потому нужно использовать или готовые решения или же пользоваться услугами специалистов по безопасности, которые смогут проанализировать вашу реализацию и дать оценку безопасности.
Авторы: Черныш Вадим и Рыбалко Дмитрий, Glaive Security Group
BAS в режиме запуска не решает каптчу
Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you may not be able to execute some actions.
Please download a browser that supports JavaScript, or enable it if it’s disabled (i.e. NoScript).
- Home
- BrowserAutomationStudio
- org/Breadcrumb»> BAS в режиме запуска не решает каптчу
This topic has been deleted. Only users with topic management privileges can see it.
Всем привет.
Вообщем так в режиме Запись все работает нормально и каптча решается как через сервис rucaptcha так и через xevil, но когда я запускаю тот же скрипт в режиме Запуска то вываливается ошибка
[447775962] Timeout during script for[documentRoot, css #bonus_captcha > :nth-child(1) > div > iframe , frame_element , css #recaptcha-anchor > :nth-child(1)]
При чем узнать о том что там вообще отправляются запросы на решение или нет, я не могу так как сниффер в этом режиме не запускается.
Хотя в Xevil четко видно что запросы туда не доходят.Подскажите может быть кто нить сталкивался с такими проблемами.
-
А сама каптча в режиме запуска появляется в окне браузера?
Какое действие происходит перед решением каптчи? Сама рекаптча ни когда и не появлялась так как я использую rucaptcha-newapi.
До этого выполянется ввод текста.Если использовать действие решения manual то да так появляется это окно в специальном окне в программе для решения в ручном режиме.
@gomeapat said in BAS в режиме запуска не решает каптчу:
Сама рекаптча ни когда и не появлялась так как я использую rucaptcha-newapi.
Сама кнопка «Решить каптчу» же должна появляться.
Желательно заменить селектор для рекаптчи. Скрипт не может дождаться элементапопробуй сделать проверку наличия элемента. кнопки капчи
- org/Comment»>
Видео того как это происходит
Если бы он не дожидался или не получал бы нужный селектор для начала решения, то как бы он ее решал в режиме Записи
Xevil не получает задания на решение,
с чем это может быть связанно? -
Нормально все решается. Селектор для каптчи MATCH
>MATCH><iframe src="https://www.google.com/reca>FRAME>>MATCH><div
- org/Comment»>
@GameBot said in BAS в режиме запуска не решает каптчу:
MATCH><iframe src=»https://www.google.com/reca>FRAME>>MATCH><div
Поменял на тот селектор что Вы советуете
Результат остался преждним
-
@gomeapat said in BAS в режиме запуска не решает каптчу:
Каптча в режиме Запуска даже не передается в Xevil
Xevil у меня нет. Rucaptcha все нормально решает. Вероятно ошибка в настройках Xevil
org/Comment»>Хорошо пробую решить через сервис rucaptcha
Опять же на видео видно что как только я перехожу в режим запуск
каптча на к ним на сервер даже не долетает.
Видео-
Перезагрузка программа/компьютера не помогает? -
Только что все перезагружал но опять же все как и было
- org/Comment»>
Есть какой нить способ выяснить обращается ли BAS в режиме записи к серверам rucaptcha?
-
Пробывал откатится на версию 22.6.9 но и там не работает
-
@gomeapat said in BAS в режиме запуска не решает каптчу:
Всем привет.
Вообщем так в режиме Запись все работает нормально и каптча решается как через сервис rucaptcha так и через xevil, но когда я запускаю тот же скрипт в режиме Запуска то вываливается ошибка
[447775962] Timeout during script for[documentRoot, css #bonus_captcha > :nth-child(1) > div > iframe , frame_element , css #recaptcha-anchor > :nth-child(1)]
При чем узнать о том что там вообще отправляются запросы на решение или нет, я не могу так как сниффер в этом режиме не запускается.
Хотя в Xevil четко видно что запросы туда не доходят.Подскажите может быть кто нить сталкивался с такими проблемами.
Приложите тестовый скрипт
-
recaptcha2.xml
Но не думаю что дело в скрипте
В другом скрипте где я использую распозонование каптчи тоже самое
Этот я написал так для теста работыРанее я распознование делал только в ручном режиме
через запуск ранее распознование не запускал -
Вообщем сниффернул я запросы через Wireshark
и он показал что в режиме записи идет обмен пакетами с 89.108.73.200 (а это ip https://rucaptcha.com/) по протоколу http
а вот уже при режиме запуска ни одного запроса не происходит. -
Как я понял проблема не в том что он там не шлет запросы на решение каптчи
а в том что он не может обнаружить элемент на котором нужно решать каптчу
о чем мне пишет в ошибкеПоток завершился с сообщением «Таймаут во время выполнения script for[documentRoot, match <iframe src=»https://www.google.com/reca, frame_element , match <div]»
Т.е один и тот же селектор в режиме записи он находит нормально а вот в режиме запуска уже не может найти.
- org/Comment»>
@gomeapat
-
Да все верно он не может найти этот элемент
Вот скрипт он только проверяет существует ли элемент на котором нужно решить каптчу
recaptcha2_exist.xmlУ меня в режиме записи он показывает true
а в режиме запуска
Поток завершился с сообщением «Таймаут во время выполнения exist for[documentRoot, match <iframe src=»https://www.google.com/reca, frame_element , match <div]»Напишите такая проблема только у меня ?
Loading More Posts
24
Posts
438
Views
Log in to reply
- schema.org/ItemList» data-nextstart=»» data-set=»»>
-
5
0
Votes5
Posts162
Views -
3
0
Votes3
Posts77
Views -
12
0
Votes12
Posts698
Views -
19
0
Votes19
Posts2261
Views -
1
0
Votes1
Posts203
Views -
3
0
Votes3
Posts71
Views -
3
0
Votes3
Posts156
Views -
4
0
Votes4
Posts549
Views
Сервис решения капчи, Распознавание и обход reCAPTCHA, Fast Auto Anti Captcha
Процесс решения обычной капчи выглядит следующим образом: мы берем изображение капчи со страницы и отправляем его в сервис 2Captcha, где сотрудник решает ее, вводя указанный текст, то нам возвращается ответ, который необходимо ввести в соответствующее поле для решения капчи
API demoКак решитьПроцесс решения текстовой капчи выглядит следующим образом: берем текст вопроса капчи со страницы ее постановки и передачи в сервис 2Captcha, где она решается сотрудником, после чего нам возвращается ответ, который необходимо ввести в соответствующее поле для решения капчи
API demoКак решитьПроцесс решения следующий: берем изображение капчи со страницы ее размещения и инструкцию на какие картинки кликать и передаем в сервис 2Captcha, где ее решает сотрудник, после чего ответ нам возвращается в виде набора координат точек, которые нам нужно нажать для решения капчи
API demoКак решитьПроцесс решения Rotate Captcha выглядит следующим образом: берем изображение или несколько изображений капчи со страницы ее размещения и передать в сервис 2Captcha, где ее решает сотрудник, после чего нам возвращается ответ в виде значения угла поворота изображения, нам нужно повернуть изображение на угол до решить капчу
API demoКак решитьПроцесс решения reCAPTCHA V2 выглядит следующим образом: берем параметры капчи со страницы в виде параметра data-sitekey и URL страницы и передаем в сервис 2Captcha, где ее решает сотрудник , то нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи
API demoКак решить Процесс решения reCAPTCHA V2 Callback не отличается от аналогичного процесса решения reCAPTCHA V2: берем параметры капчи со страницы в виде параметра data-sitekey и URL страницы и передаем в сервис 2Captcha, где ее решает сотрудник, далее нам возвращается ответ в виде токена, который мы должны быть введены в соответствующее поле для решения капчи. Иногда вы не найдете кнопку отправки формы. Вместо этого можно использовать функцию обратного вызова. Эта функция выполняется, когда капча распознана. Обычно функция обратного вызова определяется в параметре обратного вызова данных или в качестве параметра обратного вызова вызова метода grecaptcha.render
Процесс решения reCAPTCHA V2 Invisible аналогичен распознаванию reCAPTCHA V2: берем параметры капчи со страницы в виде параметра data-sitekey и URL страницы и передаем в сервис 2Captcha , где ее решает сотрудник, после чего нам возвращается ответ в виде токена, который нам нужно ввести в соответствующее поле для решения капчи
API demoКак решить Процесс решения reCAPTCHA V3 выглядит следующим образом: берем параметры капчи со страницы в виде data-sitekey, action и URL страницы и передаем в сервис 2Captcha, где решается сотрудником с соответствующим рейтингом «гуманность», после чего идет ответ возвращается к нам в виде токена, который необходимо ввести в соответствующее поле для решения капчи. Во многом новый тип капчи аналогичен reCAPTCHA V2, т.е. основной принцип остается прежним — пользователь получает токен из API 2Captcha, который отправляется в POST-запросе на сайт, и сайт проверяет токен через API 2Captcha
Процесс решения reCAPTCHA Enterprise выглядит следующим образом: определяем тип reCAPTCHA, это может быть V2 или V3, после чего берем изображение капчи со страницы ее размещения в виде данных- sitekey и передать его в сервис 2Captcha, где он решается сотрудником, после чего нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи
Как решитьПроцесс решения KeyCaptcha выглядит следующим образом: мы берем набор необходимых параметров со страницы его размещения и передаем в сервис 2Captcha, где сотрудник его решает, после чего нам возвращается ответ в виде набора других параметров, которые необходимо передать в соответствующие поля для решения капчи
API demoКак решитьПроцесс решения GeeTest Captcha выглядит следующим образом: мы берем набор необходимых параметров со страницы ее размещения и передаем в сервис 2Captcha, где ее решает сотрудник, после чего ответ возвращается на нам в виде набора уже других параметров, которые необходимо передать в соответствующие поля для решения капчи
API demoКак решитьПроцесс решения следующий: берем изображение капчи со страницы ее размещения и передаем ее в сервис 2Captcha, где ее решает сотрудник, после чего нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи
API demoКак решитьПроцесс решения FunCaptcha от Arkose Labs выглядит следующим образом: мы берем набор необходимых параметров со страницы ее размещения и передаем в сервис 2Captcha, где ее решает сотрудник, после чего выдается ответ возвращается к нам в виде набора уже других параметров, которые необходимо передать в соответствующие поля для решения капчи
Как решитьПроцесс решения Capy Puzzle Captcha выглядит следующим образом: берем набор необходимых параметров из страницу ее размещения и передать в сервис 2Captcha, где ее решает сотрудник, после чего нам возвращается ответ в виде набора уже других параметров, которые необходимо передать в соответствующие поля для решения капчи
Как решить Процесс решения капчи TikTok основан на файлах cookie, которые необходимо использовать не позднее, чем через три секунды после того, как наши сотрудники решат капчу. Необходимо собрать все куки со страницы, где размещена капча, передать ее в сервис 2Captcha, где будет происходить решение, и применить полученный в ответ набор куки, после чего выполнить действие, защищенное капчей, на странице
Что такое CAPTCHA? Значение, определение, типы и использование
Когда интернет-пользователи пытаются посетить веб-сайт, используя свои учетные данные для входа или ввод данных своей кредитной карты, их могут попросить заполнить CAPTCHA. Как правило, это быстрый шаг, который требует от них ввести код или слова CAPTCHA, щелкнуть изображение или выполнить решатель CAPTCHA, чтобы получить доступ к веб-сайту.
CAPTCHA — это аббревиатура от «Полностью автоматизированный общедоступный тест Тьюринга, позволяющий различать компьютеры и людей». Это гарантирует предотвращение ботов CAPTCHA, поскольку администраторы могут проверять входящих пользователей с помощью CAPTCHA, а веб-сайты могут определять, является ли пользователь реальным или злонамеренным.
CAPTCHA была впервые создана как попытка заблокировать спамерское программное обеспечение от комментариев на страницах веб-сайта или оптовой покупки продуктов. Классический решатель CAPTCHA просит пользователей идентифицировать определенные буквы, которые были искажены, чтобы бот вряд ли их узнал.
Пользователям необходимо расшифровать искаженные символы и ввести их в поле формы, а затем отправить. Если буквы введены неправильно, пользователю предлагается повторить попытку. Эти формы CAPTCHA распространены при регистрации учетной записи, онлайн-опросах и проверках электронной коммерции.
Применение CAPTCHA имеет широкий спектр применений, которые позволяют веб-сайтам идентифицировать реальных пользователей от ботов. Его можно использовать для фильтрации спам-сообщений, ограничения неуместных комментариев и предотвращения автоматической публикации сообщений. Некоторые веб-сайты также используют CAPTCHA для защиты от ботов и могут запускать тест CAPTCHA, если обнаруживают поведение, напоминающее действия ботов.
Ограничение регистрации для служб
CAPTCHA может помешать ботам создавать несколько учетных записей в бесплатных службах, таких как Gmail, Hotmail или Yahoo Mail. CAPTCHA помещаются в регистрационные формы, чтобы предотвратить создание нескольких учетных записей электронной почты для спама.
Предотвращение ложных комментариев
CAPTCHA также помогает веб-сайтам предотвращать размещение спам-сообщений или ложных комментариев. Это полезно для блогов или веб-страниц, на которых есть контактные формы или доски объявлений, чтобы на них можно было размещать только законные комментарии.
Поддержание точности опроса
CAPTCHA также помогает веб-сайтам предотвращать размещение спам-сообщений или ложных комментариев. Это полезно для блогов или веб-страниц с контактными формами или досками сообщений, гарантируя, что на них могут быть размещены только законные комментарии.
Предотвращение завышения цен на билеты
Веб-сайты, которые продают билеты на такие мероприятия, как концерты или спортивные игры, используют CAPTCHA для предотвращения завышения стоимости билетов и ограничения количества билетов, которые могут приобрести пользователи. Это помогает им не допустить, чтобы спекулянты покупали билеты оптом, а затем продавали их с прибылью или по завышенным ценам. Таким образом, веб-сайты могут гарантировать, что законные клиенты смогут покупать билеты по справедливым ценам.
Несмотря на эти преимущества, у использования CAPTCHA есть некоторые недостатки. К ним относятся:
Плохой пользовательский опыт
Тесты CAPTCHA не являются самыми удобными инструментами и часто могут расстраивать пользователей, прерывая их поток. Это приводит к тому, что пользователи отрицательно относятся к веб-сайту, на котором выполняется проверка CAPTCHA, и часто может привести к тому, что они больше не будут использовать этот веб-сайт.
Недоступно для слабовидящих посетителей
Основным недостатком CAPTCHA является то, что они зависят от визуального восприятия людей. Другими словами, пользователи должны видеть текст или изображения, генерируемые CAPTCHA, чтобы получить доступ к веб-сайту. В результате CAPTCHA практически невозможно использовать для людей с серьезным нарушением зрения или слепых по закону.
Эти тесты могут быть обмануты ботами
Некоторые тесты CAPTCHA можно обмануть или обойти с помощью ботов, и на них нельзя полагаться для защиты веб-сайтов. В частности, некоторые боты могут обходить текстовые CAPTCHA, в то время как другие запрограммированы на преодоление и решение тестов распознавания изображений.
Существует несколько вариантов настройки CAPTCHA для защиты веб-сайтов. Общие примеры включают:
Текстовая CAPTCHA
Классический формат — это текстовая CAPTCHA, в которой используются слова или комбинации цифр и букв, которые пользователи должны расшифровать и ввести в текстовое поле. Он включает в себя отчуждение или искажение букв с помощью дуг, точек, цветов или линий, чтобы боты не могли их распознать.
Например, при создании новой учетной записи в Интернете пользователь получает ряд искаженных или искаженных символов, которые спам-бот не сможет распознать.
CAPTCHA Изображение
Одной из альтернатив текстовым CAPTCHA является метод на основе изображений. Пользователям представляются узнаваемые изображения или графика, например предметы повседневного обихода, и предлагается выбрать изображения, напоминающие исходное изображение.
Другие CAPTCHA на основе изображений просят пользователей выбрать элементы, присутствующие в изображении. Например, выделение всех квадратов на изображении со светофором.
Эти тесты CAPTCHA быстро решаются законными пользователями, а ботам или компьютерным программам их сложнее классифицировать и решать. Таким образом, CAPTCHA на основе изображений является более безопасной альтернативой текстовым вариантам.
Аудио CAPTCHA
Текстовые и графические CAPTCHA зависят от того, могут ли пользователи видеть информацию, что ограничивает использование слабовидящими людьми. Веб-сайты могут избежать этой проблемы с помощью аудио CAPTCHA, которые обычно включают кнопку, которую пользователи могут выбрать, чтобы прослушать аудиоверсию кода или последовательности букв и цифр. Это повышает удобство использования веб-сайта и обеспечивает его доступность для всех пользователей.
Математические или словесные задачи
Другим вариантом фильтрации спам-ботов является использование математических или текстовых задач, которые необходимо решить пользователям, и ввод ответа в текстовое поле. Обычно они включают в себя простые математические уравнения или задачи на распознавание слов, которые пользователи могут быстро решать и вводить.
Вход в социальные сети
Пользователи могут использовать свой профиль в социальной сети, например учетную запись Facebook или LinkedIn, для входа в службу. Это автоматически заполняет их данные с помощью процесса единого входа (SSO).
reCAPTCHA
Оригинальные форматы CAPTCHA могут быть заполнены продвинутыми ботами, поэтому их все чаще заменяют reCAPTCHA. Служба Google reCAPTCHA предоставляет более продвинутые тесты, которые обеспечивают большую уверенность между пользователями-людьми и ботами. Он получает тексты и изображения из реального мира или включает в себя флажки, распознавание изображений и оценку поведения.
Во многих случаях системам искусственного интеллекта трудно идентифицировать то, что кажется довольно простым изображением. Например, знак «уступи дорогу» на дороге может быть трудно расшифровать в зависимости от угла наклона солнца, тени, отбрасываемой на него, или перспективы, с которой он рассматривается, например, почти 90 градусов сбоку. Алгоритмам ИИ нужны огромные объемы данных, чтобы иметь возможность идентифицировать объекты, которые людям относительно легко выделить.
Так что же означает CAPTCHA для компьютера с искусственным интеллектом? Это обучающий инструмент. Каждый раз, когда люди выбирают подходящее изображение, эти данные передаются обратно в машину ИИ, помогая ей различать пешеходные переходы и бордюры, поезда и грузовики, знаки «стоп» и «уступи дорогу», велосипеды и мотоциклы.
CAPTCHA широко используется для предотвращения доступа мошенников к веб-сайтам в различных целях, в том числе:
Защищает онлайн-голосование
CAPTCHA может защитить онлайн-опросы и гарантировать, что только законные пользователи завершат опрос. Это предотвращает искажение результатов опроса спамерами.
Защищает от почтовых червей/нежелательной почты
Не позволяйте спамерам создавать несколько учетных записей для распространения вредоносных программ, нежелательной почты или фишинговых атак.
Предотвращает спам в комментариях в блогах
Предотвратите доступ спамеров к блогам или веб-страницам с контактными формами и остановите их от отправки поддельных комментариев.
Предотвращает атаки по словарю
Хакеры могут использовать словарные атаки для получения несанкционированного доступа к системам, используя программное обеспечение для проверки всех слов в словаре для подбора паролей. CAPTCHA может предотвратить такие атаки.
Защищает регистрацию на сайте
Включите веб-сайты, чтобы предотвратить создание мошенниками нескольких учетных записей для бесплатных служб, таких как бесплатные поставщики электронной почты.
Контроллеры доставки приложений Fortinet FortiADC позволяют администраторам проверять пользователей с помощью CAPTCHA. Это помогает компаниям определить, являются ли входящие посетители законными пользователями или вредоносным трафиком, например ботами или хакерами.
FortiADC можно настроить в соответствии с политикой организации в отношении отказа в обслуживании (DoS) и брандмауэра веб-приложений (WAF), чтобы CAPTCHA выдавались только тем пользователям, которые соответствуют определенным правилам.