http://qs321.pair.com?node_id=38443
Category: Web Stuff
Author/Contact Info wombat
Description: "Poisoning the well" is a term sometimes used to mean feeding a bot false information, either to make it crash, or to devalue the rest of the data that it is supposed to be mining. We all hate spambots. They're the ones that scour webpages, looking for little <a href=mailto:> tags. They then take down your email address and some spammer then sells it on a "100,000,000 VALID WORKING ADDRESSES" CD-Rom to other unpleasent people. You can all help stop these evil robots, by putting up a Poisoned Well on your homepage.

Basically it's a list of randomly generated email addresses that look valid (cause they're made of dictionary words), have valid DNS entries, but then bounce when the spammers try to send mail to them. This program has a twofold purpose. Older Poison Wells just generate [a-z]{random}@[a-z]{random}.[com org net]. This one takes domains that you specify from a list. Thus, you can put domains you don't like in the list, and then cause THEM to have the burden of sending back lots of bounced messages. As stated before, any spambot worth its silicon would check to see if the address was a valid domain. This would circumvent that.

For my list of evil domains, I've put the six top generators of banner ads. Especially the ones that are suspected of selling personal data. >:-D

Some of the amusing email addys that this generated were
  • Colanderwax@someregistereddomain.com
  • JesusRedmond@someregistereddomain.com
  • crudbedbug@someregistereddomain.com
  • tyingbabies@someregistereddomain.com
  • leekchecker@someregistereddomain.com
  • hottrousers@someregistereddomain.com
#!/usr/bin/perl
use POSIX;
 
print "Content-type: text/html\n\n";
print "<html><head><title>A list of all my best friends email addresse
+s!</title></head>\n";
#Include whatever other page fluff you want here.

open (DICT, "/usr/dict/words") or die "Canna open zee dictionary file!
+\n";
open (DOM, "/home/httpd/cgi-lib/dominia") or die "Canna open zee domai
+n file!\n";
#dominia is just a list of (evil)domains, one per line.

while (<DOM>)
 {
  chomp;
  push @domlist, $_;
  $domcount++;
 }
 
for(0..255)
 {
   do {
     $randloc=floor(rand(409070));
#This is the size of my dictionary.  Adjust as needed.
     seek DICT, $randloc,0;
     $discard = <DICT>;
     $in = <DICT>; chomp $in;
      }
   while ((length $in)>5);
   push @first, $in;
   do {
     $randloc=floor(rand(409070));
     seek DICT, $randloc,0;
     $discard = <DICT>;
     $in = <DICT>; chomp $in;
      }
   while ((length $in)>7);
   push @last, $in;
 }
 
 
print "<table><tr>";
for (0..255)
{
  $domseek = floor(rand($domcount));
  print "<td>";
  print "<a href=mailto:$first[$_]$last[$_]\@$domlist[$domseek]>$first
+[$_]$last[$_]\@$domlist[$domseek]</a>";
  print "</td>";
  if ($_ % 3 == 2) {print "</tr>\n<tr>";}
}
print"</table>";
print"</body></html>";
 
close DICT;
close DOM;