安全研究

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

发布日期:2010-09-10
更新日期:2010-09-13

受影响系统:
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/

浏览次数:3101
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障