>>>>> "Jonathan" == Jonathan e paton <[EMAIL PROTECTED]> writes:

Jonathan> I don't think the shell is called to resolve the 
Jonathan> "/home/users/me/web/$in{'NAME'}.ext" bit, and therefore
Jonathan> you cannot run commands with it.

It would be if $in{NAME} contained "|\0".  NUL characters terminate
the string, and if | appears just before that, bingo, it's a shell
command, not a file open.  Trivial to get:

        /cgi-bin/yourscript?NAME=%7C%00

All that's needed now is to make that "\n/evil/command|\0" instead.
I'll leave that up to the guy that's about to visit your site. :)

Never trust CGI params.
Never trust CGI params.
Never trust CGI params.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to