Vulnerabilities in include/require should be fixed there, IMHO, not by
limiting the feature set of the language.

On Sun, Apr 8, 2012 at 5:34 PM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:
> Hi,
>
> 2012/4/9 Arvids Godjuks <arvids.godj...@gmail.com>:
>> 8 апреля 2012 г. 8:16 пользователь Yasuo Ohgaki <yohg...@ohgaki.net>написал:
>>
>>> 2012/4/8 Ángel González <keis...@gmail.com>:
>>> > On 07/04/12 22:48, Yasuo Ohgaki wrote:
>>> >> Hi,
>>> >>
>>> >> The only valid reason for removing <?php from PHP script would be
>>> >> security.
>>> >>
>>> >> Since the null byte detection for fopen, remote/local script inclusion
>>> >> became much harder than before. However, it's still possible and very
>>> >> easy compare to other languages. Script execution is critical security
>>> >> problem and it's worth to make it better.
>>> >>
>>> >> If there is a switch that turns off PHP's template engine nature, PHP
>>> >> could be more secure than now.
>>> >>
>>> >> php.ini
>>> >> template_mode = on   ; INI_ALL On by default
>>> >>
>>> >> php -t foo.php   # template mode by default
>>> >> php -T foo.php  # template mode off
>>> >>
>>> >> People has option to make their code a little secure than now
>>> >> or stick with current behavior.
>>> >>
>>> >> Regards,
>>> > How does it help security?
>>> > If any, requiring '<?php' before executable code makes easier to filter
>>> > out malicious files on apps with uploads in case there's a local
>>> > inclusion vulnerability somewhere.
>>> >
>>>
>>> Attackers may inject PHP script almost anything/anywhere since
>>> PHP code may be embed anywhere in a file.
>>>
>>> For example, malicious PHP script may be in GIF something like
>>>
>>> gif89a ...any data.. <?php exec('rm -rf /') ?>
>>>
>>> and all attacker have to do is include/require the data somehow.
>>> Attacker cannot do that this for other languages, since they are
>>> not a embedded language. I know case that attackers may inject
>>> malicious perl/ruby script in data files, but PHP is too easy
>>> compare to these languages.
>>>
>>> Regards,
>>>
>>> --
>>> Yasuo Ohgaki
>>>
>>> --
>>> PHP Internals - PHP Runtime Development Mailing List
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>> Improperly configured WEB server is not the reason to change the most basic
>> part of the language that will break every damn application out there.
>
> This is not an configuration issue, but a security vulnerability that
> can simply closed by disabling embed mode.
>
> As I mentioned already, injecting malformed PHP scripts into files
> is too easy compare to other languages. This could be improved
> by simple modification and we can maintain compatibility with it.
>
> I don't see anything wrong here.
>
> Yet another PHP script injection example.
> There are many applications that store user inputs in $_SESSION.
> Attacker can inject PHP script into $_SESSION, then locally include
> it. This is easy since attacker knew their session ID and path to
> session file is can be guessed easily. All attacker has to do is
> finding a vulnerable include()/require() to attack.
>
> Regards,
>
> --
> Yasuo Ohgaki
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>



-- 
Tom Boutell
P'unk Avenue
215 755 1330
punkave.com
window.punkave.com

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to