Содержание статьи
Мне всегда нравились организации, которые ставят себя профессионалами в каком-то деле, но к своим делам профессионально не относятся. Сегодня я хочу рассказать об очередном Web-портале по информационной безопасности (в прошлый раз это был securitylab.ru со своей CAPTHA от Битрикс), который по безопасности сайта не соответствует своему названию.
И это www.itsec.ru - сайт издания «Информационная безопасность». И я опять пишу про CAPTCHA. Кто-то скажет, что её безопасность не важна. Я же хочу сказать, что проект CAPTCHA создавался именно для повышения безопасности Интернет-ресурсов. Это защита от роботов, и, как следствие, от спама. А такая защита на портале безопасности, естественно, должна быть. Т.к. бардак, вызванный возможным захламлением форума и т.п.- это прямой удар по репутации издания.
Начнём.
1. Где находится CAPTCHA.
На портале www.itsec.ru этот модуль можно найти при
а. Добавлении комментария к статье.
б. Создании сообщения в форуме.
Оказалось, что данное издание выпускается компанией "Гротеск", которая содержит ещё ряд сайтов:
- Корпоративный сайт компании "Гротек" (www.groteck.ru)
- Агентство "Монитор" (www.telenews.ru)
- Системы безопасности (www.secuteck.ru)
- Broadcasting. Телевидение и радиовещание (www.broadcasting.ru)
- Информационная безопасность (www.itsec.ru)
- Каталог "Интеллектуальное здание" (www.ibuild.ru)
- И т.д.
И эта captcha используется на всех этих ресурсах. Великолепно!
2. Алгоритм.
Сначала я посмотрел URL captcha.
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616f68e76af12e795d
По нему генерировалась следующая картинка:
Обновляя URL, стало понятно, что никакой защиты нет, что значение на картинки генерируется только из URL.
Следующий шаг: определить, какая часть URL используется для генерации изображения. Играемся с URL, уменьшая количество символов с конца.
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616f68e76af12e
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616f68e76af
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616f68e79
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616f68e7
В итоге получаем одно и тоже
Но вот мы дошли до следующего URL:
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616f
Меняем 6-й знак после id с f на 1.
Получаем:
Т.е. это URL и есть контрольный код, с помощью которого генерируется изображение. Случай очень простой. 6 знаков в id и 6 символов на графическом отображении. Причём изменение n-го символа в id меняет n-й символ на рисунке. Осталось определить алгоритм или таблицу соответствия.
Начнём с 6-го символа простым подбором.
http://new.groteck.ru/verification-image/image_confirm.php?id=l46161
http://new.groteck.ru/verification-image/image_confirm.php?id=l46162
http://new.groteck.ru/verification-image/image_confirm.php?id=l46163
Нда. Я думал, что будет сложнее. Понятна логика? Проверим мои подозрения:
http://new.groteck.ru/verification-image/image_confirm.php?id=l46169
А если так:
http://new.groteck.ru/verification-image/image_confirm.php?id=l46160
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616h
http://new.groteck.ru/verification-image/image_confirm.php?id=l4616m
то результат один и тот же:
Т.е. для 6-го графического элемента имеет значение 6-й знак в id. А именно: если это цифры от 1 до 9, то значение графического элемента равно латинским буквам от B до J. А во всех остальных случаях значение будет А.
Этим же способом определяем таблицу для каждого символа.
Приведу конечный результат:
№ символа | значение в ID | графическое значение |
6 | 1 | B |
2 | C | |
3 | D | |
4 | E | |
5 | F | |
6 | G | |
7 | H | |
8 | I | |
9 | J | |
всё остальное | A | |
5 | 1 | Z |
2 | 1 | |
3 | 2 | |
4 | 3 | |
5 | 4 | |
6 | 5 | |
7 | 6 | |
8 | 7 | |
9 | 8 | |
всё остальное | Y | |
4 | 1 | T |
2 | U | |
3 | V | |
4 | W | |
5 | X | |
6 | Y | |
7 | Z | |
8 | 1 | |
9 | 2 | |
всё остальное | S | |
3 | 1 | N |
2 | O | |
3 | P | |
4 | Q | |
5 | R | |
6 | S | |
7 | T | |
8 | U | |
9 | V | |
всё остальное | M | |
2 | 1 | H |
2 | I | |
3 | J | |
4 | K | |
5 | L | |
6 | M | |
7 | N | |
8 | O | |
9 | P | |
всё остальное | G | |
1 | 1 | B |
2 | C | |
3 | D | |
4 | E | |
5 | F | |
6 | G | |
7 | H | |
8 | I | |
9 | J | |
всё остальное | A |
Итог
Если вы - издание, которое пишет о безопасности, то в первую очередь надо подумать о собственной безопасности. Сомнительное удовольствие читать советы от издательства, которое на своём портале не может применить более новые методы создания CAPTCHA, которым уже больше года. Ведь превращение ресурса в помойку – это явно не плюс для репутации.