Annotation of embedaddon/thttpd/cgi-src/phf.c, revision 1.1.1.1
1.1 misho 1: /* phf - cracker trap
2: **
3: ** Old distributions of the NCSA and Apache web servers included a
4: ** version of the phf program that had a bug. The program could
5: ** easily be made to run arbitrary shell commands. There is no real
6: ** legitimate use for phf, so any attempts to run it must be considered
7: ** to be attacks. Accordingly, this version of phf logs the attack
8: ** and then returns a page indicating that phf doesn't exist.
9: **
10: **
11: ** Copyright © 1996 by Jef Poskanzer <jef@mail.acme.com>.
12: ** All rights reserved.
13: **
14: ** Redistribution and use in source and binary forms, with or without
15: ** modification, are permitted provided that the following conditions
16: ** are met:
17: ** 1. Redistributions of source code must retain the above copyright
18: ** notice, this list of conditions and the following disclaimer.
19: ** 2. Redistributions in binary form must reproduce the above copyright
20: ** notice, this list of conditions and the following disclaimer in the
21: ** documentation and/or other materials provided with the distribution.
22: **
23: ** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
24: ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25: ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26: ** ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
27: ** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28: ** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29: ** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30: ** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31: ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32: ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33: ** SUCH DAMAGE.
34: */
35:
36: #include <stdio.h>
37: #include <stdlib.h>
38: #include <string.h>
39: #include <syslog.h>
40:
41: #include "config.h"
42:
43: static char* argv0;
44:
45: int
46: main( int argc, char* argv[] )
47: {
48: char* cp;
49:
50: argv0 = argv[0];
51: cp = strrchr( argv0, '/' );
52: if ( cp != (char*) 0 )
53: ++cp;
54: else
55: cp = argv0;
56: openlog( cp, LOG_NDELAY|LOG_PID, LOG_FACILITY );
57: syslog( LOG_CRIT, "phf CGI probe from %s", getenv( "REMOTE_ADDR" ) );
58: (void) printf( "\
59: Content-type: text/html\n\
60: Status: 404/html\n\
61: \n\
62: <HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD>\n\
63: <BODY><H2>404 Not Found</H2>\n\
64: The requested object does not exist on this server.\n\
65: The link you followed is either outdated, inaccurate,\n\
66: or the server has been instructed not to let you have it.\n\
67: </BODY></HTML>\n" );
68: exit( 0 );
69: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>