PDA

Просмотр полной версии : [Securitylab hack] Взлом CAPTCHA: Полгода спустя.


Gh0s7
12.12.2006, 20:37
Взлом CAPTCHA на securitylab: полгода спустя


Пипл, какментим и оцениваем ;)


[ I Intro ]
Наверняка все слышали про популярный российский ресурс securitylab.ru. Когда-то на xakep.ru публиковали статью, в которой автор разобрал скрипт генерации картинок (captcha) и подробном описал принцип его работы. Вспомнив об этом, я решил посмотреть, что же изменилось за это время.

[ II Inside ]

Заходим на секлаб, смотрим любую новость и ниже видим формочку для добавления камента:
http://img218.imageshack.us/img218/862/enterpt7.th.jpg (http://img218.imageshack.us/my.php?image=enterpt7.jpg)
Посмотрим, откуда же берется картинка:
http://img207.imageshack.us/img207/1883/image1xh3.th.jpg (http://img207.imageshack.us/my.php?image=image1xh3.jpg)
Видим интересное значение r%D34q%8A
Попробуем поэксперементировать со скриптом.
1) Попробуем убрать %D34q%8A, оставив только r. Видим почти пустую картинку, с одной только четверкой на ней:
http://img137.imageshack.us/img137/5858/captcha3cy2.jpg (http://imageshack.us)
Понятно, что первый символ генерируется на основе простого алфавита :)
Загрузим страницу несколько раз, и таким образом соберем таблицу значений "символ на картинке <--> параметр для captcha_code"
Первый символ генерируется на основе одной буквы (t,u,r,s,p,q) или строки %7E, %7F

2 - t
3 - u
4 - r
5 - s
6 - p
7 - q
8 - %7E
9 - %7F

2) Второй символ. Тут действуем также, как и с первым. Можно релоадить страницу и собирать значения (проще), а можно подбирать captcha_code (бестрее).
Второй символ генерируется на основе строки %DN , где n - число от 0 до 7 или символы C,D

*2 char:

2 - %D6
3 - %D7
4 - %D0
5 - %D1
6 - %D2
7 - %D3
8 - %DC
9 - %DD

3) Третий символ генерируется на основе строки N , где n - число от 2 до 9, т.е. открытым текстом :)

2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9

4)Четвертый символ генерирутеся также, как первый

2 - t
3 - u
4 - r
5 - s
6 - p
7 - q
8 - %7E
9 - %7F

5)Пятый символ генерируется на основе строки %8N, где N - Символы от A до F или цифры 4,5,8,9

2 - %8E
3 - %8F
4 - %88
5 - %89
6 - %8A
7 - %8B
8 - %84
9 - %85

Как видно, символы 0 и 1 отсутствуют :)

[ III Немного креатива ;)]

Имея на руках таблицу кодов, можно попробовать что-нибудь изобразить через captcha секлаба :)

Т.к. я собирал только коды цифр (в данный момент используются только они), то просто напишу 31337.
Смотрим в табличку:
1 символ, 3 - u
2 символ, 1 - %D5 (не используется, но не сложно догадаться, что это %D5)
3 символ, 3 - 3
4 символ, 3 - u
5 символ, 7 - %8B
Получаем u%D53u%8b:
http://img90.imageshack.us/img90/183/captchaxu7.jpg (http://imageshack.us)
http://www.securitylab.ru/bitrix/tools/captcha.php?captcha_code=u%D53u%8b (http://www.securitylab.ru/bitrix/tools/captcha.php?captcha_code=u%D53u%8b)

[ VI Outro ]

По хз-какому-закону, на крупных проектах всегда должно быть что-то, написанное через [cut]...

Когда-то, примерно полгода назад, на секлабе в скрипте генерации были не только цифры, но и буквы. Видимо, сейчас кодеры решели облегчить некоторым людям жизнь и оставили только цифры с 2 до 9 :)
Итог: после того как CAPTCHA от битрикса разобрали по винтикам, кодеры переодически что-то меняли, но стало только хуже ;)

links:

[1] Собственно сам секлаб (http://seclab.ru)
[2] Статья про взлом CAPTCHA на xakep.ru (http://www.xakep.ru/post/31268/default.asp)


Мб название слишком громкое? ;)

fucker"ok
12.12.2006, 21:17
Собственно как такового взлома тут нет (имхо), да есть возможность зарегить 1000 юзеров на секлабе, но кому это надо? :) Хотя для отсылки смс пригодилось бы.
Напоминает мне один забавный случай, когда один мой инет знакомый сделал эти циферки так:
в ручную САМ нарисовал 10 картинок с цифрами, и выводил одну из картинок случайным образом. Тоесть заренее можно было узнать на какой картинке(под каким номером) какие цифры нужно вводить. Когда я это узнал, я долго бился об пол в истерике ;)

_Great_
12.12.2006, 21:34
Собственно как такового взлома тут нет (имхо),
имхо есть, взлом скрипта генерации.
взлом - не такое узкое понятие, как проникновение на сервер

LoneWolf666
12.12.2006, 21:53
а насколько распространена именно такая система?

Gh0s7
12.12.2006, 21:57
а насколько распространена именно такая система?

Именно битрикс достаточно пропиарен, на pickup.ru он стоит.
(в админке чекалка юзерагента, в ней хсс, хотя это мало что даст(( )

А captcha вообще - почти везде.
Иногда пишут так, что проще поломать сам скрипт (как в данном случае), иногда проще распознать картинку.

fucker"ok
12.12.2006, 23:04
хранити циферки в сберегательной кассе (сессии) ;)

m17
13.12.2006, 00:20
самое лучшее что я в таком случае использовал это трехэтажные неупрощаемые формулы от результата которых берутся некоторые цифры начиная с N-ной в дробной части. до посинения можно пытаться угадать принцип генерации. (советую попробывать упростить формулку в Mathematica или Maple, а то кто её знает м.б. константа получиться =))

vectorg
13.12.2006, 02:28
Именно битрикс достаточно пропиарен, на pickup.ru он стоит.мм?
-http://pickup.ru/
Система управления сайтами - Managee CMS
-http://www.managee.ru/

SK | Heaton
13.12.2006, 07:39
Именно битрикс достаточно пропиарен

ну..Можно скзать один из вариантов не все предпочитают битрикс =))
за статью, зач0т

Gh0s7
13.12.2006, 16:54
Хм, а я почему-то был уверен, что там битрикс...
Извеняюсь)