YOPS服务器HTTP请求远程溢出漏洞

受影响系统:

yoopss YOPS 2009

描述:

YOPS(Your Own Personal [WEB] Server)是用C编写的Linux平台HTTP服务器。

YOPS服务器的http_parse_request_header函数没有对从HTTP命令((HEAD/GET/POST)所接收到的缓冲区执行边界检查便在swebs_record_log函数中用作了logger变量的参数,超长请求参数可以触发缓冲区溢出,导致执行任意代码。以下是有漏洞的代码段:

— http.c snippet —

int http_parse_request_header(char *data, struct http_request_header *h)
{
       int r;
       int ver, rev;
       char *s, *tok, *l, *prm;
[…]
       r = sscanf(h->http, " HTTP/%d.%d ", &ver, &rev);
       if (r != 2)
               return -400;
[…]
}
— END snippet —

— swebs.c snippet —

int swebs_record_log(int log, JOB *job)
{
       int err;
       time_t now;
       char timestr[32];
       char logrec[MAX_REQUEST_LINE_LEN + 1];
[…]
       sprintf (
               logrec,
               "%s\t[%s]\t\"%s\"\t(%d+%d/%d)\t%d",
               job->client,
               timestr,
               job->hdr.request_line,
               job->response_hlen,
               job->response_blen_sent,
               job->response_blen,
               job->status
               );
[…]
}
— END snippet —

<*来源:Rodrigo Escobar (ipax@dclabs.com.br
  
  链接:
http://marc.info/?l=bugtraq&m=128415017107354&w=2
*>

测试方法:

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!http://www.exploit-db.com/exploits/14976/

建议:

 

厂商补丁:

yoopss
——
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://sourceforge.net/projects/yops2009/

发表评论?

0 条评论。

发表评论