PHP Input Filtering LibraryFriday, December 22. 2006Friday, December 22. 2006 I wanted to announce that in 2007 the Hardened-PHP Project is going to create a few new security products. One will be a userspace PHP Input Filtering library that can be used in PHP 4 and PHP 5 for Input Filtering in a compatible way and that is not part of some framework, so that it can be easily used in your existing application. If you are interested in contributing don't hesitate to contact us by email. Why ext/filter?Friday, December 22. 2006Friday, December 22. 2006
From time to time the ext/filter topic comes up. Yesterday one of its authors was attacking serendipity for having code inside that bypasses ext/filter to get the original RAW values. Quite amusing how he claims the only correct way to do input filtering is to use the ext/filter functions and only use your own functions as a fallback. Infact the only sane way is the other way around: Have your own input filtering functions and do not even think about using ext/filter. There was actually never a need for ext/filter because everything it does can be implemented on a PHP level with plain PHP functions. ext/filter is just a new irritating API to already existing functionality, that potentially introduces new security holes, because it reimplements existing stuff again.
PHP rips Safe Unlink Technique and Memory CanariesFriday, December 15. 2006Friday, December 15. 2006 I was quite amused today when I saw a commit to the Zend Engine by Dmitry Stogov. With this commit PHP now has a safe unlink protection, a technique originally created by me for the glibc heap implementation in 2003, that was also ripped by Microsoft for XP-SP2. Basically the whole commit is a rip-off of a memory manager protection similiar to the one in Suhosin. A protection that was always considered a no-no for vanilla PHP while I was among the PHP Security Response Team.
Cross Virtual Host Cookie TheftFriday, December 15. 2006Friday, December 15. 2006 Within a shared hosting environment it is Consider the following PHP script, that will accept incoming connections on port 7778 and print out the connecting user's IP and the content he sends until an empty line. Now guess what happens when you connect with your browser to http://my.bookshop.shop:7778/ which happens to share the same IP with your script. The browser will connect to the port under your control and send it's HTTP headers to your script. Unfortunately this HTTP headers will also contain the cookie stored for http://my.bookshop.shop/ because browsers do not save the port number of the HTTP server that orginally set the cookie. This enables anyone on the same IP with the ability to accept connections to steal cookies from other people's webapplications.
Retired from security@php.netSaturday, December 9. 2006Saturday, December 9. 2006 Last night I finally retired from the PHP Security Response Team, that was initially my idea a few years ago.
del.icio.us doesn't care about securityFriday, December 8. 2006Friday, December 8. 2006 When you report an XSS security problem in a web 2.0 site you usually assume it will get fixed as soon as possible. Obviously the guys at del.icio.us think different... Continue reading "del.icio.us doesn't care about security" Sometimes you better shut upThursday, December 7. 2006Thursday, December 7. 2006 From time to time I visit the Diary of the internet storm center. Sometimes they write very interesting stuff and sometimes plain nonsense like repeating again and again the urban legend that allow_url_fopen protects against URL include vulnerabilities.
Suhosin caught another remote code execution vulnerabilityMonday, December 4. 2006Monday, December 4. 2006
It is actually not the first time that Suhosin caught a possible remote code execution vulnerability, but this time it is documented in the public. Yesterday a friend asked me why the uploadprogressmeter extension does not work together with Suhosin. After a while he realised that instead of failing silently he had ALERTs like this in his error log (when you look into the blog of the author you will see that others had similiar problems).
Suhosin did not only stop this possible code execution exploit but helped ordinary users to detect it in the first place. Once again a dangerous and unknown vulnerability was killed once and for all by the simple use of Suhosin-Patch.
Suhosin 0.9.16 with Stealth ModeSunday, December 3. 2006Sunday, December 3. 2006
A few days ago I blogged about the anti open source features of ionCube loader that were not tricked by the simple stealth loading tricks Suhosin uses to load together with Zend products. Because of this the stealth loading of the Suhosin extension was changed to be even more stealthy.
Bruteforcing HTTP Auth in Firefox with JavaScriptFriday, December 1. 2006Friday, December 1. 2006 Yesterday I blogged about a way to bypass HTTP Auth popus that used a "abuse the server" approach. Today I will show a way to bypass HTTP auth in Firefox and in some cases bruteforce HTTP auth in Firefox in some situations. The precondition for the bruteforce approach here is that the attacked server is either running PHP with expose_php=On or an application in a guessable location that contains pictures. (However combined with timing attacks and the number of requests sent depending if the password was correct or not it might be possible to do this without pictures)
<html> If you like you can combine this with your favourite HTML only timing attack that is now public and discussed for example here or take the whole thing a step further and use it for bruteforcing HTTP auth. All you need for this is to know that Firefox does agressive caching for favicons and the URL to a HTTP auth protected image. In case the server is running PHP with expose_php=On you can use the idea described here to use as attack image URL. The proof of concept code is here: <html> Please note that you can use any kind of URL that points to a HTTP auth protected image. You can obviously also use the expose_php GUIDs like ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42. However you must ensure that both user:pass+URL combinations are the same because otherwise the caching will not kick in. Additionally you cannot simply reload the page, because then you will get the HTTP auth popup.
« previous page
(Page 4 of 9, totalling 88 entries)
» next page
|
Calendar
Categories Syndicate This Blog |
|||||||||||||||||||||||||||||||||||||||||||||||||


