Ломаем капчи сотовых операторов
Случайно зачитавшись темой на форуме Дизель, решил сделать обход капчей местных операторов на предмет прочности.
Как известно, существуют четыре документированных метода обьхода капчи.
- Уязвимости защиты, когда тест проходится, так и не начавшись
- Угадывание, когда капча имеет мало вопросов и можно записать все ответы – достаточно утопичен, на мой взгляд
- Автоматическое распознавание – самый сложный и ресурсоемкий машинный метод.
- Ручное распознавание – набрать 10 индусов и пусть угадывают. Это, собно, даже не обход теста Тьюринга, а его дешевое решение.
Таким образом, нам интересен только первый метод.
Рассмотри его разновидности
- Повторное использование идентификаторов сессии. В этом случае человек вручную проходит CAPTCHA. Идентификатор сессии и ответ на CAPTCHA передаются боту, и тот фабрикует большое количество запросов с этим идентификатором (а значит, и с тем же ответом на CAPTCHA). В идеале идентификатор сессии должен быть одноразовым и ограниченным по сроку действия.
- По какой-либо информации, содержащейся на странице, восстановить изображённые на картинке символы.
- Из-за особенностей генератора псевдослучайных чисел может выдаваться небольшое ограниченное число картинок, для которых можно создать базу данных. Если пользователь должен опознать картинку или ответить на вопрос, картинки/вопросы, естественно, подготавливаются администратором — а значит, для них тоже можно собрать базу.
см. http://ru.wikipedia.org/wiki/CAPTCHA
Метод 3 исключаем. Используем первые два.
А теперь обратимся к сайтам наших уважаемых сотовых операторов.
Не забыв поставить firebug для наших исследований
Начнем с самого популярного
Beeline.
С первого же взгляда замечаем закономерность.
nM9Ng2LrIVHlovLi13qZEWiNYiiml0//Ag+r0e4Sdww= всегда равно 8933. В src, только следует добавить 54;
Приношу извинения Антону (BioWolf), за тройку отправленных в 3 часа ночи смс на его адрес. Не корысти ради а науки для.
Megacom
http://megacom.kg/our_services/send_sms
Вдохновленный первой победой, я перешел к Мегакому. Первый взгляд на код, вселил в меня надежду, что все столь же просто.
Однакож… тут меня постигло горькое разочарование. Код менялся все зависимости от передаваемой в него переменной rand. Не содержал никаких скрытых полей. Видимо, генерился не зависимо от внешнего параметра и записывался в сессию. Молодцы.
Некси
Тут ситуация аналогичная с Beeline.
Передаваемый параметр 73250, всегда соответствует числу на картинке 36777.
Приношу извинения, неизвестному мне Алишеру из Оша. Номер которого с кодом Некси первым попался мне в гугле.
Фонекс
Пераметр id = 13507340, всегда привод к генерации числа 27899.
За небольшим исключением. После отправки смс с указанным id, он меняем свое значение.
Каким образом работает сия черезжопная защита, могу только догадываться. Воображение рисует мне дикие чрезмерные связи, паттерн наблюдатель либо многогиговые базы введенных кодов…. Но сцуко, могу признать, что защита сработала.
Да простит меня неизвестный дяденька с номером 911 455
Таким образом:
- капчи Beeline и Nexi обходятся в лет, создавая угрозу спама всем абонентам.
- капча Fonex, имеет достаточно шумом, но годится для удаленного распознавания.
- капча Megacom, на мой взгляд, наиболее грамотная
- Кател – капчи не имеет вообще.
- О, в этот вечер, к несчастью или счастью, не открывался.







