ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Обход каптчи на сайте Киевстара
  #1  
Старый 01.10.2008, 00:44
Аватар для n3m0
n3m0
Участник форума
Регистрация: 11.05.2007
Сообщений: 149
Провел на форуме:
6373157

Репутация: 247
Отправить сообщение для n3m0 с помощью ICQ
По умолчанию Обход каптчи на сайте Киевстара

Добрый вечер уважаемые!
Наша команда обнаружила на сайте украинского оператора мобильной связи "Киевстар" уязвимость в отправке коротких текстовых сообщений*
(http://kyivstar.net/_sms/)


Она заключается в распознавании капчти. Это грозит тем, что злоумышленник может автоматически отправлять сообщения через этот сервис не выбирая картинки "живой" природы. Т.е осуществить спам-рассылку.

Для распознавания изображений нашей командой был придуман метод "Квадрата".

Суть метода:

Под квадратом имеется ввиду изображение которое нужно определить, является оно или "живой" или "не живой" природой.
Мы проанализировали все картинки, которые предоставляются для выбора
"живой" и "не живой" природы. Потом нужно взять восемь эталонных точек, которые расположены на бёдрах
квадрата. Сравнение первой точки должно происходить по такому равенству:

|R-Re| <= COEF_R && |G-Ge| <= COEF_G && |B-Be| <= COEF_B
где R,G,B - это цветовая схема пикселя тестового изображения,
Re,Ge,Be - это цветовая схема пикселя эталонного изображения
COEF_(R,G,B) - это коэффициенты потери , которые возникают в следствие
подачи изображения разного качества

В итоге, если все восемь точек соответствуют равенству - мы
рассматриваем эталонное изображение.

Мы написали класс, для работы с изображениями
Ссылка:
http://c.glaive.org.ua/ksocr.html
Или код:
Код:
#         ___ _      _         
#        / __| |__ _(_)_ _____ 
#       | (_ | / _` | \ V / -_)
#        \___|_\__,_|_|\_/\___|
#                       
#  Security Group (c) Rubalko Dmitriy , 2008

package KSOCR;
use strict;
use GD::Image;
use Carp;
use constant {
                # К-во эталонов живой природы
                IMAGE_AMOUNT => 15,
                
                # Погрешности в следсвии подачи изображения разного качества                 
                COEF_R       => 45,
                COEF_G       => 40,
                COEF_B       => 65,
                
                # Координаты точек для эталонного сравнения
                POSITIONS    => [ '0:0'  , '69:0',
                                  '0:69' , '69:69',
                                  '35:0' , '69:35',
                                  '35:69', '0:35'],                
};

# хеш '%c'  содержит RGB  эталонных изображений  
# Эталонные точки  0:0/35:0      69:0/69:35      0:69/35:69     69:69/0:35
my %c = ( 1 => [ '196:86:60'  , '143:147:108' , '112:92:51'   , '114:75:35'   ,
                 '56:42:8'    , '89:60:20'    , '47:67:32'    , '41:53:16'   ],          
          2 => [ '118:120:78' , '117:107:53'  , '112:90:49'   , '112:90:49'   ,
                 '201:215:190', '115:100:49'  , '168:182:140' , '184:166:110'],          
          3 => [ '251:248:232', '236:230:215' , '132:150:25'  , '119:126:43'  ,
                 '252:252:249', '252:242:250' , '180:190:52'  , '166:153:97' ],         
          4 => [ '252:253:249', '252:253:249' , '92:114:72'   , '252:253:249' ,
                 '252:253:249', '210:220:195' , '102:114:65'  , '234:244:217'],         
          5 => [ '74:100:47'  , '30:46:17'    , '106:148:65'  , '149:188:75'  ,
                 '74:109:34'  , '119:164:56'  , '209:239:90'  , '117:156:49' ],
          6 => [ '44:53:13'   , '60:99:11'    , '155:201:47'  , '147:164:128' ,
                 '183:190:153', '55:76:17'    , '164:201:58'  , '34:52:7'    ],
          7 => [ '234:215:178', '234:215:178' , '220:215:172' , '234:215:178' ,
                 '107:104:63' , '99:96:42'    , '92:89:55'    , '244:206:111'],          
          8 => [ '117:124:84' , '117:124:84'  , '52:30:4'     , '117:124:84'  ,
                 '91:99:65'   , '91:99:65'    , '184:204:216' , '102:108:78' ],
          9 => [ '252:253:250', '252:253:250' , '244:250:232' , '252:246:245' ,
                 '252:253:250', '252:253:250', '188:182:100' , '92:97:47'    ],
         10 => [ '113:85:70'  , '168:148:112' , '236:227:218' , '165:132:91'  ,
                 '169:147:97' , '124:85:53'   , '214:195:168' , '78:52:32'   ],
         11 => [ '196:179:196', '7:12:10'     , '48:61:88'    , '12:19:16'    ,
                 '44:40:40'   , '116:99:121'  , '49:41:62'    , '152:94:129' ],
         12 => [ '81:72:47'   , '104:117:76'  , '78:61:44'    , '57:73:77'    ,
                 '135:75:5'   , '44:40:9'     , '43:69:77'    , '60:70:51'   ],
         13 => [ '116:98:92'  , '33:37:43'    , '66:68:71'    , '91:91:97'    ,
                 '21:20:20'   , '68:69:84'    , '252:253:251' , '166:154:112'],
         14 => [ '48:81:34'   , '86:60:34'    , '166:168:134' , '129:151:112' ,
                 '66:67:33'   , '113:116:77'  , '180:193:160' , '100:92:52'  ],         
         15 => [ '148:117:100', '218:208:168' , '181:168:113' , '200:192:143' ,
                 '216:208:152', '193:199:129' , '198:178:127' , '170:160:81' ],
);

sub new {
    
    my $class = shift;
    my $self  = {   DEBUG      => 0,
                    FILE_DATA  => undef,
                    FILE_NAME  => undef,
                    @_,
    };
    return bless $self, $class;
}

sub put_file{
    
    my $self = shift;
    $self->{ FILE_NAME } = shift;
    return $self->{ FILE_NAME };   
}

sub put_data{
    
    my $self = shift;
    $self->{ FILE_DATA } = shift;
    return $self->{ FILE_DATA };
}

sub recognition {
    
    my $self = shift;
    my ( $image,$result ) = ( undef,0 );
    
    if ( defined $self->{ FILE_NAME } ){
        
        croak "Файл с именем : $self->{ FILE_NAME } не существует\n" unless -e $self->{ FILE_NAME } ;
        $image = GD::Image->newFromJpeg( $self->{ FILE_NAME } );
    }elsif ( defined $self->{ FILE_DATA } ){
        $image = GD::Image->newFromJpegData( $self->{ FILE_DATA } );
    }else{
        croak 'Не задан файл , или его DATA' ;      
    }
    for ( 1..IMAGE_AMOUNT ){
        
        print "\nПроверка с эталоном # $_\n",'-'x23,"\n\n" if $self->{ DEBUG };         
        for ( my $point = 0 ;$point <= 7; $point++ ){
                           
            my ( $x,$y ) = split ':',POSITIONS->[$point];
            # RGB образца 
            my ( $r,$g,$b ) = $image->rgb( $image->getPixel( $x,$y ) );
            # RGB эталонов живой природы 
            my ( $re,$ge,$be ) = split ':',$c{$_}->[$point];
               
            if ( $self->{ DEBUG } ) {
                
                printf "( %2d:%2d )       R   G   B\n",$x,$y;
                printf "Образец     : %3d %3d %3d\n",$r,$g,$b; 
                printf "Эталон      : %3d %3d %3d\n",$re,$ge,$be;
                printf "Погрешность : %3d %3d %3d\n",abs($r-$re),abs($g-$ge),abs($b-$be);
             }
            if ( abs($r-$re) <= COEF_R && abs($g-$ge) <= COEF_G &&
                 abs($b-$be) <= COEF_B){ 
                 $result++;
                 printf "Совпадений  : %d/8 \n\n",$result if $self->{ DEBUG };
                 return 1 if $result == 8 ;
            }else{
                $result = 0;
                printf "Совпадений  : %d/8 \n\n",$result if $self->{ DEBUG };
                last;
            }
        }
    }
    return 0;   
}

1;
* Администрация сайта была оповещена по электронной почте о найденной уязвимости. Но в течении двух недель мы не дождались ответа и уязвимость до сих пор остаётся рабочей.

В скорем времени ожидайте подробный анализ уязвимостей связанных с распознаванием каптч, а также обзор методов защиты веб-приложений от этих уязвимостей.

С уважением,
Glaive Security Group

Последний раз редактировалось n3m0; 01.10.2008 в 00:50..
 
Ответить с цитированием

  #2  
Старый 01.10.2008, 00:49
Аватар для iddqd
iddqd
Banned
Регистрация: 19.12.2007
Сообщений: 924
Провел на форуме:
4192567

Репутация: 2145


По умолчанию

красавцы)
 
