首页 -> 安全研究

安全研究

安全漏洞
Pserv HTTP POST请求远程缓冲区溢出漏洞

发布日期:2002-11-25
更新日期:2002-12-02

受影响系统:
Pserv Pserv 2.0 beta3
Pserv Pserv 2.0 beta2
Pserv Pserv 2.0 beta1
描述:
BUGTRAQ  ID: 6242

Pico Server是一款由C语言编写的小型Web服务程序。

Pico Server对畸形HTTP POST请求处理不正确,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,以WEB进程权限在系统上执行任意指令。

Pico server对畸形HTTP POST请求处理不够充分,问题代码存在于main.c中:

   __
   178      reqSize = strlen(req);
   179      i = 0; j = 0;
   180      while (i < MAX_REQUEST_LINES && j < reqSize)
   181      {
   182          k = 0;
   183          while (req[j] != '\n')
   184              token[k++] = req[j++]; // here.
   185          token[k-1] = '\0';   /* the line read ends with an \n we skipit and count it
as read */
   186          j++;
   187          strcpy(reqArray[i], token);
   188          i++;
   189      }
   --

精心提交POST数据可发生单字节溢出,导致系统产生拒绝服务,可能以WEB进程权限在系统上执行任意指令。

<*来源:dong-h0un U (xploit@hackermail.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103824724422435&w=2
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* dong-h0un U <xploit@hackermail.com>提供如下第三方补丁:

=== http.patch ===

--- main.c    Tue Nov 19 16:48:40 2002
+++ main.patch.c    Tue Nov 19 16:15:51 2002
@@ -176,6 +176,9 @@
    
     /* we copy the header lines to an array for easier parsing */
     reqSize = strlen(req);
+
+    req[BUFFER_SIZE]='\n'; /* Limit! */
+
     i = 0; j = 0;
     while (i < MAX_REQUEST_LINES && j < reqSize)
     {

=== eof ===

厂商补丁:

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

http://pserv.sourceforge.net/

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