Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Капча и cURL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: варианты обхода капча
Delovoy
Отправлено: 21 Января, 2011 - 10:20:15
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Задача: нужно сделать обход капчи
Аналитика:
есть сайт ххх
я на нем успешно авторизуюсь, захожу в раздел объявления
и при подачи объявления существует защита в виде капчи

просмотрел заголовки, которыми обменивается браузер с сервером
1. GET на получение страницы подачи объявления
2. бла-бла-бла
3. GET /captcha/884d06ab17e408443271164 686c49603.png HTTP/1.1

т.е. если я правильно понимаю то капчу мы получаем отдельным запросом и потом она уже отображается в форме ввода объявления

Что попробовал:
Вариант №1
Первое и самое простое. Открыл исходный код формы.
Нашел:
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="captcha_image" value="c3d2f19d9d39731827c14abc6a6eb472.png" />
  2. <div class="field captchafield ">
  3.                 <input name="captcha_guess" type="text" id="captcha_guess" class="textinput" value="" />
  4.                 <div class="required" title="Вы должны заполнить это поле для отправки формы">*</div>
  5. </div>
  6.  

поменял c3d2f19d9d39731827c14abc6a6eb472 .png на заведомо известное значение xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx.png с этого же сайта и в значении input name="captcha_guess" указал заведомо известные цифры!
Не прокатило ...
По всей видимости на сервере хранится идентификатор отправленной капчи и после получения ответа с данными формы сравнивается с тем, что отдавалось (отправлялось)

Вариант №2

Добавил в свой скрипт вызов метода GET для запроса капчи с сервера

PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_URL, "http://ххх.com.ua/captcha/a7ee161016abbe72b9baa3f0542681a1.png");
  2.  
  3. // установка метода передачи параметров
  4. curl_setopt($ch, CURLOPT_POST, 0);
  5.  
  6. // установка браузера
  7. curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
  8.  
  9.  
  10. // добавляем заголовков к нашему запросу.
  11.  $headers = array
  12.     (
  13.     'Accept: image/png,image/*;q=0.8,*/*;q=0.5',
  14.     'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
  15.     'Accept-Encoding: deflate',
  16.     'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  17. );
  18.  
  19.  
  20. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


Понятно, что в запросе я запрашиваю заренее известную мне капчу.
Теоритически ... после получения нового GET captcha от меня, сервер должен был перезаписать идентификатор отправленной капчи на мой и тогда вариант №1 прокатил бы, значения сошлись

но это теоретически ..практически пока не прокатывает ...
помогите разобраться !
 
 Top
Invert
Отправлено: 21 Января, 2011 - 11:05:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010  


Помог: 5 раз(а)




Куки смотрели?
 
 Top
Delovoy
Отправлено: 21 Января, 2011 - 11:20:49
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




ты имеешь ввиду прием, отправку кук ?
да, в коде есть

PHP:
скопировать код в буфер обмена
  1. //// Функции для обработки установливаемых сайтом кук.
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, "d:\out\my_cookies.txt");
  3. curl_setopt($ch, CURLOPT_COOKIEFILE, "d:\out\my_cookies.txt");
 
 Top
Мелкий Супермодератор
Отправлено: 21 Января, 2011 - 11:27:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Если URL капчи однозначно преобразовывается в текст капчи - то грош цена такой капче.

Или сами смотрите-изучайте-реализовывайте алгоритмы оптического распознавания текста, или используйте готовые. Например, какой-нибудь http://antigate[dot]com/index.php


-----
PostgreSQL DBA
 
 Top
Delovoy
Отправлено: 21 Января, 2011 - 12:01:41
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Мелкий пишет:
Если URL капчи однозначно преобразовывается в текст капчи - то грош цена такой капче.
не совсем понял что имеется ввиду ?
URL капчи не преобразовывается в вводимый текст

884d06ab17e408443271164 686c49603.png = 3782 (значение кода на картинке)
т.е. никакого явного соответствия между картинкой и кодом нет

алгоритмы оптического распознования, в данном случае не подходят
сайт может поменять начертание, шрифт и т.д. и работу прийдется переделывать заново

вот досмотрелся еще до одного момента
когда я отправляю свой GET /captcha/...
то не вижу его отображения в программе просмотра http заголовков
(пользуюсь Мозила + LiveHTTPHeaders)
но при этом в ответ получаю картинку ...

сопутсвующий вопрос
PHP:
скопировать код в буфер обмена
  1. echo "Загружена капча!" .$cap . " <br/>";
попытка вывести картинку в браузер выводит абзац крякозябликов, а не картинку ...как сделать чтобы было видно именно картинку ?
 
 Top
