Welcome to Linux Forums! With a comprehensive Linux Forum, information on various types of Linux software and many Linux Reviews articles, we have all the knowledge you need a click away, or accessible via our knowledgeable members.
Find the answer to your Linux question:
New to Linux Forums? Register here for free!
    Linux Forums > GNU Linux Zone > Linux Security > PHP exec security

Forgot Password?
 Linux Security   Discussion about keeping your machines secure, and the crackers out.

Site Navigation
Linux Articles
Linux Forums
Linux Downloads
Linux Hosting
Free Magazines
Job Board
IRC Chat
RSS Feeds


Linux Forum Topics
Linux Forums
Your Distro
Linux Resources
GNU Linux Zone
The Community
Reply
 
Thread Tools Display Modes
Old 07-24-2009   #1 (permalink)
Just Joined!
 
Join Date: Aug 2008
Location: Seattle, WA
Posts: 46
Send a message via AIM to NeoIce
PHP exec security

so I was bored and wanted to create a small web interface for a few tasks. currently, I'm using POST to get arguments and then PHP's exec() to run a small shell script.

the scripts are all in password-protected directories, so I'm not terribly worried about them actually being abused, but I'm curious as to the best way to protect against command injection.

here's an example:

php
Code:
$cmd = "/$somepath/passwd.sh ".$username." ".$password." ".$new_password;
exec($cmd, $output, $return);
shell
Code:
passwd $1 <<EOF
$2
$3
$3
EOF
if I feed it the arguments 'someuser;' 'ls' and '/', it will actually do an 'ls' and return the output. I havent found any other commands that return output, but invalid input definitely boggles the shellscript's return code, which the PHP script uses for error handling. is there a way to deal with this kind of attack? is there a less kludgy way of solving this problem?

thanks,
-rb
NeoIce is offline  


Reply With Quote
Old 08-22-2009   #2 (permalink)
Linux Engineer
 
RobinVossen's Avatar
 
Join Date: Aug 2007
Location: The Netherlands
Posts: 1,319
Send a message via ICQ to RobinVossen Send a message via MSN to RobinVossen
This is REALLY insecure code indeed.
As people can execute anything.
Its better to not use exec at all but if you really do want to use it FILTER everything.
__________________
My webpage: codeinject.org
New Users, please read this..
Google first, then ask..
RobinVossen is offline   Reply With Quote
Old 08-22-2009   #3 (permalink)
Just Joined!
 
Join Date: Aug 2008
Location: Seattle, WA
Posts: 46
Send a message via AIM to NeoIce
oh yes. I'm aware of how terrifyingly insecure it is.

any thoughts on a less insane way of doing it?
NeoIce is offline   Reply With Quote
Old 08-23-2009   #4 (permalink)
Linux Engineer
 
RobinVossen's Avatar
 
Join Date: Aug 2007
Location: The Netherlands
Posts: 1,319
Send a message via ICQ to RobinVossen Send a message via MSN to RobinVossen
Translate the .sh to php.
__________________
My webpage: codeinject.org
New Users, please read this..
Google first, then ask..
RobinVossen is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Free Magazines
Run Your Own Web Server Using Linux & Apache - Free 191 Page Preview
Learn about everything you'll need to build and maintain your Linux servers, and to deploy Web applications to them.
subscribe
Open Source Security Myths Dispelled
Dispel the five major myths surrounding Open Source Security and gain the tools necessary to make a truly informed decision for your IT organization
subscribe
InformationWeek
InformationWeek is the only newsweekly you'll need to stay on top of the latest developments in information technology.
subscribe



All times are GMT. The time now is 05:58 AM.






© 2000 - 2009 - All Rights Reserved - Property of  MAS Media

Content Relevant URLs by vBSEO 3.3.0 RC2