Ответить с цитированием

  #3  
Старый 01.10.2008, 01:03
Аватар для n3m0
n3m0
Участник форума
Регистрация: 11.05.2007
Сообщений: 149
Провел на форуме:
6373157

Репутация: 247
Отправить сообщение для n3m0 с помощью ICQ
По умолчанию

Ну а вот пример, как этот класс использовать:
Код:
#!/usr/bin/perl -w

use strict;
use KSOCR;

my $ocr = new KSOCR( DEBUG     => 1,
                     FILE_NAME => 'image' );
if ( $ocr->recognition ){
    print "Живая природа";
}else{
    print "Неживая природа"
}
Пример отладки:
Код:
Проверка с эталоном # 1
-----------------------

(  0: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 196  86  60
Погрешность :  56 167 189
Совпадений  : 0/8 


Проверка с эталоном # 2
-----------------------

(  0: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 118 120  78
Погрешность : 134 133 171
Совпадений  : 0/8 


Проверка с эталоном # 3
-----------------------

(  0: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 251 248 232
Погрешность :   1   5  17
Совпадений  : 1/8 

( 69: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 236 230 215
Погрешность :  16  23  34
Совпадений  : 2/8 

(  0:69 )       R   G   B
Образец     :  92 114  72
Эталон      : 132 150  25
Погрешность :  40  36  47
Совпадений  : 3/8 

( 69:69 )       R   G   B
Образец     : 252 253 249
Эталон      : 119 126  43
Погрешность : 133 127 206
Совпадений  : 0/8 


Проверка с эталоном # 4
-----------------------

(  0: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 252 253 249
Погрешность :   0   0   0
Совпадений  : 1/8 

( 69: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 252 253 249
Погрешность :   0   0   0
Совпадений  : 2/8 

(  0:69 )       R   G   B
Образец     :  92 114  72
Эталон      :  92 114  72
Погрешность :   0   0   0
Совпадений  : 3/8 

( 69:69 )       R   G   B
Образец     : 252 253 249
Эталон      : 252 253 249
Погрешность :   0   0   0
Совпадений  : 4/8 

( 35: 0 )       R   G   B
Образец     : 252 253 249
Эталон      : 252 253 249
Погрешность :   0   0   0
Совпадений  : 5/8 

( 69:35 )       R   G   B
Образец     : 203 220 185
Эталон      : 210 220 195
Погрешность :   7   0  10
Совпадений  : 6/8 

( 35:69 )       R   G   B
Образец     : 102 114  65
Эталон      : 102 114  65
Погрешность :   0   0   0
Совпадений  : 7/8 

(  0:35 )       R   G   B
Образец     : 234 244 217
Эталон      : 234 244 217
Погрешность :   0   0   0
Совпадений  : 8/8 

Живая природа
Дерзайте

Последний раз редактировалось n3m0; 01.10.2008 в 01:09..
 
Ответить с цитированием

  #4  
Старый 01.10.2008, 01:19
Аватар для LEE_ROY
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

зачет

Последний раз редактировалось LEE_ROY; 01.10.2008 в 01:32..
 
Ответить с цитированием

  #5  
Старый 01.10.2008, 01:21
Аватар для *eXe*
*eXe*
Banned
Регистрация: 20.05.2008
Сообщений: 281
Провел на форуме:
3200135

Репутация: 575
Отправить сообщение для *eXe* с помощью ICQ
По умолчанию

зачёт!!!

оффтоп/ при пополнении оператора КС ваучеров, номиналом в 300 грн, даётся бонус 10 грн. Я часто пополняю. Собралось более 200 грн. Некоторое время не юзал симкарту, а когда обнаружил. то оказалось, что бонус анулился. С чем это связано???
 
Ответить с цитированием

  #6  
Старый 01.10.2008, 01:27
Аватар для sabe
sabe
Постоянный
Регистрация: 16.03.2007
Сообщений: 380
Провел на форуме:
1404552

Репутация: 568
Отправить сообщение для sabe с помощью ICQ Отправить сообщение для sabe с помощью AIM Отправить сообщение для sabe с помощью Yahoo
По умолчанию

молодец дим!

*eXe*
наверника с тем что Некоторое время не юзал симкарту )
 
Ответить с цитированием

  #7  
Старый 01.10.2008, 01:36
Аватар для n3m0
n3m0
Участник форума
Регистрация: 11.05.2007
Сообщений: 149
Провел на форуме:
6373157

Репутация: 247
Отправить сообщение для n3m0 с помощью ICQ
По умолчанию

Цитата:
Сообщение от lee_roy  
Дмитрий что указан в копирайтах это ты
Нет, это не Я. НО этот человек в нашей команде. И он забанен на этом форуме
 
Ответить с цитированием

  #8  
Старый 01.10.2008, 01:50
Аватар для оlbaneс
оlbaneс
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
Провел на форуме:
5609275

Репутация: 1474


По умолчанию

молодцы
 
Ответить с цитированием

  #9  
Старый 01.10.2008, 07:01
Аватар для sabe
sabe
Постоянный
Регистрация: 16.03.2007
Сообщений: 380
Провел на форуме:
1404552

Репутация: 568
Отправить сообщение для sabe с помощью ICQ Отправить сообщение для sabe с помощью AIM Отправить сообщение для sabe с помощью Yahoo
По умолчанию

n3m0
забанили наверника за чтото хорошое.. )
 
Ответить с цитированием

  #10  
Старый 01.10.2008, 16:46
Аватар для Rebit
Rebit
Участник форума
Регистрация: 07.08.2007
Сообщений: 136
Провел на форуме:
2010588

Репутация: 653
Отправить сообщение для Rebit с помощью ICQ
По умолчанию

Маладци ! Ставлю +
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На каком сайте можно надыбать много рус прокси??? diznt Болталка 3 22.07.2008 16:36
Документация по Pci Dss на русском языке доступна на сайте компании «Информзащита» Liar Мировые новости 0 16.07.2008 13:12
Ошибка 404. Как удержать посетителя на сайте? Solide Snake Статьи 2 15.04.2008 23:06
XSS на сайте "Пентагона". Анархия в зоне "gov". k00p3r Уязвимости 8 16.03.2006 02:40
Обход регистрации в Invision Power Board v1.3 Final DeeIP Форумы 1 10.04.2005 20:35



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