Champion Супермодератор
Отправлено: 21 Января, 2011 - 12:58:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Если это нормальная капча, то ее можно либо ввести, либо распознать. Почитайте механизм капчи и поймете, что ваши действия проблему не решат. Каждый раз при обращении к капче генерится новый код и значение записывается в сессию. Какой бы ни была ссылка на капчу.

Есть кончено дырявые капчи, но обычная человеческая капча такая.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Января, 2011 - 13:11:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Delovoy пишет:
не совсем понял что имеется ввиду ?

Т.е. если капча запрошенная с определённого URL'а прожуёт значение, которое когда-то там на ней было. В общем - именно то, что вы пытались сделать, на нормальной капче работать не должно по определению.

Delovoy пишет:
попытка вывести картинку в браузер выводит абзац крякозябликов, а не картинку ...как сделать чтобы было видно именно картинку ?

варианта как обычно 2:
0) тег img с указанием адреса до картинки.
1) http://webo[dot]in/articles/habrahab[dot][dot][dot]data-url-images/

Delovoy пишет:
алгоритмы оптического распознования, в данном случае не подходят
сайт может поменять начертание, шрифт и т.д. и работу прийдется переделывать заново

Т.е. вы думаете, что капча существует только для внесения неудобства пользователям?

(Отредактировано автором: 21 Января, 2011 - 13:13:37)



-----
PostgreSQL DBA
 
 Top
biperch
Отправлено: 21 Января, 2011 - 14:18:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




Delovoyне морочь себе голову
 
 Top
Delovoy
Отправлено: 21 Января, 2011 - 14:32:03
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Champion пишет:
Почитайте механизм капчи и поймете, что ваши действия проблему не решат.
можете подсказать конкретно, где есть хорошее описание ?
если каждый раз значение капчи генерится случайным образом, тогда зачем сервер хранит их ?
я сделал проверку - просто в браузере ввел адрес капчи 3-х дневной давности
CODE (html):
скопировать код в буфер обмена
  1. http://ххх.com.ua/captcha/a7ee161016abbe72b9baa3f0542681a1.png

картинка доступна, код тот же самый ...

Мелкий пишет:
Т.е. вы думаете, что капча существует только для внесения неудобства пользователям?

я думаю, капча нужна для защиты от спама. в данном конкретном случае, я помогаю девушке, которая работает риэлтором. Автоматизирую подачу объявлений
 
 Top
JustUserR
Отправлено: 21 Января, 2011 - 14:34:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Delovoy пишет:
884d06ab17e408443271164 686c49603.png = 3782 (значение кода на картинке) т.е. никакого явного соответствия между картинкой и кодом нет
Для осуществления корректной автоматизированной авторизации на целевом web-сервере включающем дополнительную проверку посредством требования ввода значения captcha-элемента - необходимо обеспечить передачу такого параметра запроса для которого производится соответствие с заданным идентификатором сессии в текущей инстанции страницы - в то время как осуществления простого CURL-запроса целевого изображения и передача соответствующего ему captcha-значения анализированного мануальным методом не приводит к результату
Delovoy пишет:
Пользуюсь Мозила + LiveHTTPHeaders но при этом в ответ получаю картинку
Использование предполагаемого вами браузера может приводить к форсированному кешированию локальных элементов ассоциированных с некоторым фиксированным URL-адресом - поэтому его использование для тестирования такой системы не целесообразно


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Delovoy
Отправлено: 21 Января, 2011 - 14:57:44
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Мелкий пишет:
1) http://webo.in/articles/habrahab...data-url-images/
спасибо, получилось!!!
Мелкий ...реально Крупный! Превосходно

biperch пишет:
Delovoyне морочь себе голову
очень ценный коментарий ..спасибо

Здравствуйте, JustUserR Улыбка

JustUserR пишет:
Использование предполагаемого вами браузера может приводить к форсированному кешированию локальных элементов ассоциированных с некоторым фиксированным URL-адресом - поэтому его использование для тестирования такой системы не целесообразно

возможно ли отключить кеширование или каким инструментом лучше пользоваться ?
 
 Top
JustUserR
Отправлено: 21 Января, 2011 - 15:09:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Delovoy пишет:
Возможно ли отключить кеширование или каким инструментом лучше пользоваться ?
В качестве возможного инструмента для реализации предполагаемой задачи допустимо использование приложения proxomitron - в совокупности с браузером не осуществляющим неявное кешрование


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Seliboba
Отправлено: 11 Апреля, 2012 - 10:26:25
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




извените может вопрос не в тему а вообще можно запросами как то обойти капчу или никак ?
 
 Top
Fon
Отправлено: 19 Июля, 2012 - 10:46:23
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Delovoy разобрался с автоматическим постингом?
 
 Top
Мелкий Супермодератор
Отправлено: 19 Июля, 2012 - 10:48:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




С новым годом.
Тема закрыта!


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB