With respect to the dreadfully OLD phf problem, I've implemented a "unique" solution. Here's what I use in place of the old phf... It gives fun replies to "id", "uname" and "passwd" (as in /bin/cat%20/etc/passwd).
For example, it generates a unique passwd file each time at random. Interesting lusernames^H^H^H^H^H^H^H^Husernames too. Here, try: http://www.sjis.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd http://www.sjis.com/cgi-bin/phf?Qalias=x%0a/usr/bin/id http://www.sjis.com/cgi-bin/phf?Qalias=x%0a/bin/uname%20-a http://www.sjis.com/cgi-bin/phf Here it is, I move that it be incorporated into the cgi-scripts package... It requires perl 5.0x and CGI.pm. ---chop here---- #!/usr/bin/perl # phf buster # They want a passwd file to crack? Let's give them one. srand(time^$$); # Don't ask about the goofy order. For some reason, perl outputs the # members of the hash in a seemingly random order. Larry? %lusers = ( bin => 'been', daemon => 'try', operator => 'time', adm => 'dork', lp => 'for', uucp => 'year', news => 'a', lart => 'would', duh => 'Why', bill => 'you', hillary => 'holes', dork => 'a', beavis => 'known', hank => 'are', bubba => 'over', dale => 'that', harvey => 'Only', dreck => 'your', slappy => 'have', dweeb => 'wasting', smack => 'time'); @shells = ('/bin/sh','/bin/csh','/usr/bin/ksh','/usr/local/bin/tcsh','/usr/local/bin/bash'); use CGI; $query = new CGI; $qs = $query->query_string; if ( $qs =~ /id/i ) { print $query->header('text/plain'); print "uid=65534(nobody) gid=65535 groups=65535\n"; print "Did you really think httpd would be running as root? Come on.\n"; } elsif ( $qs =~ /passwd/i ) { print $query->header('text/plain'); $rootpw = &crypt_it('dork'); print "root:$rootpw:0:0:root:/:/bin/sh\n"; $uid = 5; $gid = 100; foreach $luser (keys %lusers) { $home = '/home/' . $luser; $shell = $shells[rand($#shells)]; $pw = &crypt_it($lusers{$luser}); $line = join(':', $luser, $pw, $uid, $gid, $luser, $home, $shell); print "$line\n"; $uid++; } } elsif ( $qs =~ /uname/i ) { print $query->header('text/plain'); print "Hamilton97 beaver 4.0 #1 Thu Feb 18 11:19:54 EST 1997 cray\n"; } else { print $query->header('text/plain'); print "We don\'t run phf here. Go away.\n"; } sub crypt_it { local($user,$pass)[EMAIL PROTECTED]; local($nslat,$week,$now,$pert1,$pert2); local(@salt_set)=('a'..'z','A'..'Z','0'..'9','.','/'); $now=time; ($pert1,$per2) = unpack("C2",$user); $week = $now / (60*60*24*7) + $pert1 + $pert2; $nsalt = $salt_set[$week % 64] . $salt_set[$now %64]; return crypt($pass,$nsalt); } -----chop here------ Jason Costomiris | Finger for PGP 2.6.2 Public Key [EMAIL PROTECTED] | "There is a fine line between idiocy My employers like me, but not | and genius. We aim to erase that line" enough to let me speak for them. | --Unknown http://www.jasons.org/~jcostom -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED] .