Hi, 2012/4/10 Stas Malyshev <smalys...@sugarcrm.com>: > Hi! > >> Tom's FRC is trying to introduce tag less PHP script. >> However, it does not fix well known PHP vulnerability. i.e. LFI/RFI >> IMHO, this change introduce more complexity and do not solve >> any problem. > > I'm not sure I follow - which PHP vulnerability you are talking about?
Not many people read RFC, so I should have written example attack scenario. Because PHP is embedded scripting language, PHP code may be embedded anywhere/any files. One convenient place is session storage. i.e. file save handler. ==Exploiting LFI without file uploads== 1. Find FLI vulnerable application. 2. Find a way to inject $_SESSION 3. Use session file to execute arbitrary PHP code. Files save handler is the default, attacker knew his/her session ID and can guess session.save_path easily. Therefore, there are high possibility that attacker could take control of web server via LFI. == Possible protections == It's possible to prevent session FLI by adding "<?php die()?>" to top of session data. It's not clean solution and has compatibility issue with other systems. (e.g. There are PERL/Ruby/Python scripts that decodes PHP session data) It's also possible that makes save_path unpredictable. It won't worth to do that. IMO. If developers/administrators could make PHP tag non mandatory, almost all LFI could be protected by simple file validation. i.e. Check the first line if it begins with "<?php" == Validation Issues == Invalidating PHP script contained file is not simple. Attacker can inject PHP code into any file and anywhere. 1. "<?", "<%" may occur in binary 2. <script language= is common in HTML Forcing programmers to check binary/HTML/mail messages/etc would be impossible. == Solution == Please take a look at the RFC. https://wiki.php.net/rfc/nophptags Regards, -- Yasuo Ohgaki yohg...@ohgaki.net -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php