AN HTTPd Sample Script File Truncation

From: Matthew Murphy (mattmurphyat_private)
Date: Mon Apr 21 2003 - 15:24:46 PDT

  • Next message: Martin Schulze: "[SECURITY] [DSA 292-1] New mime-support packages fix temporary file race conditions"

    Product Description
    
    AN HTTPd is a relatively small, powerful web server designed for Windows
    systems.  It supports ISAPI, CGI, SSI, and several other powerful
    technologies (such as isolated worker processes) usually only seen in
    production servers.  More information on AN HTTPd is available at
    http://www.st.rim.or.jp/~nakata/
    
    Vulnerability Description
    
    AN HTTPd (1.42h and prior) ships with several sample scripts demonstrating
    various interpreters the server is capable of using.  One of these,
    "count.pl", is deployed in the "/isapi" virtual directory.  It takes the
    query string as part of a file path, which it uses as a page counter.  AN
    HTTPd does not check for directory traversals, and also does not prevent
    non-numeric data from being used as counters.
    
    Issuing the following request:
    http://www.somesite.com/isapi/count.pl?../../../../../../../../../../../../.
    ./../../../../../../../../../ctr.dll
    
    Will place "ctr.dll" in the root of C: with a "1" as its contents.  This
    same trick also works on writable files that already exist.  An effective
    patch for this vulnerability is to issue the following request:
    
    http://www.somesite.com/isapi/count.pl?count.pl
    
    This will destroy the vulnerable component, preventing further exploitation.
    Be nice, kiddies :-D
    
    Some nastier stuff:
    
    http://www.somesite.com/isapi/count.pl?../../../../../../../../../../../../.
    ./../../../../../../../../../windows/system32/calc.exe
    
    You get the idea...
    
    Impact
    
    Attackers can overwrite any file that the CGI user can access (this userid
    is SYSTEM by default if running as a service, or the user running the binary
    if in GUI mode -- usually an administrator).  Contents of the destroyed
    files cannot be sufficiently controlled to allow for exploitation in most
    cases, as the file is replaced with numeric data.
    
    Solution
    
    Remove this crappy sample script, and write a web counter that uses
    centralized configuration.  The exploit shown above will remove this file
    from a vulnerable system.
    



    This archive was generated by hypermail 2b30 : Tue Apr 22 2003 - 09:52:50 PDT