#!/usr/bin/perl

# Program name:   killspam
# Release date:   January 10, 1998
# Program type:   cgi program
# Language:       Perl 5
# Written by:     Spambuster@
# Documentation:  See =DOCUMENTATION= at the end of this file

$| = 1;
srand(time ^ ($$+($$<<15)));
&read_strings;

# output to a file (not STDOUT) if file name provided as argument
if ($ARGV[0]) {
   $OUT = 'OUT';
   open $OUT, ">$ARGV[0]";
}
else {
   $OUT = 'STDOUT';
}

# get data from path info
if ($ENV{'PATH_INFO'} =~ m#/.*/.*/.*#) {
   ($dummy,$dummy,$IP_n_calls) = split(/\//, $ENV{'PATH_INFO'});
}
else {
   ($dummy,$IP_n_calls) = split(/\//, $ENV{'PATH_INFO'});
}

($IP1,$IP2) = split /[^\d.]./, $IP_n_calls;
$IP_n_calls =~ /[^\d.](\d)/ && ($calls = $1); 
$IP = $IP1.$IP2;
$calls = 0 unless $calls =~ /\d/;
$calls++ if ! $calls || $ENV{'REMOTE_ADDR'} eq $IP || $IP !~ /^\d/;

# count array elements
$word_cnt = @word_list;
$main_dom_cnt = @main_tl_domains;
$other_dom_cnt = @other_tl_domains;

# create random headline of 3-5 words;
$h1_no = int(rand(5))+3;
for (1..$h1_no) {
   $h1word_no = int(rand($word_cnt));
   $heading .= "\u$word_list[$h1word_no] ";
}
$heading =~ s/ $//;

# output HTML header info and headline

print "Content-type: text/html\n\n" unless $ARGV[0];

print $OUT <<"EOP";
<HTML>
<HEAD>
<TITLE>$heading</TITLE>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>$heading</H1>
EOP

# how many bogus email addresses to display (2-6) on the page?
$email_no = int(rand(5))+2;

# create 1 random sentence for each bogus email address
for (1..$email_no) {

   &rnd_stuff;

   # build bogus email address
   $alias_no = int(rand($word_cnt));
   $alias = $word_list[$alias_no];
   $bogus_adr = "$alias\@$rnd_word.$tld";

   # print entire sentence
   print $OUT "$string_before<A HREF=\"mailto:$bogus_adr\">$bogus_adr</A> $string_after<BR>\n";
}


# how many random senteces with no links?
$no_links = int(rand(5))+2;
for (1..$no_links) {
   &rnd_stuff;
   print $OUT "$string_before $string_after\n";
}


unless ($calls >= 5) {

   print $OUT "<P>\n";

   # how many bogus links to display (2-6) on the page?
   $link_no = int(rand(5))+2;

   &rnd_stuff;

   # create 1 random sentence for each bogus link
   for (1..$link_no) {

      &rnd_stuff;

      # build bogus link (1-3 words)
      $lk_no = int(rand(3))+1;
      for (1..$lk_no) {
         $lk_word_no = int(rand($word_cnt));
         $link_string .= "$word_list[$lk_word_no] ";
      }
      $link_string =~ s/ $//;

      # random path info with IP # and # of calls
      undef $rnd_path;
      $yes_no = int(rand(2));
      if ($yes_no) {
         $rnd_path_no = int(rand($word_cnt));
         $rnd_path = $word_list[$rnd_path_no];
         $rnd_path .= '/';
      }

      if (!$ENV{'REMOTE_ADDR'}) {
         $some_word_no = int(rand($word_cnt));
         $some_word = $word_list[$some_word_no];
         $ENV{'REMOTE_ADDR'} = $some_word;
      }

      # hide counter in IP address
      $fill = substr($rnd_word,-2,1);
      $ra_len = length($ENV{'REMOTE_ADDR'});
      $pos = int(rand($ra_len));
      $IP1 = substr($ENV{'REMOTE_ADDR'},0,$pos);
      $IP2 = substr($ENV{'REMOTE_ADDR'},$pos);
      $hide_string = $IP1.$fill.$calls.$IP2;

      # print $OUT entire sentence
      print $OUT "$string_before<A HREF=\"$ENV{'SCRIPT_NAME'}/$rnd_path$hide_string/$rnd_word.html\">$link_string</A> $string_after<BR>\n";
   }
}

print $OUT "</BODY></HTML>\n";

# log access
$ENV{'HTTP_USER_AGENT'} = 'anon. spider' unless $ENV{'HTTP_USER_AGENT'};
$init = "\t-\tinitial execution" unless $IP;
$ENV{'REMOTE_ADDR'} = 'no IP number' unless $ENV{'REMOTE_ADDR'};
$time = scalar localtime;
$logfile = 'killspam.log';  # add a real or relative path if required
open (LOG, ">>$logfile");
$log_string = join("\t-\t",$time, $ENV{'REMOTE_ADDR'}, "page # $calls", $ENV{'HTTP_USER_AGENT'}); 
$log_string .= "$init\n";
#flock(LOG,2);
print LOG $log_string;
close LOG;


sub rnd_stuff {

   undef $string_before;
   undef $bogus_adr;
   undef $link_string;
   undef $string_after;
   undef $rnd_word;
   
   # create random word for domains and file names in links
   # 3-8 characters only
   do {
      $rnd_word_no = int(rand($word_cnt));
      $rnd_word = $word_list[$rnd_word_no];
   } until (length $rnd_word >2 && length $rnd_word <8);
   $rnd_word =~ s/(.)(.)(.)(.*)/$4$3$2$1/;  # make it unlikely to exist

   # out of 8 addresses, use 7 main domains and 1 other domain
   $rnd1_8 = int(rand(8)+1);
   if ($rnd1_8 < 8) {
      $rnd_dom = int(rand($main_dom_cnt));
      $tld = $main_tl_domains[$rnd_dom];
   }
   else {
      $rnd_dom = int(rand($other_dom_cnt));
      $tld = $other_tl_domains[$rnd_dom];
   }

   # how many words to use before and after email address and link (1-6)?
   $words_before = int(rand(6)+1);
   $words_after = int(rand(6)+1);

   # create string before link
   for (1..$words_before) {
      $word_no = int(rand($word_cnt));
      $word = $word_list[$word_no];
      $string_before .= "$word ";
   }
   $string_before = "\u$string_before";

   # create string after link
   for (1..$words_after) {
      $word_no = int(rand($word_cnt));
      $word = $word_list[$word_no];
      $string_after .= "$word ";
   }
   $string_after =~ s/ $/./;

}


sub read_strings {
@main_tl_domains = qw{
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
com
net
net
net
net
net
net
net
net
edu
edu
edu
org
org
gov
mil
uk
de
nl
se
fi
fr
jp
};

@other_tl_domains = qw{
ad
ae
af
ag
ai
al
am
an
ao
aq
ar
as
at
au
aw
az
ba
bb
bd
be
bf
bg
bh
bi
bj
bm
bn
bo
br
bs
bt
bv
bw
by
bz
ca
cc
cf
cg
ch
ci
ck
cl
cm
cn
co
cr
cu
cv
cx
cy
cz
dj
dk
dm
do
dz
ec
ee
eg
eh
er
es
et
fj
fk
fm
fo
fx
ga
gb
gd
ge
gf
gh
gi
gl
gm
gn
gp
gq
gr
gs
gt
gu
gw
gy
hk
hm
hn
hr
ht
hu
id
ie
il
in
int
io
iq
ir
is
it
jm
jo
ke
kg
kh
ki
km
kn
kp
kr
kw
ky
kz
la
lb
lc
li
lk
lr
ls
lt
lu
lv
ly
ma
mc
md
mg
mh
mk
ml
mm
mn
mo
mp
mq
mr
ms
mt
mu
mv
mw
mx
my
mz
na
nc
ne
nf
ng
ni
no
np
nr
nu
nz
om
pa
pe
pf
pg
ph
pk
pl
pm
pn
pr
pt
pw
py
qa
re
ro
ru
rw
sa
sb
sc
sd
sg
sh
si
sj
sk
sl
sm
sn
so
sr
st
sv
sy
sz
tc
td
tf
tg
th
tj
tk
tm
tn
to
tp
tr
tt
tv
tw
tz
ua
ug
um
us
uy
uz
va
vc
ve
vg
vi
vn
vu
wf
ws
ye
yt
yu
za
zm
zr
zw
};

@word_list = qw{
leicester
sudden
raincoats
between
until
daily
elementary
ornaments
oyo
expensive
editorial
rival
important
rest
fairly
placed
towel
starting
irrevocable
decision
agent
replacement
lord
merchant
signature
unusually
samih
perhaps
convince
arthur
curtain
wclr
places
arranging
calling
partner
covering
certificate
july
his
variety
hamburg
admission
und
accurate
sound
dalmeny
examined
individually
confirm
reports
lose
connected
houses
equal
noted
pension
furnishing
seems
armstrong
carrying
installed
loss
unbelievably
lost
only
anywhere
drake
admission
monday
cutlery
harris
notes
meet
triplicate
submitted
june
more
someone
resources
armstrong
conveniently
specification
descriptive
therefore
insufficient
consecutive
failure
prefect
allowances
iberia
ground
policies
tired
macdonald
most
death
for
instead
ramsdale
ward
goes
textiles
note
earliest
bombay
glass
asking
unsatisfactory
macdonald
telephone
declaration
informing
beirut
quote
patterns
produce
exhibition
chingford
greatly
view
attending
product
exceptionally
effort
use
cheques
enjoyed
maintain
notified
chingford
collins
organizing
prospectus
liberal
fred
free
fraser
cables
kuala
convincing
consideration
south
company
conference
correspondents
ministry
fuad
york
just
camera
usual
christmas
beginning
activities
influence
albert
observed
requests
discounts
right
courteous
suffer
precautions
visiting
christmas
purpose
cases
advance
dozens
authorizing
clothing
engagement
towns
eclp
net
cabinets
new
rising
linguist
radio
declare
relationship
watts
settled
spanish
formula
velvet
fulfilled
expense
reading
over
apparently
dealers
compare
florence
normally
undertakings
your
concerned
karim
department
saudi
dare
teaching
involved
rail
punctures
march
feels
punctually
frank
salesmen
reflects
found
aldridge
lowery
barton
gone
error
langley
specialized
disappointment
scottish
welling
insure
data
lowest
date
arcade
semir
county
introduction
broomfield
period
blots
consignment
singapore
home
good
braden
magazine
bridge
suited
compensate
constantly
sticks
head
teacups
samples
died
homs
domestic
will
drawn
wreck
reminding
typewriter
hear
crockery
heat
avenue
singapore
leyland
mere
would
feature
business
east
generously
usually
problem
importance
awaiting
sometimes
assured
electrical
later
advertisement
valletta
birmingham
contribute
weeks
american
whitelaw
prices
persuasion
movement
faith
hudson
compelled
exact
barminster
jean
bungalow
expires
statistical
concerning
boat
suggestion
during
strength
boilers
after
typewriters
such
from
haddad
bremen
entitled
midminster
university
heard
delivery
entitles
happier
indeed
sincere
acquire
owner
gstetner
silent
told
appeal
cathav
reddy
unwilling
appear
cathay
stencilling
effects
estimated
consular
continued
construction
reconsider
pleasanter
gramophone
days
visa
leathercraft
arab
continues
principles
popularity
minimum
rugs
ranging
dotrice
jarvis
nor
eight
not
performance
now
announce
reduced
services
tons
sailing
settling
preston
plan
faithfuliy
contained
mansura
winifred
all
took
expanding
protect
resin
present
container
honoured
disappointed
van
smart
customary
lady
emptying
approximately
settle
decline
ditta
paper
with
heavy
lustre
leaves
issuing
sharply
years
happened
measuring
fixed
and
fenchurch
moderately
invest
area
buyers
commercial
excludes
file
increasing
peller
investigation
privilege
any
washer
worthwhile
outer
james
follow
gazette
immediately
regretfully
catalogue
bailey
fenchurch
rule
faithfully
filing
floor
mazzawi
torn
house
stock
australia
than
that
stencil
happily
impossible
understand
processing
held
successful
encl
single
liability
australia
cancel
promptly
help
prove
assessing
review
allowable
headaches
timesaving
german
exceptional
proportion
departmental
television
debit
leeds
harmful
are
cylinder
conversation
eleven
staying
get
tourer
sixty
indent
damaged
harris
individual
tour
latter
justify
answer
avoid
travelling
otherwise
marilyn
surfaces
friday
johnson
ask
dover
cleaning
coke
yours
other
italy
operating
dickson
sicily
oral
them
then
authorization
model
docks
habib
cracks
commissioner
channel
coast
they
drive
marketing
bond
prospects
wholesale
correspondent
town
thomas
misunderstood
introduced
operation
correct
youth
coats
features
deposited
marketing
letters
come
helping
beirut
book
elderly
merchant
controls
wright
householders
publishing
adopting
quotations
different
three
countries
vehicle
buildings
here
strictest
coffee
nearly
despatch
much
nominal
words
toys
limits
hers
breaks
forties
banque
receiving
provided
queen
refusing
manuscript
discounting
requesting
engineering
deansgate
provides
joynson
acme
willing
agency
clerkenwell
dean
this
transactions
sportswear
morning
dear
guaranteed
morninq
telegrams
inequality
aside
rather
edges
bore
deansgate
calls
born
oblige
learn
many
assist
sheet
suleiman
peace
replaced
leaders
ramsdale
conferences
acknowledgment
pasting
least
journal
telegraph
fashionable
pleasure
problems
conscientious
acknowledged
skid
both
needs
europe
junior
telegraph
naturally
located
equally
prince
visits
temporary
packaging
lowering
passenger
ordinary
seafarer
returned
judge
imposed
chinaware
last
cost
wilton
jones
dozen
tripoli
windsor
late
passenger
got
leave
accept
protest
exhibition
street
overlooked
shipments
occasional
peak
items
dickinson
phyllis
photographic
booklet
works
parcel
arts
church
quick
carpeting
congratulations
life
dickinson
county
salvage
sharpe
gradually
smith
walker
allowed
difference
leman
store
credits
despite
revise
smaliwood
lift
estimating
clothing
luxury
credit
hardly
diploma
acts
compliments
square
thursday
removal
published
blame
interests
referring
minor
programme
jobs
woven
leaflets
inclusive
forgive
drafted
publication
consignee
accompany
gather
although
peter
beautiful
represented
referring
thirty
wednesday
strikes
weighs
weight
chests
mistranscriptions
fully
sunshades
aware
yard
weekly
history
country
publicity
printed
cheaper
complete
nationale
obsolete
gain
lebanon
apparently
wednesday
failed
against
secondary
iran
interesting
latest
even
letter
scottish
ever
stating
design
nationale
off
obtain
chadwick
manual
owes
warden
holding
like
secondary
cent
split
something
orders
bringing
baron
removed
forced
lawson
stainless
blessing
taylor
brought
accommodation
books
serial
madam
running
trader
station
thus
speaks
bedroom
educational
discontinued
introduce
building
its
labels
payers
luncheon
employed
broomfield
people
whitelaw
famous
certainly
reorganization
realize
cloths
limp
naish
fashions
murumbi
carson
line
underwear
john
housemaster
april
birmingham
hall
physics
outlined
delivery
leonard
increasingly
reminded
widespread
must
fruit
gstetner
renewal
bindings
join
clothes
comply
intensive
drury
barminster
deciding
paint
continuing
economics
decisions
stated
everything
concerning
manchester
hands
appointment
paints
foster
states
pillow
persuade
midminster
shavers
holidays
surprise
support
reproduction
old
hani
agents
colston
central
local
arising
travel
gross
secretarial
franconia
borough
nevertheless
canada
midland
accra
phone
wardle
working
economies
replacements
bartholomew
services
businesses
opens
collect
supplying
schmidt
areas
ability
damascus
franconia
since
crippled
faced
derby
pens
tyres
winifred
might
economy
cameras
presume
one
references
take
tongued
manager
list
commencing
specification
rough
striking
talk
largely
back
speak
cushion
missing
booth
donation
simpler
value
prints
reliance
piece
royal
flaw
steady
oldest
middle
proceedings
territory
tokyo
attention
walthamstow
college
miss
attractively
bangkok
anne
wares
wished
requirements
parker
succeeded
fibre
permission
was
transmitted
way
varnishes
wishes
going
convinced
tragic
commercial
gave
quite
gift
consumer
had
directors
weighing
requested
directory
wanstead
surrender
separately
twice
has
contract
staircase
upon
decided
anything
tape
inform
drafting
trace
brooks
following
tennis
speed
price
iron
bags
relate
consumption
transferred
promised
have
ghadban
denied
enclose
intended
office
trade
effective
following
showrooms
promises
relied
inspect
spending
restricted
universal
simpsons
high
repeat
seven
keen
giving
overcommit
keep
united
respectable
buying
wet
concluded
unsuited
covers
our
out
universal
joined
begin
round
western
positions
recorders
draw
whereas
largest
revocable
task
nothing
remainder
fortunately
limit
her
owe
opening
open
own
developed
wood
unmixed
tidy
unwise
registration
movements
heating
kisby
prevent
booksellers
bowls
robinson
centrally
who
lytham
gilt
conveying
yet
raise
staff
acting
investigations
particular
why
where
instruct
knowing
provided
baggage
employers
dickens
seltmann
tripoli
lumpur
hamburg
whatever
japanese
monthly
partners
reports
asks
stage
oyo
foreach
while
pieces
action
train
luxurious
durham
tender
road
crane
replying
but
cairo
occasion
riachi
coverings
lancs
year
drew
persuading
nervous
linings
progressive
word
bank
ozs
suleiman
him
emergency
recent
work
his
dependable
vouch
worn
attracts
failure
hacker
revision
what
january
parents
media
metcalfe
manner
ceased
demonstration
school
plates
brothers
overtime
supply
exceed
little
route
along
barbir
studied
vehicles
spend
deferment
studies
touring
seafarer
spent
become
competent
facts
controlled
hesitate
enjoyable
oversight
coming
based
reported
schooling
profits
machines
doeskin
girl
an
appearance
giro
as
at
french
hoole
lebanon
montreal
roneo
fountain
novel
shaver
print
affectionately
branch
co
when
won
forward
saucers
company
southern
slip
by
applied
appliances
aleppo
checked
limited
applies
time
thorough
dm
co
secretary
kept
tenders
certificates
anderson
stand
active
november
bath
carter
describe
retail
retain
standards
overtrading
geography
harry
supplied
carr
recognized
downs
hot
investment
how
sympathize
always
motor
secretary
spring
do
thursday
payee
supplies
dr
durability
teacher
case
trial
fear
white
industry
basic
those
courses
postages
expect
give
basis
contrary
kerr
glenqarry
regard
reading
followed
although
you
sympathy
dealers
unloading
remit
untrue
pay
illustrated
spett
rights
glenqarry
lancashire
often
finding
timber
commence
insurance
handled
friend
signed
annoyance
chadwick
intend
shipping
designed
insurance
overseas
generous
putting
north
langley
he
start
mcdermott
lighter
installation
welling
additional
suitable
presentation
feel
scholarship
transact
accounts
political
broken
feet
quarter
successfully
broker
ib
if
telegram
rome
teacups
installing
initiative
in
act
strict
direct
growth
carriers
is
order
it
watkinson
tuesday
teapots
state
pen
opportunities
branches
per
leyland
add
badly
can
star
urgently
fashions
education
watkinson
stay
marlborough
title
assurance
ensures
follows
cooper
except
approximate
rewarded
some
fortnight
radiator
roof
losses
tufnell
granting
difficulties
opinion
room
commission
bill
laboratories
concern
children
package
seat
wondering
sizes
poplin
reader
arrangement
progress
twelve
pressure
whom
four
capital
tribute
unit
ms
sons
catalogues
drawing
age
senior
qualities
ago
fabrics
grant
bind
mr
extinguisher
airport
mentioned
my
basra
century
excess
contain
of
nl
cancelled
castle
no
premium
confirms
joseph
copper
manchester
dotrice
firma
atlantic
panel
damascus
seemed
idea
of
promising
diplomas
air
on
pleased
firms
or
pump
fell
merchandise
generally
hvde
seek
seem
felt
seen
preston
crisis
pilferage
scores
relations
titles
grooved
leathers
correspondence
import
bathroom
including
advantages
finely
foreign
delighted
develop
persistent
strike
fallen
jordanian
awarded
ports
acquainted
behalf
reliance
delightful
still
various
colleges
broke
jordanian
occurred
raised
all
encourage
please
withhold
modern
piping
printing
gazette
refer
shortly
warning
duplicator
member
confident
straightforward
police
sherry
establish
render
so
mazzawi
precautionary
loses
st
board
saving
trading
pupil
currie
liners
ghanem
policy
and
wanstead
expert
holds
improving
distributor
messrs
contract
loading
clerical
cover
stores
to
any
reason
jackson
consequently
female
wonder
associations
vessel
revised
convey
grave
invention
testimonials
interview
association
push
boxes
times
family
popular
lagged
furnace
preceptors
resulted
first
particulars
france
lyceum
also
hicks
city
completion
purchase
watson
simpsons
purposes
writing
organizations
lodge
prl
material
son
riachi
sell
pro
cause
america
sales
lines
we
taking
johnson
priority
earlier
discount
request
finest
rayon
dickson
brochures
stamped
slightly
phase
invoiced
wait
are
bamford
suggestions
recovered
invoices
acknowledge
stop
comments
specially
counties
send
welcome
annes
efficiency
temporarily
sent
burton
ask
quoting
robinson
occupied
statistician
floors
put
brochure
paris
seltmann
prepaid
alpha
japanese
construction
deafened
victim
warmer
recovery
walk
each
leathercraft
lagos
easier
promptness
jordan
lebanese
shirting
eighteen
replying
ungenerous
accepting
photographs
joynson
plastic
minute
stocks
portable
enables
having
companies
carpet
aspect
brandon
morninq
near
insulation
ought
storms
neat
harris
universities
retire
every
matter
confidential
irene
want
information
selection
enough
unintentional
selected
existing
iberia
destroyed
australian
powerful
brodie
person
consider
victoria
required
prompt
instructed
protected
presented
confidence
requires
more
despatched
hollander
bombay
sought
pattern
sets
offers
soldering
venture
tabulating
beirut
delivered
beaver
hollander
provide
meanwhile
need
covenant
batch
montreal
most
copies
naked
disturbed
holiday
entirely
stands
ward
ware
pages
tabulation
warm
warn
southern
meanwhile
friction
soiled
fraser
creates
advantage
am
an
expected
comment
wash
as
enquiries
escaped
at
regularly
failing
anderson
race
inside
november
bell
arranged
inclined
be
easily
asked
britain
wide
attended
anyone
windows
charm
kingsway
delay
myself
methods
atlas
enquiries
supplies
thank
ellis
thousands
by
packing
never
renew
tehran
bankruptcy
dislike
really
behind
engagements
prepare
co
customer
marked
fuad
formica
acted
selective
market
de
radiators
according
wife
accidentally
shipped
canon
dm
do
splendid
dr
velvet
england
undertook
hotel
their
chief
direction
enclosing
clean
harrison
clear
packed
front
discharge
according
prolonged
theirs
goodwin
grey
feeling
oneko
ex
shipping
type
styles
efficiently
fidelity
precaution
angelika
accounts
lowery
stressing
described
kind
samuel
london
thick
prospective
describes
go
about
arcade
combined
county
ways
tyre
bad
rail
documentary
especially
fuel
above
he
bridge
profit
quicker
whether
sidon
manufacturers
themselves
dearly
hold
ib
preston
salary
willingness
if
examinations
offering
offer
warmth
knew
in
is
it
arabia
unpaid
refers
home
charge
suggested
ears
cancellation
mouth
its
moment
hudson
forwarding
homs
will
international
closely
westall
ease
satin
howard
founded
leonard
fellow
during
east
rooms
carol
calculated
easy
enquiring
manufacturing
reluctantly
light
obligations
reserve
meets
owing
child
handling
enjoy
indeed
bed
lc
housemaster
coole
wind
personnel
cathav
cotton
question
accepted
cathay
unfortunate
payable
music
ltd
administration
washable
money
highquality
duplicators
electric
hope
excuse
atlantic
me
such
before
personnel
borough
there
libraries
mutually
mr
examples
dictation
ms
again
china
walls
approval
coating
my
members
slight
schmidt
transport
jarvis
watches
assam
recommendation
offence
widen
mixed
these
nl
maintained
wider
cameras
estimate
no
jean
intelligent
workmen
production
coat
syria
abroad
suffering
confirming
transport
necessary
wrote
uncleared
full
of
textured
shock
on
grow
discover
or
quickly
keeping
normanshire
discussed
acceptance
overdraft
selling
big
unless
committing
she
bright
today
the
remained
version
enable
perfect
printing
identical
bottled
persistent
tools
style
bills
college
wish
early
alternative
approved
shoes
perth
peller
rich
pretty
membership
sir
sincerely
rash
helped
amounting
unaware
unsold
bailey
elizabeth
pleasant
merchandising
with
mistaken
hour
think
dock
satisfying
subjects
balance
stages
wits
rate
cardiff
explaining
planning
made
making
elizabeth
walthamstow
reasonable
hearing
doubt
next
know
investments
harveys
managing
so
chambers
suit
lambert
st
calculating
freight
understandable
everyone
reasonably
commitments
review
embassy
watch
comprehensive
german
appoint
jennings
headmaster
unfortunately
sympathizes
centre
dictated
translations
delays
to
committed
better
silks
worsted
japan
does
bears
drying
remember
mathematics
confess
completing
stereo
stationery
articles
famagusta
furs
up
preceptors
stevens
us
clerk
handbags
famagusta
completion
probably
grocery
third
shortest
thinking
friday
webb
invoices
overheads
appreciated
macdonald
water
reputable
deeds
hynes
counties
hundred
reached
sicily
remove
charged
tokyo
nothing
consent
reaches
we
charges
through
lining
callers
using
brand
facing
sums
pricelist
son
similar
chingford
declared
unqualified
cartons
public
formal
coke
mail
repetition
main
spacious
furnishers
considerable
until
efficient
oral
visible
lading
wright
chapman
pounds
payment
lebanese
considerably
dickens
cold
connections
itself
appropriate
regret
waterproof
english
nearly
files
centralized
possession
interested
make
dread
choose
suggest
come
suppliers
dream
containing
terms
guide
payments
astins
oxford
yet
frequency
daily
householders
crescent
difficult
objection
engineers
undercoating
law
month
drake
thanks
existing
disadvantage
punctual
mother
samih
detail
postal
organization
british
tanzania
january
assistant
rims
moved
sure
true
lbs
victoria
insulation
deformed
but
former
shops
buy
depend
acknowledgment
circular
deal
scarves
dean
economical
clements
dear
studies
happy
installations
justified
deliver
costs
europe
australian
many
occupation
justifies
junior
deposit
naming
copy
boards
savings
replace
beginners
returning
foregoing
prince
jenner
proceed
excellent
responsible
protection
wildman
gloves
short
afterwards
instructions
position
languages
wilton
beginners
careful
posted
saucers
recover
stephen
qualify
believe
poster
pupils
scientific
being
called
transit
dealings
distinction
limited
london
expenses
kingsway
mistake
nelson
harvey
unknown
south
tenders
cost
church
deep
condition
tomorrow
mark
customer
rise
risk
mica
webster
special
session
telegraphed
arrangements
expressing
photographic
convenience
kuala
leggings
square
higher
deducting
consumers
lusaka
sirs
computers
undertake
bradley
griffiths
harrison
premises
stressed
shown
proved
without
shows
pool
deduction
poor
griffiths
displays
manage
goodier
adequate
undercharged
mcdermott
trustworthy
raincoat
karim
exceeded
angelika
you
drivers
prefer
refund
continue
very
valerie
liabilities
clearly
illustrated
robert
radio
lasting
watts
understanding
job
waterproofs
read
officer
offices
labour
importers
upwards
kindly
conclude
classes
lawson
machine
stolen
saudi
bedford
taylor
tuesday
indefinite
teapots
semir
port
vacancy
colours
testimonial
selcombe
consultant
solicitors
march
watered
commonwealth
sufficient
wellequipped
several
bring
frank
elite
compels
proprietor
settlememts
exactly
examination
discuss
whole
reveal
walters
west
post
affect
raw
granite
would
glazing
weather
smaller
dealing
softness
later
increments
tufnell
quantity
appears
clapton
can
regular
safes
car
represent
disappointing
students
responsibility
appeared
marlborough
challenge
include
explains
highly
lucky
refuse
strawberry
small
alexandria
bedclothes
extension
result
bristol
unfair
assorted
anxious
snow
mile
century
newly
resume
calculated
regarding
amount
states
urgent
undeclared
reddy
conditions
half
red
intimate
arbitration
advertising
hall
agents
woodford
varies
research
after
regarding
scope
remain
strictly
ibadan
wardle
process
inspected
dress
injury
mind
mine
twenty
honours
eight
weigh
quebec
national
messages
syllable
transistor
hand
maximum
proceeding
hani
draughts
occasions
unsuccessful
plastics
ltd
quebes
quality
housewife
course
nevertheless
tea
bedspreads
diminished
spoke
merchandise
handed
whose
typewriting
removing
cycling
ours
living
suspended
compared
confirming
things
should
unpunctual
ditta
closure
rid
substituted
imported
total
replied
painted
minutes
himself
answering
middle
computer
debited
glasgow
benefit
investigation
financial
parker
recently
smart
statements
trading
distributors
obliged
paper
given
extensive
bicycle
programmes
gives
hard
heating
the
managing
chairman
field
personal
financial
notable
chambers
jackson
unpacked
neither
complain
germany
volume
notably
jennings
miss
restoring
society
incur
purses
anne
furnace
shade
newcastle
confirmation
household
remember
james
hours
young
breakage
representation
glad
wanting
meetings
institutions
noise
record
ended
basins
house
newcastle
causing
dealer
stenogram
assess
america
prepared
lead
arose
usable
leak
control
upon
cannot
shipment
united
preferably
force
stenogram
extended
contracts
reservation
assets
combination
abilities
studying
bamford
larger
considered
publishers
margate
consented
have
handle
account
leeds
model
reorganize
security
superintendent
drive
attracted
manufactured
further
high
knowles
customers
leaving
receivers
manufacturer
manufactures
haberdashery
credere
headed
attached
cutting
fitted
dover
risen
yours
italy
safely
customers
hanson
barlow
season
respects
approaching
islands
inexpensive
statement
habib
august
harold
manufacture
principal
ticket
preparation
lumpur
defer
gordon
afternoon
plastic
lord
within
doubtless
crescent
bowring
youth
illness
reporting
sorry
background
july
brandon
mechanical
left
council
invite
bazargani
riachi
representative
sufficiently
tanzania
republic
three
fault
lbn
recent
lancastria
exchange
for
engage
hacker
words
bazargani
makes
successes
aged
june
shall
arthur
withdrawal
enquire
clements
devaluation
report
queen
textile
chamois
regards
school
plates
enquiry
effect
learning
year
moderate
barbir
run
guarantee
call
information
may
departments
preparing
recorded
monday
destroy
choice
conscientiously
carpets
verify
came
remarkable
await
recorder
natural
wclr
backed
lovely
coming
official
cut
risks
tampered
reasons
satisfactory
training
page
general
jones
panniers
bowcott
hasten
intentional
familiar
safest
introducing
obligation
initial
expenses
deliveries
october
branch
astray
suggests
forma
december
axminster
corresponding
aleppo
fred
extra
forms
improvements
normal
britain
precision
safety
admitted
referred
smaliwood
margins
among
leading
equipment
because
describing
custom
axminster
paid
february
settlement
lateral
york
just
advertise
immediate
share
comes
preparations
wrist
cabled
remind
rates
reliable
repay
together
thought
issue
deepest
cables
write
publications
wormald
works
england
card
explained
care
surprisingly
inspection
informs
proposals
nairobi
named
smith
world
carr
families
adequate
manchester
leman
consignees
fancy
tests
names
allowance
voice
goodwin
albert
numbers
case
soft
cash
topping
pale
informative
approach
your
prospect
favour
section
habits
disease
label
passed
reach
secure
represents
collected
passes
valid
toilet
added
attract
blankets
figures
successor
typing
peter
leather
treated
selcombe
arithmetic
columbia
invoice
award
aware
baron
ready
weekends
whether
summer
dreams
gelling
southampton
export
eclp
installation
guarantor
forty
purchasing
quebec
bardsley
less
speech
setting
ranges
however
barton
delivering
fore
trends
authorities
naish
form
proprietor
fors
westall
persuaded
nigeria
madam
explanation
speeds
jameson
sold
sole
reader
original
banish
expectations
sad
april
settlements
maturity
pipes
avenue
certain
thereabouts
afraid
endeavour
genuine
saw
space
say
partnership
some
discolour
from
priced
part
wastes
transcripts
campbell
fleming
agree
woodford
prices
authority
terminate
endeavour
finished
advertised
midlands
typist
nigerian
suitability
recovering
worth
pass
approached
past
ceaseless
alexandria
learned
double
four
castle
day
matters
strongly
curse
sons
ordered
obtained
scale
rackets
visit
watches
visa
national
arab
haddad
drury
bremen
mention
accra
paint
traffic
soon
varying
surprised
apologies
plastics
tells
address
papers
reply
teas
standard
derby
foreseen
competitors
see
trouble
available
headquarters
eventually
set
regulations
selling
assume
superiority
build
mrs
extinguishers
documents
far
inconvenience
pound
gained
lady
thesis
since
colour
del
serge
poorer
correctly
reams
please
booth
preference
deeply
anticipation
normanshire
seeking
favourable
forget
ships
bicycles
rapidly
favourably
authorize
she
duty
included
practice
inventions
cardiff
policy
recall
includes
linked
factory
into
qualifications
value
harveys
babcock
quantities
lambert
royal
serious
sorrow
degree
sir
registered
sit
that
which
useful
six
embassy
buyers
affairs
encl
france
did
refusal
die
assure
racing
reduce
enjoys
carriage
damage
openaccount
touch
stevens
shipment
hardware
conversations
associations
trade
interviews
sky
enter
seven
related
metcalfe
heaters
known
complaining
knows
repaid
city
grateful
appreciative
growing
attend
whenever
bankers
carefully
essential
cream
wrapping
wooden
then
pink
separate
they
bear
average
gladly
illustrations
audited
language
fixing
town
refused
outstanding
instance
health
chapman
convenient
payment
knocked
garments
reaching
kisby
shares
english
book
reputation
advice
son
tell
away
difficulty
ship
could
notifying
splendide
heater
establishing
placing
irritable
jordan
yards
recommended
criticism
blue
unavoidable
final
thomas
lifting
wants
seriously
absence
regrettable
stage
republic
stocks
standing
splendide
having
altered
afield
government
crane
operate
helpful
lancs
practical
finance
british
passing
acme
agreeable
this
been
disturbing
particularly
recording
liquidator
treat
background
either
wanted
count
specialize
reference
objections
practical
perhaps
lag
brodie
wages
suits
while
banque
contains
yourselves
lancastria
law
lay
confined
dalmeny
bookkeeping
cairo
reference
face
confidential
lbn
fact
lbs
previously
fifty
notification
for
adjust
wildman
press
both
events
beaver
noon
upstairs
arrange
embarrass
purely
entire
furnished
highest
subject
conduct
output
sum
professional
developments
december
stephen
button
show
roneo
inability
serve
auctions
student
instead
hardwearing
utmost
lightness
waiting
led
systems
overdue
inside
due
february
test
secondly
figure
arisen
weekend
presumably
claiming
let
character
ample
looking
unable
hoole
distributing
arts
webster
steel
solution
guidance
williams
tehran
hoping
increase
enclosed
considerate
preceding
collins
street
tendency
unforeseen
wiltshire
completed
lump
bell
distribution
beyond
current
bradley
frustrated
market
needed
longer
testify
quarterly
apologize
acts
strawboards
written
entry
without
note
birthday
confirmed
wiltshire
individuals
fail
sample
fair
sometime
sharpe
walker
harry
net
goodier
new
downs
spett
washing
gartside
payee
edge
human
solid
credit
complained
leaflet
fifteen
white
bradford
valerie
booking
likely
compensation
attendance
months
cassette
trying
cabin
officer
formalities
noticed
samuel
london
iran
columbia
even
warehouse
accompanied
machine
bedford
spanish
window
orange
fall
expand
vital
edit
competing
wherever
cottons
developing
outlets
several
great
constitution
bardsley
private
sight
safe
pasted
walters
kind
llp
meeting
questions
large
north
addition
shillings
cable
drawers
agreement
edinburgh
repairer
opened
trend
misunderstanding
advised
arabia
buyer
bought
common
duties
orders
auction
directions
arise
edinburgh
schools
advise
order
serial
trader
hospital
howard
complaint
unmarried
line
flexible
sizes
best
swivelled
john
contributions
mutual
budget
dishonour
bristol
campbell
said
colleagues
collecting
people
bankrupt
sail
sheffield
amazingly
midlands
nigerian
green
typewriters
low
close
delayed
boiler
elements
phoned
campaign
dishonoured
carson
demand
basra
sheffield
remittance
collection
match
before
relating
cloth
showing
drafts
thailand
showed
impressed
honours
steps
firma
barclays
superb
invited
postage
circumstances
inspire
frayed
signs
sale
released
kitchen
adding
quality
personally
series
commerce
worked
unusual
fast
not
results
foster
pens
printers
worker
increases
hoardings
same
burglary
guardian
issued
increased
source
chartered
canada
clears
unless
honour
disappoint
list
increases
jean
exceeds
representatives
ltd
turnover
satisfaction
impression
expenditure
bicycles
though
nature
relieved
proposal
mowing
glasgow
tea
satisfied
accommodate
routes
stress
ten
quoted
craftsmanship
mansura
invitation
friendliness
fratelli
germany
immediately
society
valued
improve
place
details
values
urgency
derive
dock
the
centre
times
concise
listed
first
shorthand
proposed
purchases
out
complaints
proposes
director
unfairness
showroom
cover
kindness
destination
fourteen
central
nylon
thoroughly
sales
taffeta
lines
second
errors
under
margate
medium
side
benghazi
inviting
does
account
brooks
hicks
informed
distressed
passport
facilities
enterprise
knowles
answerable
fill
office
valuable
saturday
wear
bearer
exterior
webb
legal
decorative
ignored
skins
number
currency
range
islands
save
accountant
footing
wood
marilyn
steadily
spared
command
find
event
loose
fine
fulfil
development
married
alpha
advancement
toastmasters
specified
spares
sign
annes
lagos
bowring
channel
entering
allow
craftsmen
september
capable
wholesalers
council
empty
johnsons
astins
oxford
expressed
scotland
level
recommend
sailings
check
paris
respectively
letters
road
september
extend
lower
thanks
express
engineering
week
evening
expire
surveyor
lytham
obtainable
service
ton
too
top
irene
faulty
end
extent
clerkenwell
rinsing
ablest
bank
furnishing
textile
jones
work
government
established
currently
spends
unchanged
nominal
claimed
hoped
allows
what
tended
winter
reliability
carried
hopes
examining
durham
tender
fire
entered
carrier
carries
streets
every
firm
crossed
means
others
organization
meant
unbreakable
require
method
chance
jenner
automatic
covered
plane
silk
kindnesses
success
yourself
man
checking
glove
plans
general
cambridge
try
finish
bowcott
done
received
may
frequent
severe
competition
raising
october
views
traveller
giro
receiver
expansion
journal
cambridge
envelope
client
annual
name
competence
sending
definite
turn
nelson
harvey
enamel
when
getting
daughter
because
allowing
strawberries
shirts
notice
williams
acceptable
district
trunks
else
five
producing
enclosed
arrival
concession
qualified
thank
french
unique
untimely
insured
etc
shortage
bath
panels
tripoli
indicated
change
windsor
experience
declaring
friends
author
fluently
well
wormald
cheque
theft
resale
men
lusaka
nairobi
peaceful
phyllis
met
trainee
give
feelings
canon
clapton
gartside
kerr
atlas
presence
prompts
pressed
ellis
absorb
two
accident
hotel
opportunity
ministry
topping
carter
bradford
property
amounts
simple
burnt
cargo
cracked
despite
notify
oneko
simply
sirs
ideas
claim
diploma
arrived
designs
robert
addressed
career
products
arrives
their
points
treating
addresses
evidence
competitive
parts
kindly
engaged
invoice
frequently
connection
party
affected
workmanship
site
about
serving
gelling
eye
gathered
measures
florence
doing
referees
history
rome
country
scheme
improvement
originally
read
sidon
lebanon
lightweight
however
against
accounting
thickness
headmistress
were
noticeable
down
below
star
aldridge
nigeria
materials
southampton
sons
expecting
propose
jameson
commonwealth
burst
international
electrical
handing
friendly
annum
load
dated
bill
west
furniture
breakages
loan
magazine
notepaper
another
dates
satisfactorily
caused
newest
observe
efforts
attraction
fleming
busy
owing
apply
cooper
surface
changed
accuracy
business
power
reciprocate
types
remaining
dissatisfied
valletta
completely
bricks
charcters
american
music
murumbi
university
thailand
retailers
voyage
comfortable
accordingly
carol
powder
barclays
afford
firmly
manufacturing
intends
stitched
yesterday
size
earthquakes
bungalow
depressed
ibadan
traffic
knowledge
models
whichever
commerce
experienced
secretarial
coole
assam
quebec
fulfilment
insurers
detailed
becomes
unreasonable
mohair
bartholomew
quebes
hvde
syria
technical
guardian
childhood
providing
operated
forceful
there
deduct
waterfoot
supporting
courtesy
woman
trust
colston
elsewhere
joseph
braden
should
uneven
faithfuliy
periods
class
these
midland
personality
lancashire
waterfoot
factor
carry
neighbouring
working
literature
hiring
already
makers
granted
financially
brooks
mrs
far
correspondence
previous
early
perth
regularity
ours
nine
used
measure
fratelli
attractive
consignments
britannia
manager
transacting
situation
becoming
babcock
understood
examine
umbrellas
capacity
altogether
rotation
tools
application
installing
britannia
faithfully
possibilities
quotation
once
modern
women
transaction
academic
agreed
origin
consequently
receipt
unlikely
had
interest
repayment
agrees
night
rely
director
bangkok
decide
numerous
promise
transfer
demonstrate
currie
modest
council
liners
prl
also
fee
ghanem
users
ensure
messrs
return
possible
television
few
namely
benghazi
unprotected
reduction
clerk
numbered
situations
presents
possibly
comprehensive
goods
management
appreciate
agencies
unfortunately
strengthen
appointed
ideally
licences
promissory
supervision
hynes
japan
levels
saturday
lyceum
explain
continent
contributory
our
tokyo
unsettled
exercise
watson
contacts
description
missed
ghadban
sterling
thoroughness
dealt
long
continent
records
sooner
containers
bound
sails
fortunately
steadily
her
enterprise
system
improved
hanson
barlow
ourselves
terminated
draft
takings
taken
look
improves
takes
august
lunch
harold
future
offered
folder
liverpool
enquired
leicester
mean
fit
receive
western
arrive
gordon
bereavement
contents
each
scheduled
johnsons
caution
able
quotations
why
scotland
railway
weaknesses
burton
liverpool
regarded
};
}

__END__



=DOCUMENTATION=
===============

Sorry, Spambuster@ is too busy to answer your questions but you
will find answers to almost all your questions here.

Licence:
------------------
This is a free program. It was released to the public domain
for the sole purpose of fighting spam.
Copy and circulate this script to as many servers as you can.
Do not remove the documentation if you give it away!
Perl programmers may want to change this script according to
their needs but you should not add any non-random content to
the script's html output! Intelligent spiders could use it
to recognize the page as a killspam page.

Many thanks to the guys at escrub for the original idea
(www.escrub.com/wpoison).

Don't dare selling this script. Spambuster@ is watching you.

If you want to do me a favor, take further actions against
unsolicited emails, such as visiting (maybe even joining)
http://www.cauce.org/

Disclaimer:
------------------
I'm not going to repeat the boring NO WARRANTY stuff from
standard PD software licences. It applies to killspam, though.
Spambuster@ is not responsible for any damages that might
be caused by this program. Use at your own risk.
So in case your server explodes, you have been warned  :)

Program purpose:
------------------
killspam generates a totally random page which
feeds bogus email addresses to spiders that collect email
addresses from web sites. This page consists of:

- a META exclusion tag for well behaved robots and spiders
- a random (funny!) headline of 3-5 random words
- 2-6 random sentences of 2-12 words each. Each sentence
  contains one random (bogus) email address.
- Another 2-6 random sentences with no links at all.
- Another 2-6 random sentences of 2-12 words each. Each
  of these contains one random hyperlink. All links point
  back to this program.

How does it work?
------------------
Once in a while unsolicited "spiders" (aka robots or crawlers)
will travel your web site and follow all links on all pages.
If a page contains an email address, the spiders add it to their
database, thereby making this user part of a huge email address
collection. These collections will then be sold and/or used for
sending unsolicited spam emails.

This is where killspam steps in. It generates pages with bogus
email addresses (mostly .com and .net, but all others, too).
Lots of bogus addresses will render email collections useless.
Also, most spammers use "relay" email servers. These servers
allow anonymous users to send emails. With lots of bogus
addresses webmasters of relay email servers will receive lots
of bounces which will encourage them to switch relaying off.
No relaying, no spam.

killspam outputs 2-6 links back to itself which means that
each time a spider reads the page it will add another 2-6
links to killspam to its URL database. That way it will waste
quite some time at your web site just for the purpose of
grabbing lots of junk email addresses.

Installation:
------------------
You may need to edit the very first line of this script to
point to your server's perl executable. On any decent server
#!/usr/local/bin/perl or #!/usr/bin/perl should be ok.

No further customization required. Just ASCII-upload to your
cgi directory and chmod 755.

Please rename the script before you install it. Its no
problem for a bad spider to find the word "spam" in a name.

Some servers will need a .cgi or .pl extension in order
for killspam to execute. Try without extension first. The
random links will look much better  :)

