#!/usr/local/bin/perl # PROJECT HONEY POT ADDRESS DISTRIBUTION SCRIPT # For more information visit: http://www.projecthoneypot.org/ # Copyright (C) 2004, Unspam, LLC # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA # # If you choose to modify or redistribute the software, you must # completely disconnect it from the Project Honey Pot Service, as # specified under the Terms of Service Use. These terms are available # here: # # http://www.projecthoneypot.org/terms_of_service_use.php # # The required modification to disconnect the software from the # Project Honey Pot Service is explained in the comments below. To find the # instructions, search for: *** DISCONNECT INSTRUCTIONS *** # # Generated On: Wed, 31 Aug 2005 12:49:27 -0500 # For Domain: www.chicksonsticks.org # # use strict; use Digest::MD5 qw(md5_hex); # *** DISCONNECT INSTRUCTIONS *** # # You are free to modify or redistribute this software. However, if # you do so you must disconnect it from the Project Honey Pot Service. # To do this, you must delete the lines of code below located between the # *** START CUT HERE *** and *** FINISH CUT HERE *** comments. Under the # Terms of Service Use that you agreed to before downloading this software, # you may not recreate the deleted lines or modify this software to access # or otherwise connect to any Project Honey Pot server. # # *** START CUT HERE *** # my $__REQUEST_HOST = 'hpr2.projecthoneypot.org'; my $__REQUEST_PORT = '80'; my $__REQUEST_SCRIPT = '/cgi/serve.php'; # # *** FINISH CUT HERE *** # my $__HPOT_TAG1 = 'b1c38e346346f502df3bf9ac3231a186'; my $__HPOT_TAG2 = '7f010ad03a708a372c61d58a7350b54a'; my $__HPOT_TAG3 = '60eff423c208d7fdab40a0dd2d377e0b'; my $__CLASS_STYLE_1 = 'gahastisl'; my $__CLASS_STYLE_2 = 'bracocrouis'; my $__DIV1 = 'sl9p3wr47'; my $__VANITY_L1 = 'MEMBER OF PROJECT HONEY POT'; my $__VANITY_L2 = 'Spam Harvester Protection Network'; my $__VANITY_L3 = 'provided by Unspam'; my $__DOC_TYPE1 = '\n'; my $__HEAD1 = '\n\n'; my $__HEAD2 = '\n\n'; my $__ROBOT1 = '\n\n'; my $__NOCOLLECT1 = '\n'; my $__TOP1 = '\n
\n'; my $__EMAIL1A = ''; my $__EMAIL1C = ''; my $__EMAIL2A = ''; my $__EMAIL2C = ''; my $__EMAIL3A = ''; my $__EMAIL3C = ''; my $__EMAIL4A = ''; my $__EMAIL4C = ''; my $__EMAIL5A = ''; my $__EMAIL5C = '..'; my $__EMAIL6A = ''; my $__EMAIL6C = ''; my $__EMAIL7A = ''; my $__EMAIL7C = ''; my $__EMAIL8A = ''; my $__EMAIL9A = '
'; my $__EMAIL9C = '

'; my $__EMAIL10A = ''; my $__LEGAL1 = ''; my $__LEGAL2 = '\n'; my $__STYLE1 = '\n'; my $__VANITY1 = '
@'.$__VANITY_L1.'
'.$__VANITY_L2.'
'.$__VANITY_L3.'
\n'; my $__BOTTOM1 = '
\n\n\n'; sub getLegalContent() { return '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    
 
The w
to yo
other
Websi
readg
agent
them.
non-t
Websi

    
g
Spesexuality absence painters sillyci
Non-H
spide
progr
autom

Email
It is
alone
has a
stora
value
stori
agree

  g 
 
