HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   General (http://www.howtoforge.com/forums/forumdisplay.php?f=25)
-   -   Site security (http://www.howtoforge.com/forums/showthread.php?t=54575)

SamTzu 19th October 2011 10:00

Site security
 
%00 is known as a "poison null byte" attack. "Response 200" is not what we want to see. System commands can be included after that line.

Check if you can see your page with this command after the domain part...
Quote:

/?content=../../../../../../../../../../../../../../../proc/self/environ%00
Easy way to prevent this is to include this line in the .htaccess file.
Quote:

RewriteCond %{QUERY_STRING} proc\/self\/environ [OR]
I have been meaning to address this problem. Should 'Perfect Server' also have mod_security installed and enabled? Or can we include that RewriteCond on server level in the Apache config?

You can install mod_security in Debian with these commands...
Quote:

apt-get install libapache-mod-security
a2enmod mod-security
/etc/init.d/apache2 force-reload

till 19th October 2011 11:12

The above example is not directly related to ispconfig or the use of ispconfig on a server, this is a general issue on site security for PHP scripts, just to make this clear to other readers.

If a php application allows such queries, then the php app has a bug as php apps should never include or access content that is passed to them as get variable without sanitizing the content. Nevertheless, I'am aware that such apps still exists. In ISPConfig, there is already a open_basedir restriction set for every website that restricts access to the web directory, so opening a file in /proc with php fopen or include / require functions should not be possible in the default configuration.

I just did a small test with this php file:

Code:

<?php
include($_GET['content']);
?>


and the output is as expected:

Code:

Warning: include() [function.include]: open_basedir restriction in effect. File(../../../../../../../../../../../../../../../proc/self/environ\0) is not within the allowed path(s): (/var/www/clients/client1/web1/web:/var/www/clients/client1/web1/tmp:/usr/share/php5) in /var/www/clients/client1/web1/web/test.php on line 2

You can enhance this protection by installing mod_security as you described in your post or add some apache directives and I really recommend that. I'am not sure what the performance impact of using mod_security on a server is, this should be evaluated to make a decision if we should include that in the default perfcet setup install or if its better to make a new general tutorial on techniques to secure php websites where we can explain in detail the pros and cons of the various options.

pititis 19th October 2011 13:47

Modsecurity without rules don't help. It's very good mod. Impact on servers is usually memory, more rules more memory. Base rules are ok and memory use is acceptable. Ispconfig with open base restrictions, fastcgi and some php functions disabled is secure but again rfi, sql inyection, etc in some insecure aplications from any customer can be a disaster and that is because I use modsecurity.

Thanks for the report SamTzu!

erosbk 19th October 2011 20:01

I tried http://www.mydomain.com/?content=../...elf/environ%00

and I could see the page normally without problem... no log entry in error.log... how can I check if I am protected against this?

Thanks in advance, I am not using mod_security yet

SamTzu 1st November 2011 07:26

That link should give error message.
Easy way to fix the site is to use the .htaccess rule to prevent poison.
:cool:


All times are GMT +2. The time now is 15:57.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.