AN HTTPd versions 1.42h and prior ships with a script called count.pl which allows remote attackers to use a directory traversal attack to overwrite the contents of files on the system.
a74b48909192b5c91b042611f88dcec0fb0d56626236be2a2851014e83d805c1
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.