Eacha
again
("Jud
the r
such
and p
of fe
any a
Servi
the a

 i  
 
You c
may a
abuse
Visit

VISIT
PARTY
SUBSE
   i 

ebsit
u sub
 term
te yo
them
s ofe
 The
ransf
te.

   i 

alsre
uman
rs,premium frame pet official damage b
ams d
atica

 addpredicater
 reco
. You
 valu
ge, a
 of t
ng th
ment

 a  

party
st th
icial
egist
laws
erfor
deral
ction
ce. Y
bove

ed  

owide greekletter title street unitynsen
ppear
. The
ors a

ORS A
 OR S
QUENT
    

e froclause pregnant
ject
s gov
u acc
caref
the i
acces
erabl


 p  

stric
Visit
ots,
esred thing arrowsign
lly.

esses
gnicamp germanze
 ackn
e not
nd/or
hesdamp doggy identitye
isdWe
and e

  ci 

 agre
e oth
 Acti
ered
are a
med e
 and
 brou
ou co
agree

s   

t toe
 some
 Iden
gree

GREEa
ENDIN
eBseignorial snakes reservationREA
  g 

m whi
to th
ernin
ept t
ully.
ndivi
s rig
e wdetective lease harsh prosecutionit


SPECI

tions
ors.f
index
edgto


 on tseals drivein
ddtha
owled
 less
 dist
addre
bsite
xprferryes

    

es th
erpin
on")
Admin
pplie
ntire
state
ght a
nsent
ment.

    

havidebonairn
where
tifie
notst

THAT
G ANY
CH OF
   p 

ch yo
e fol
g acc
hese
 Astripe minor cowardly assertion rainbowny
dual(
hts g
hout


ALcLI

 on a
Non-H
ers,e
 acce


his s
t the
ge an
 than
ribut
sses.
\'s em
sly p

k   

at an
cconn
shalmarsupial utility state testatel
istra
d to
ly wi
hcour
gains
cto e


    R

g you
 on t
r is
o use

HARVE
 MESS
 THES
o TER

uoacc
lowin
ess tquickest doctrinaire morale alike
terms
Non-H
s) wh
rante
the e


CENSE

 visiiced poem voucher disordered wellbred
uman
robot
ss,cr


ite a
se em
d agr
 US $
ion o
 Inte
ailimperial apatient nice added daddy double
rohib

APPLI

y sui
ectio
 beig
tive
agree
thin
ts wsecret chemical dilatory inlandi
t himinverse tel flat
lectr


ECORD

r Int
his p
uniqu
 this

STING
AGdefinition vegetable proforma disasterE(S
E TER
MS AN

essed
gocon
o the
 and
uman
o con
d to
xpres


 REST

tor\'s
Visit
s, cr
ead,


re co
ail a
ee thnutritious
50. Y
f the
ntion
ddres
ited.

CABLEadvertising feedback formal stripe injury

t, ac
n wist brightt
overn
Conta
ments
the A
thin
 in c
onic


S OF 

ernet
age (
ely m
 addr

, GATwhores recipe raucous parsimonious quadruplicate
) TO
MSsOF
D CON

 this
ditio
 Webs
condi
Visit
troch bootstrapls
you u
s wri


RICTI

 lice
ors i
awler
compi


nside
ddres
at ea
ou fu
se ad
aldco
ses i


 LAW 

tion
h or
ed by
ct (t
 betw
dmin
the A
onnec
servi


VISIT

dProt
the "
atche
ess f

HERIN
THE I
eSERV
DITIO

tagre
ns. T
ite.
tions
ors t
, aut
ndconstitution mammal blonder
tten


ONdoseS F

nse t
nclud
s,tha
le or


red p
ses a
chcorkscrew surrounding adaptationkem
rther
dresmrs threeways
llect
s rec


AND J

or pr
arisi
 the
he "A
een A
State
dmin
tion
ce of


OR US

ocol
Ident
d to
or an

G, ST
DENTI
ICtight oneway detailed adiabatic keyE.
NS OF

ement
hese
By vi
 (the
o the
hors
the T
permi


OR NO

o acc
e, bu
rvest
 gath


ropri
re pr
aileazany outmost magic meantime prickly
 agre
es ssharp verdict radical conceit rusticu
ion,k
ogniz


URISD

oceed
ng fr
lawco
dmin
dmin
. You
State
with
hproc


E AND

addre
ifier
your
y rea

ORING
FIERh

 USE 

t("th
terms
sitin
 "Ter
 Webs
or ot
ermscongenial 
ssion


N-HUM

esstimulating flexible spinys t
t are
ecurtainrs,
er co


etary
ovide
ddres
e tha
bstan
harve
ed as


ICTIO

ing b
omdear persistentith
f the
State
State
ocons
. You
breac
ess r


 ABUS

ss re
") if
Inter
son.

, TRA
CONST



e Web
 ardipterous capillary movement chap difficultyea
g (in
ms of
ite s
herwi
of Se
 of t


AN VI

he We
 not
or an
ntent


 inte
difor
s the
t thshopping coffee bullnecked contrabasse
tiaroman red preview unstrungll
sting
 a vi


Ng

rough
ecTer
 stat
") foheavy missing drivein itchy
 reprofessional handsome nominal guysi
enjail roguish passivetat
dcons
haveragees o
ejurist commensurate reputable smilegard


E 

corde
 we s
ncelsius wolves nuttyet P


NSFER
ITUTE



site"
in ad
 any
 Serv
hall
seoma
rvice
he ow


SITOR

bsite
limit
y oth
 from


llect
 huma
 Webspasmodic diary intellectual idiomatic isolateds
 comp
y dim
, gat
olati




t by
ms of
e of
r the
dents
o the
ent t
f theitching meantime adorable
ing a




d. An
uspec
rotoc


RING
S AN



) is
ditioneutral genitive
manne
ice")
betco
kes u
 are
ner o


S 

 appl
ed to
eroco
 the


uabackingl p
n vis
ite c
ilatinearby
inish
herin
on of




such
 Serv
resid
 Webs
pente
 jurirelated modular manual requirement
o the
se Te
ction




 emai
t pot
ol ad


TO A
ACCEP



provi
n tod
r) th
. Ple
nside
se of

f thechemical solitude illnatured scary fitness




y to
, web
mpute
Websi


roper
itors
ontai
on,
es th
g, an
 this




party
ice
ence
iteaa
retranscontinental parliament dilute elderdei
sdict
 venu
rms o
s und




l add
elid earthbound background unconsciousntia
dress


THIRD
TANCE



ded
any
e
ase
red









r
te


ty.

ns

e
d/or







of
s
nto
ion
ehin
f
er




ress
l
.



 AND

\n
'; } sub formatHTML { my $s = $_[0]; $s =~ s/\\n/\n/g; return $s; } sub getDocType { return formatHTML($__DOC_TYPE1); } sub getHeadHTML { return formatHTML($__HEAD1); } sub getRobotHTML { return formatHTML($__ROBOT1); } sub getNoCollectHTML { return formatHTML($__NOCOLLECT1); } sub getHeadHTML2 { return formatHTML($__HEAD2); } sub getTopHTML { return formatHTML($__TOP1); } sub getEmailHTML { my $method=$_[0]; my $m=$_[1]; if ($method eq "0" || !$method) { return ""; } elsif ($method eq "1") { return formatHTML($__EMAIL1A.$m.$__EMAIL1B.$m.$__EMAIL1C); } elsif ($method eq "2") { return formatHTML($__EMAIL2A.$m.$__EMAIL2B.$m.$__EMAIL2C); } elsif ($method eq "3") { return formatHTML($__EMAIL3A.$m.$__EMAIL3B.$m.$__EMAIL3C); } elsif ($method eq "4") { return formatHTML($__EMAIL4A.$m.$__EMAIL4B.$m.$__EMAIL4C); } elsif ($method eq "5") { return formatHTML($__EMAIL5A.$m.$__EMAIL5B); } elsif ($method eq "6") { return formatHTML($__EMAIL6A.$m.$__EMAIL6B.$m.$__EMAIL6C); } elsif ($method eq "7") { return formatHTML($__EMAIL7A.$m.$__EMAIL7B.$m.$__EMAIL7C); } elsif ($method eq "8") { return formatHTML($__EMAIL8A.$m.$__EMAIL8B.$m.$__EMAIL8C); } elsif ($method eq "9") { return formatHTML($__EMAIL9A.$m.$__EMAIL9B.$m.$__EMAIL9C); } return formatHTML($__EMAIL9A.$m.$__EMAIL9B.$m.$__EMAIL9C); } sub getLegalHTML { my $legal_text = &getLegalContent; return formatHTML($__LEGAL1.($legal_text).$__LEGAL2); } sub getStyleHTML { return formatHTML($__STYLE1); } sub getVanityHTML { return formatHTML($__VANITY1); } sub getBottomHTML { return formatHTML($__BOTTOM1); } sub performRequest { my $request = $_[0]; my $response = ""; my $head = ""; $head = "POST ".$__REQUEST_SCRIPT." HTTP/1.1\r\n"; $head .= "Host: ".$__REQUEST_HOST."\r\n"; $head .= "User-Agent: PHPot ".$__HPOT_TAG2."\r\n"; $head .= "Content-Type: application/x-www-form-urlencoded\r\n"; $head .= "Content-Length: ".length($request)."\r\n"; $head .= "Connection: close\r\n\r\n"; use Socket; socket(SH, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die $!; my $sin = sockaddr_in($__REQUEST_PORT,inet_aton($__REQUEST_HOST)); connect(SH,$sin) || die "\n
Unable to contact the server...
\n"; syswrite(SH, $head, length($head)); syswrite(SH, $request, length($request)); my $line; while ($line = ) { $response .= $line; } close(SH); return $response; } sub prepareRequest { my %postvars = (); $postvars{"tag1"} = $__HPOT_TAG1; $postvars{"tag2"} = $__HPOT_TAG2; $postvars{"tag3"} = $__HPOT_TAG3; if ($ENV{"SCRIPT_FILENAME"}) { $postvars{"tag4"} = md5_hex(&file_get_contents(&basename($ENV{"SCRIPT_FILENAME"}))); } elsif($ENV{"PATH_TRANSLATED"}) { $postvars{"tag4"} = md5_hex(&file_get_contents(&basename($ENV{"PATH_TRANSLATED"}))); } else { $postvars{"tag4"} = md5_hex(&file_get_contents(&basename($ENV{"X_TOMCAT_SCRIPT_PATH"}))); } $postvars{"ip"} = $ENV{"REMOTE_ADDR"}; $postvars{"svrn"} = $ENV{"SERVER_NAME"}; $postvars{"svp"} = $ENV{"SERVER_PORT"}; $postvars{"svip"} = $ENV{"SERVER_ADDR"}; $postvars{"rquri"} = $ENV{"REQUEST_URI"}; $postvars{"sn"} = $ENV{"SCRIPT_NAME"}; $postvars{"sn"} =~ s/ /%20/g; $postvars{"ref"} = $ENV{"HTTP_REFERER"}; $postvars{"uagnt"} = $ENV{"HTTP_USER_AGENT"}; return %postvars; } sub transcribeResponse { my $response = $_[0]; my %settings = (); my @directives = (); my @arr = split("\n",$response); my $isParam = 0; my $i = 0; foreach my $v (@arr) { if ($v eq "") { $isParam = 0; } if ($isParam) { my @pieces = split("=",$v,2); $settings{$pieces[0]} = &urldecode($pieces[1]); } if ($v eq "") { $isParam = 1; } } if ($settings{"directives"}) { @directives = split(",",$settings{"directives"}); } return \(@directives,%settings); } print "Content-Type: text/html\n"; print "Cache-Control: no-cache\n\n"; my $response = ""; my $request = ""; my %post = prepareRequest(); foreach my $k (keys %post) { $request .= "&$k=".&urlencode(&stripslashes($post{$k})); } $request = substr($request,1); $response = performRequest($request); if ($response == "-1") { exit(); } my ($directives_ref,$settings_ref) = transcribeResponse($response); my @directives = @$directives_ref; my %settings = %$settings_ref; my $email = $settings{"email"}; my $emailmethod = $settings{"emailmethod"}; if ($directives[0] eq "1") { print getDocType(); } if ($settings{"injDocType"}) { print $settings{"injDocTypeMsg"}; } if ($directives[1] eq "1") { print getHeadHTML(); } if ($settings{"injHead1HTML"}) { print $settings{"injHead1HTMLMsg"}; } if ($directives[8] eq "1") { print getRobotHTML(); } if ($settings{"injRobotHTML"}) { print $settings{"injRobotHTMLMsg"}; } if ($directives[9] eq "1") { print getNoCollectHTML(); } if ($settings{"injNoCollectHTML"}) { print $settings{"injNoCollectHTMLMsg"}; } if ($directives[1] eq "1") { print $settings{"injHead2HTMLMsg"}; } if ($settings{"injHead2HTML"}) { print $settings{"injHead2HTMLMsg"}; } if ($directives[2] eq "1") { print getTopHTML(); } if ($settings{"injTopHTML"}) { print $settings{"injTopHTMLMsg"}; } if ($settings{"actMsgOn"}) { print $settings{"actMsg"}; } if ($settings{"errMsgOn"}) { print $settings{"errMsg"}; } if ($settings{"customMsgOn"}) { print $settings{"customMsg"}; } if ($directives[3] eq "1") { print getLegalHTML(); } if ($settings{"injLegalHTML"}) { print $settings{"injLegalHTMLMsg"}; } if ($settings{"altLegalOn"}) { print $settings{"altLegalMsg"}; } if ($directives[4] eq "1") { print getEmailHTML($emailmethod,$email); } if ($settings{"injEmailHTML"}) { print $settings{"injEmailHTMLMsg"}; } if ($directives[5] eq "1") { print getStyleHTML(); } if ($settings{"injStyleHTML"}) { print $settings{"injStyleHTMLMsg"}; } if ($directives[6] eq "1") { print getVanityHTML(); } if ($settings{"injVanityHTML"}) { print $settings{"injVanityHTMLMsg"}; } if ($settings{"altVanityOn"}) { print $settings{"altVanityMsg"}; } if ($directives[7] eq "1") { print getBottomHTML(); } if ($settings{"injBottomHTML"}) { print $settings{"injBottomHTMLMsg"}; } #################### PERL <-> PHP functions ################ sub file_get_contents { open(FILE, "< $_[0]") or die "can't open $_[0]: $!"; undef $/; my $whole_file = ; # 'slurp' mode $whole_file =~ s/^#![a-zA-Z0-9\/\\\:\.\-\_\~ ]*[\n\r;]//; close(FILE); return $whole_file; } sub basename { return $_[0]; } sub urldecode { my $theURL = $_[0]; $theURL =~ tr/+/ /; $theURL =~ s/%([a-fA-F0-9]{2,2})/chr(hex($1))/eg; $theURL =~ s///g; return $theURL; } sub urlencode { my $theURL = $_[0]; $theURL =~ s/([\W])/"%" . uc(sprintf("%2.2x",ord($1)))/eg; return $theURL; } sub stripslashes { return $_[0]; }