Kurs bezpieczeństwa dla…

Kurs bezpieczeństwa dla programistów #od0dopentestera
Kategoria piąta OWASP Top 10 to nieodpowiednia kontrola dostępu.
Chodzi więc o nieautoryzowany dostęp do danych.

Błędy tego rodzaju pojawiają się gdy programista zakłada, że użytkownik porusza się po serwisie korzystając jedynie z linków znajdujących się w GUI.
A przecież parametry w adresie można dowolnie modyfikować.
Jeżeli widzimy faktura.php?id=1 nic nie stoi na przeszkodzie aby cyfrę 1 zamienić na 2.
Zakładamy tutaj, że zapytanie do bazy jest prawidłowo chronione przed SQL Injection – to znaczy nie da się tam przekazać ciągu w stylu or 1=1.
Przed wyświetleniem danego obiektu należy zawsze sprawdzić czy użytkownik posiada do niego odpowiednie prawa.
Jednym z pomysłów jest dopisanie dodatkowego warunku do zapytania, chociażby id = ? AND user_id = ?.
Wtedy to nawet jeżeli ktoś zgadnie identyfikator rekordu – jeżeli nie jest z nim powiązany – nie będzie w stanie wyświetlić jego treści.

Innym testem jest przeklikanie interfejsu jako administrator a następnie próba odwiedzenia tych samych adresów jako zwykły użytkownik.
To pozwala dowiedzieć się czy witryna weryfikuje uprawnienia w panelu admina.
Warto również wspomnieć o tak zwanym głębokim ukryciu – czyli przetrzymywaniu plików w skomplikowanej ścieżce dostępu, chociażby: /backup/jkdfgjbvb875h/j98kj7kds.bck
W założeniu dostęp do tych danych ma tylko osoba znająca prawidłowy adres.
Należy jednak uwzględnić przypadki, kiedy to serwer z powodu błędnej konfiguracji nagle zaczyna zwracać listę wszystkich plików w danym katalogu.
Wtedy taki losowy adres przestaje być tajny a pliki stają się dostępne dla wszystkich.

Subskrybuj kanał na YouTube
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Jeżeli chcesz być wołany dodaj się do Mirkolisty.

#programowanie #security #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu #bezpieczenstwo #webdev #programista15k