如果服务器返回的是一个 404 错误:
HTTP 404 - 未找到文件
那么就说明这个目录的执行权限没有开。
写权限
测试一个目录对于web用户是否具有写权限,采用如下方法:
telnet 到服务器的web端口(80)并发送一个如下请求:
PUT /dir/my_file.txt HTTP/1.1
Host: iis-server
Content-Length: 10
这时服务器会返回一个100( 继续)的信息:
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:00 GMT
接着,我们输入10个字母:
AAAAAAAAAA
送出这个请求后,看服务器的返回信息,如果是一个 201 Created响应:
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:08 GMT
Location: http://iis-server/dir/my_file.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND,
PROPPATCH, SEARCH, LOCK, UNLOCK
那么就说明这个目录的写权限是开着的,反之,如果返回的是一个 403 错误,那么写权限就是
没有开起来,如果需要你认证,并且返回一个 401(权限禁止) 的响应的话,说明是开了写权限,但是匿名用户不允许。如果一个目录同时开了"写"和"脚本和可执行程序"的话,那么web用户就可以上传一个程序并且执行它,恐怖哦%^#$!~
纯脚本执行权限
这样的目录就太多了。很多不需要给执行权限的目录也被管理员给了脚本执行权限,我记得在
shotgun的一篇文章里面他说过:最小的权限+最少的服务= 最大的安全 ;一点也没有错。给目录任何多余的权限都是没有必要的。判断一个目录是否可以执行纯脚本文件也很简单,发送一个如下一个请求:
http://iis-server/dir/no-such-file.asp
返回404文件不存在说明有执行权限,返回403则是没有开。
浏览目录权限
判断一个目录是否允许浏览可能需要一点点小技巧,但是,在网站的默认首页(如:default.asp)不存在的话,那么就再简单不过了。在浏览器里面输入:
|