公司介绍
员工心声
招聘信息
服务范围
产品介绍
专家检测
应急小组
Solutions
会员登记
安全评估
案例分析
咨询建议
系统漏洞
安全工具
参考资料
安全论坛
安全焦点
test-cgi的有趣缺陷 (mUnix,缺陷)
涉及程序:
test-cgi perl脚本
描述:
CNNS发现test-cgi暴露web根目录物理路径
详细:
test-cgi以前曾经有个漏洞,是有关QUERY_STRING的,能暴露当前web目录下文件或者目录清单,参见
http://www.cnns.net/article/db/180.htm
。
这个漏洞在Apache 1.3x下已经得到修补。
test-cgi程序中有一行是:
echo PATH_TRANSLATED = "$PATH_TRANSLATED"
在正常请求时,"$PATH_TRANSLATED" 为空值,不显示信息。
但有趣的是,如果在test-cgi后面加一个"/"符,将显示web根目录的物理路径:
http://www.xxx.com/cgi-bin/test-cgi/
请比较与http://www.xxx.com/cgi-bin/test-cgi返回的结果的区别。
这时你发现 PATH_TRANSLATED = 后面跟随着web 根目录的物理路径。
举几个国外网站为证:
http://acts.poly.edu/cgi-bin/test-cgi/
请比较与
http://acts.poly.edu/cgi-bin/test-cgi
返回的结果的区别。
和:
http://www.gkss.de/cgi-bin/test-cgi/
请比较与
http://www.gkss.de/cgi-bin/test-cgi?*
的区别
以及:
http://chekov.it.utk.edu/cgi-bin/test-cgi/
请比较与
http://chekov.it.utk.edu/cgi-bin/test-cgi?*
的区别。
解决方案:
删除/cgi-bin/test-cgi或者设置不允许执行的权限
源码:
下面是test-cgi程序的Perl代码:
----------------------------
#!/bin/sh
# disable filename globbing
set -f
echo Content-type: text/plain
echo
echo CGI/1.0 test script report:
echo
echo argc is $#. argv is "$*".
echo
echo SERVER_SOFTWARE = $SERVER_SOFTWARE
echo SERVER_NAME = $SERVER_NAME
echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
echo SERVER_PROTOCOL = $SERVER_PROTOCOL
echo SERVER_PORT = $SERVER_PORT
echo REQUEST_METHOD = $REQUEST_METHOD
echo HTTP_ACCEPT = "$HTTP_ACCEPT"
echo PATH_INFO = "$PATH_INFO"
echo PATH_TRANSLATED = "$PATH_TRANSLATED"
echo SCRIPT_NAME = "$SCRIPT_NAME"
echo QUERY_STRING = "$QUERY_STRING"
echo REMOTE_HOST = $REMOTE_HOST
echo REMOTE_ADDR = $REMOTE_ADDR
echo REMOTE_USER = $REMOTE_USER
echo AUTH_TYPE = $AUTH_TYPE
echo CONTENT_TYPE = $CONTENT_TYPE
echo CONTENT_LENGTH = $CONTENT_LENGTH
echo
echo ============================================================
echo
echo DOCUMENT_ROOT = $DOCUMENT_ROOT
echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
echo HTTP_ACCEPT = $HTTP_ACCEPT
echo HTTP_ACCEPT_ENCODING = $HTTP_ACCEPT_ENCODING
echo HTTP_ACCEPT_LANGUAGE = $HTTP_ACCEPT_LANGUAGE
echo HTTP_CONNECTION =$HTTP_CONNECTION
echo HTTP_HOST = $HTTP_HOST
echo HTTP_USER_AGENT = $HTTP_USER_AGENT
echo IFS = $IFS
echo
echo MAILCHECK = $MAILCHECK
echo OPTIND = $OPTIND
echo PATH = $PATH
echo QUERY_STRING = $QUERY_STRING
echo REMOTE_ADDR = $REMOTE_ADDR
echo REMOTE_HOST = $REMOTE_HOST
echo REMOTE_PORT = $REMOTE_PORT
echo REQUEST_METHOD = $REQUEST_METHOD
echo REQUEST_URI = $REQUEST_URI
echo SCRIPT_FILENAME = $SCRIPT_FILENAME
echo SCRIPT_NAME = $SCRIPT_NAME
echo SERVER_ADMIN = $SERVER_ADMIN
echo SERVER_NAME = $SERVER_NAME
echo SERVER_PORT = $SERVER_PORT
echo SERVER_PROTOCOL = $SERVER_PROTOCOL
echo SERVER_SOFTWARE = $SERVER_SOFTWARE
echo TZ = $TZ
附加信息:
-----------CNNS.net版权所有-------------
发布时间:2000年3月28日
返回
版权所有,如需转载,请与安络联系