安全研究
安全漏洞
Pserv Web服务器多个远程缓冲区溢出漏洞
发布日期:2002-12-01
更新日期:2002-12-04
受影响系统:Pserv Pserv 2.0 beta5
Pserv Pserv 2.0 beta4
Pserv Pserv 2.0 beta3
Pserv Pserv 2.0 beta2
Pserv Pserv 2.0 beta1
描述:
Pico Server是一款由C语言编写的小型Web服务程序,可运行在多个POSIX兼容平台下。
Pico Server多处对缓冲区边界缺少正确检查,远程攻击者可以利用这些漏洞进行缓冲区溢出攻击,以root用户权限在系统上执行任意指令。
pServ存在多个缓冲区溢出:
* 在流读取过程中存在单字节缓冲区溢出:
pServer在堆栈中为字符串分配1024字节缓冲区,然后尝试读取整块缓冲区大小数据,由于对缓冲区缺少正确检查,如果攻击者发送刚好1024字节大小的数据给服务器,就可以导致EBP(x86)积存器被0覆盖,触发单字节缓冲区溢出,由于pServ以root用户权限运行,精心构建提交数据可能以root用户权限在系统上执行任意指令。
* 请求模式缓冲区溢出:
pServ可接收每行1024字节的请求,但是只分配16字节(根据main.h中的"request.method"定义请求)存储此数据,因此如下请求:
[buffer] / HTTP/1.0
会覆盖1008字节内存,可能允许任意代码执行。
* HTTP协议版本说明缓冲区溢出:
pServ在main.h中对"request.protocolVersion"请求协议版本只分配16字节缓冲区大小,并且没有进行正确检查,就拷贝请求中的数据到小缓冲区,发生缓冲区溢出:
GET / HTTP/1.[buffer]
* User-Agent缓冲区溢出:
pServ对User-Agent只分配了256字节的缓冲区大小,但可以接收1011字请求,允许超长User-Agent请求可导致发生缓冲区溢出:
GET / HTTP/1.0
User-Agent: [buffer]
* 请求解析可能导致缓冲区溢出:
pServ允许一行读取1024字节,然后尝试合并文件路径缓冲区和文档ROOT缓冲区,结果可能导致缓冲区溢出:
GET / HTTP/1.0[\n]
如果文件路径为1010,而Document ROOT路径又是14字节或者超过14字节,可导致内存破坏。精心构建提交数据可导致以root用户权限在系统上执行任意指令。
<*来源:Matthew Murphy (
mattmurphy@kc.rr.com)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=103884399831294&w=2
*>
建议:
厂商补丁:
Pserv
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://pserv.sourceforge.net/浏览次数:3237
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |