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] .

Reply via email to