есть ещё одтн вариант, но катит не везде, смотря как он проверяет расширения.
1.он смотрит расширение и не пускает например раширение PHP
2.он смотрит расширение и пускает например раширение только GIF,JPG,SWF.
Можно загрузить шелл как shell.gif, а потом загрузить туда файл .htaccess с текстом
AddType application/x-httpd-php .gif
тогда шелл загруженный как картинка будет работать как PHP скрипт