第四章 做几个试验:第一节、了解httpd132f的工作原理
当我们在浏览器的URL内输入了http://127.0.0.1/后,系统会发送一个Socket请求到IP地址为127.0.0.1的系统上,并且占用的80端口,在TCP/IP协议中规定,127.0.0.1地址是“本地系统”,也就是说我们通过浏览器访问自己的系统,如果系统中没有安装httpd132f之类的网站服务程序,那么将没有80端口打开,所以在没有运行httpd132f的时候,浏览127.0.0.1将会出现“无法找到服务器”的错误提示。
一旦运行了httpd132f,浏览器内的URL地址将会以“GET 127.0.0.1 HTTP/1.1”的的形式发送到本地80端口,然后由httpd132f程序进行处理,并返回处理结果(数据)。这些工作平时在网络上使用者是看不到的,因为网络服务器不可能将自己内部的数据暴露出来,那样做将是危险的,而我们在自己的系统上安装httpd132f则可以通过httpd132fhttpd.log文件将所有过程看得一清二楚。
现在我们在httpd132fhttpd-docs目录下放置一个index.htm文件,然后通过http://127.0.0.1/index.htm浏览,浏览器上会看到这个index.htm文件,然后打开httpd.log看看里面有什么:
127.0.0.1 – – [03/Sep/2001:11:26:35 +0900] "GET /index.htm HTTP/1.1" 200 7616
httpd.log中记录了来访者的IP地址、访问时间、动作(GET)、请求文件、文件操作结果(200)、结果返回长度(7616)。
这些记录在每一个网站服务器上都有,有些甚至更加详尽,这也正是为什么黑客所做的事情能够被人追查、黑客每次攻击结束要清理日志的原因。如果服务器上没有/index.htm这个文件,那么返回的结果将是:
127.0.0.1 – – [02/Sep/2001:22:15:12 +0900] "GET /nofile.htm HTTP/1.1" 404 218
其中的“404”说明文件/nofile.htm没有找到,所以黑客可以通过编写程序判断服务器上是存在某个文件(200)还是不存在某个程序(404)、或者程序没有执行权限(500)等各种扫描程序,这种编程方法和程序代码将会在后面给出来。