手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>安全防护>列表

CERN 3.0A heap溢出漏洞导致拒绝服务攻击

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
CERN 3.0A heap溢出漏洞导致拒绝服务攻击

发布日期:2000-08-24
更新日期:2000-08-24

受影响系统:

CERN webserver version 3.0A
- Linux系统
- 常用Unix系统

描述:

在CERN/3.0A Webserver中存在一个heap溢出问题,可能耗费大量内存并导致拒绝服务攻击。
问题出在:Daemon/Implememtation/HTScript.c中的
PUBLIC int HTCallScript ARGS1(HTRequest *, req)函数:

....
else { /* Try replacing unknown suffix with .pp */
char *test = (char*)malloc(strlen(HTReqScript) 4);
char *s;
CTRACE(stderr, "Trying...... to find executable by appending pp\n");
strcpy(test, HTReqScript);
s = strrchr(test, '.');
strcat(test, ".pp"); /* Try appending .pp */
CTRACE(stderr, "Trying...... \"%s\"\n", test);
if (-1==access(test, X_OK)) { /* Then try replacing suffix with pp */
if (s) {
*s = 0;
strcat(s, ".pp");
CTRACE(stderr, "Bad luck.... now trying \"%s\"\n", test);
if (-1==access(test, X_OK)) { /* INVALID */
if (!(msg = (char*)malloc(3*strlen(test) 100)))
outofmem(__FILE__, "HTCallScript");

sprintf(msg,
"Bad script request -- none of '%s' and '%s.pp' is executable",
HTReqScript, test );
free(test);

如果HTReqScript中已经包含后缀,程序会用".pp"替代test中的后缀,并且使用一个动态分配
的msg缓冲区来保存错误信息,但是,如果HTReqScript的后缀长度很大的话,msg就不能容纳
这么多的内容,因此会发生溢出,并导致占用大量内存,可能造成拒绝服务攻击。


<*来源: Scrippie (ronald@grafix.nl) *>




测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


重复提交这样的链接,可能使cern 3.0A webserver停止响应:

# lynx http://www.victim.com/cgi-bin/A.`perl -e 'print"A" x 50000'`


建议:

暂无

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!