Bad spiders won't find this page unless there is a link to
killspam on one of your publicly accessible pages. This
link could be open to the public like this (assuming you
renamed killspam to welcome):

<A HREF="/cgi-bin/welcome">
Click here if you want to see a funny page
</A>

You could also use a non-public link (like an invisible or
transparent 1x1 pixel gif):

<A HREF="/cgi-bin/welcome">
<IMG SRC="invisible.gif" WIDTH=1 HEIGHT=1 BORDER=0>
</A>

Don't put the killspam link to a page which cannot be reached
via your site's home page. The spider's won't find it!

Test it offline:
------------------
You can add a file name as a parameter to to the script call.
The html output will then be printed to this file. Load it
into your favorite browwser to see the resulting random page.

Limitation:
------------------
Theoretically, a spider could travel your web site for ever.
In order to protect your server from being overloaded by an
infinite number of cgi requests killspam limits the number
of consecutive pages with http links to 5. All subsequent
killspam executions will output email addresses only.
The spider will therefore add 5 times 2-6 links to killspam
to its database (=7776 executions at most). So it could
(theoretically) grab up to 7776*6=46656 bogus addresses.

Don't put the killspam link on more than 1 page, a stupid
spider might generate 7776 hits for *each* link.

Logging:
------------------
killspam will create a file killspam.log in the current
directory (your cgi-bin directory) and log all accesses
with date, time and the spider's name and IP number.
Take a look at this file if you want to find out whether
a misbehaved spider executed killspam many times.

Make sure the script has write access to the directory
it lives in.

Robot exclusion:
------------------
killspam generates the following meta tag which will
prevent well-behaved search engine spiders from indexing
the page and from following the links:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
This may not work for all "good" spiders out there so you
should also add a robots.txt file to your virtual root
directory. Example:

User-agent: *
Disallow: /cgi-bin/
Disallow: /secret/

All well-behaved spider will read the robots file
http://your.domain.com/robots.txt and ignore all files in
directories "cgi-bin" and "secret". Make sure killspam
is located in one of the disallowed directories.

Ethical
considerations:
------------------
Yes, bogus email addresses will cause additional spam traffic.
I believe that this is a reasonable price for fighting spam.
The more postmasters turn relaying off, the more difficult
it gets for spammers to find a spam email server. And selling
email databases will get more difficult, too. No-one will
spend money for an email database with lots of fake addresses.


Enjoy fighting spam!

Spambuster@

