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.
Patrząc na to, jak #holownia sobie radzi w fotelu marszałka po tych pierwszych dniach, muszę stwierdzić, że nie mam poczucia źle oddanego głosu. Zobaczymy co będzie dalej #wybory #sejm #polityka
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
Możesz zapisać/wypisać się klikając na nazwę listy.
Sponsor: Grupa Facebookowa z promocjami z chińskich sklepów
Masz problem z działaniem listy? A może pytanie? Pisz do IrvinTalvanen
! @KacperSzurek @Mashe @UrimTumim @porque @NERP @Smevios @Jakplus @Pioneer95 @ThatPart @szczeppan @Zielarz25 @press2210 @Dorrek @hiroszi @jerekp @Dyktus @bovver91 @Campell @ghostd @heow