好象不对啊?
bbs2www1.33应该没有这个问题, 至少v1.32开始就已经加上了这个判断.
再早一些的版本是有这个问题的,不过现在用的人已经不多了.
bbscon.c:
strncpy(ArgOfQuery, getenv("QUERY_STRING"), STRLEN);
if (strstr(ArgOfQuery, "..") != NULL)
{
printf("Error input!\n");
exit(1);
}
bbs0an.c:
strncpy(ArgOfQuery, getenv("QUERY_STRING"), STRLEN);
if (strstr(ArgOfQuery, ".."))
{
printf("Error input!\n");
exit(1);
}
【 在 Sinob (水手辛巴达) 的大作中提到: 】
: Date: 2000/10/30
: Author: Sinbad <Microbin@263.net>
: Web:
http://sinbad.dhs.org: Introducton
: --------------
: BBS2WWW是上海交大计算机应用工作室(
http://cas.tsx.org/)专为Firebird BBS开发的
: WWW界面,它使得用户不必telnet登录到BBS中就可以使用BBS的各项功能。
: BBS2WWW 1.33版本中CGI函数存在一个缺陷,如果提交的链接中某些变量包含"../"字符串
: ,远程用户就可能获取任何文件(以Web Server身份)的内容,也可以浏览有访问权限的目
: 录。
: 另外,如果用户修改变量试图查看不存在的文件,将会泄漏bbs系统在硬盘上的物理路径
: 。
: Description
: -------------
: 1. 泄漏BBS系统的物理路径
:
http://bbs.victim.edu.cn/cgi-bin/bbscon?board=sysop&file=M.971439268: 将返回:
: Error in opening file /home1/hhfeng/bbs/home/boards/sysop/M.971439268
: 2. 查看系统文件
:
http://bbs.victim.edu.cn/cgi-bin/bbscon?board=sysop&file=../../../../../../etc: /passwd
:
http://bbs.victim.edu.cn/cgi-bin/bbscon?board=sysop&file=../../../../../../hom: e1/hhfeng/bbs/home/.PASSWDS
: .PASSWDS文件保存了BBS系统中用户的账号、密码等信息,如果被下载,可以用John进行
: 暴力破解。
: Solutions
: -----------
: 在拆分Name/Value对的CGI库函数部分,加上以下内容:
: if (strstr (cgi_entries[i].value, "..") != NULL
: && strstr (cgi_entries[i].name, "passwd") == NULL
: && strstr (cgi_entries[i].name, "title") == NULL
: && strstr (cgi_entries[i].name, "text") == NULL )
: show_error ("Error input!");
: 即除了用户密码、文章标题和文章内容,其它输入均需要过滤".."字符串。
: 国内很多高校BBS2WWW仍使用1.33或者以前的版本,请尽快修补或者升级到1.34版本。
--
修改:chzh FROM 202.119.32.102
FROM 202.119.32.102