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(网友投票)