[lug] cgi shell
Joseph McDonald
joem at uu.net
Mon Feb 3 18:04:22 MST 2003
On Mon, Feb 03, 2003 at 05:04:06PM -0700, Rob Riggs wrote:
> jd wrote:
>
> >Hello,
> > Today at slashdot there is a write-up about
> >a cgi shell.
> >http://slashdot.org/article.pl?sid=03/02/03/1531246&mode=thread&tid=162&tid=156
> >
> >so i downloaded it and tried it...pretty scary, it allowed me
> >to get to / and go where ever I wanted. Is there a way to
> >allow users to have a cgi-bin but stop this sort of behavior?
> >
> >
> >
> Anyone who can install CGI applications can grant anyone with access to
> the web server the same level of access that any CGI application has.
> This generally means the same level of access as the web server's EUID.
> The only way to limit the access is through something like CHROOT.
> There is a patch for Apache to do just this:
> http://home.iae.nl/users/devet/apache/chroot/ .
>
> In my experience, most web hosting services do not allow clients to
> install CGI applications on shared systems. Anyone needing CGI access
> generally has to rent a seperate server so that their security mistakes
> affect only them.
In our shared hosting environment, we set resource limits by running
a script first (denoted in our customers httpd.conf file) that set's
resource limits on the process about to get run. Apache has a module,
that will do the same thing, but if it's got mod_perl running, a user
has access to all of apache's internals and can set limits to whatever
they want.
mod_cgi and mod_include in this build of apache have been compiled
with our rbox software. It's implicitly called whenever a cgi
is called within the DocumentRoot or when a cgi is run inside server
parsed html.
By setting resource limits in a script before the CGI's execute, you
limit your exposure. A CGI can't bring down the whole box in a shared
env. Running stuff from the shell is another story, it's harder to
police, like what do you do if someone runs this:
:(){ :|:&};:
from a bash shell (don't do it). Solaris has something called Resource
Manager which does a pretty good job of limiting users resources, but
I'm looking for something in Linux. Any suggestions?
--joey
More information about the LUG
mailing list