Permission denied na xampie? Jakoś nie chce mi się wierzyć - możesz się upewnić i gdzieś wyrzucić sobie pełną ścieżkę do zdjęcia (var_dump, print_r lub inny ekwiwalent). Mam podejrzenie, że gdzieś ci się coś niedokleiło albo dokleiłeś za dużo (i zwróć uwagę na spacje) :)
Odnośnie praw dostępu: opisałem prawa dostępu w Uniksach, czytelniej jest tu:
http://pl.wikipedia.org/wiki/Prawa_dost%C4%99puW skrócie: "777" oznacza pełne prawa dla danego pliku dla wszystkich ludzi. Wszyscy mogą wszystko: czytać, pisać, kasować...
A odpowiedź na Twoje pytania: w ogólnym przypadku jak najbardziej może.
Twoim zadaniem jako projektanta aplikacji jest to, aby nie dopuścić do błędów i niedopatrzeń. Czyli: musisz jakoś rozróżniać userów (logowanie: ciastka, sesje), musisz zapewnić filtrowanie danych wprowadzanych przez userów (poczytaj o SQL Injection). Warto też poczytać o XSS i innych atakach na web-aplikacje.
"czy może przyjść jakiś haker"... Ogólnie to... zawsze może się zdarzyć. Jak się zainteresuje hostem, to interesują go głównie prawa roota (administratora systemu), a wtedy jedynym zabezpieczeniem jest backup wszystkich danych na innej maszynie.
... "i usunąc zdjęcia moich uzytkowników z serwera lub zamienic je skoro folder uploads ma 777" - JAK NAJBARDZIEJ MOŻE. Mało tego, przed tym nie uchroni nawet proponowane przeze mnie ustawienie prawa "1777". Dotyczy to oczywiście ataku na web-aplikację. (bo będzie miał takie same prawa jak i Ty).
"Czy haker moze sobie napisac formularz który..." - jak się włamie, to może wszystko co i Ty - włącznie ze skasowaniem bazy (bo przecież hasło do bazy trzyma się gdzieś w plikach tekstowych, prawda?)