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)
Мб название слишком громкое? ;)
Пипл, какментим и оцениваем ;)
[ 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)
Мб название слишком громкое? ;)