Wpis z mikrobloga

Jak wyglądają realne błędy w aplikacjach?
W dzisiejszym odcinku #od0dopentestera pokażę Ci 4 błędy w oprogramowaniu Kallithea, które umożliwiają dostęp do cudzych danych.

Kallithea to serwer #git napisany w #python

Uprawnienia w całej aplikacji są weryfikowane przy pomocy dekoratorów.

Za każdym razem gdy chcemy sprawdzić czy użytkownik posiada dostęp do danej funkcjonalności - zamiast wywoływać funkcję HasRepoPermission - możemy użyć dekoratorów.

@HasRepoPermissionAllDecorator('repository.admin')
def delete(self, repo_name):

Takie rozwiązanie poprawia czytelność kodu, ale jeżeli nie umieścimy żadnego dekoratora przed funkcją - aplikacja będzie myślała, że dany użytkownik ma pełne uprawnienia do danej funkcjonalności.

W tym wypadku programiści zapomnieli o dekoratorze w miejscu, które było odpowiedzialne za ustawianie odpowiednich uprawnień dostępu do repozytorium.

Wystarczyło więc znać nazwę cudzego repozytorium i ustawić siebie jako administratora.

Drugi błąd znajdował się w interfejsie API.

Aplikacja pozwalała na tworzenie repozytoriów na podstawie innych repozytoriów.

Standardowe użycie to podanie adresu http interesującego nas repozytorium - na przykład na Githubie.

Ale git pozwala również na klonowanie lokalnych repozytoriów - przy użyciu normalnej ścieżki do katalogu.

Jeżeli znaliśmy nazwę używaną przez innego użytkownika - mogliśmy przewidzieć w jakim katalogu Kallithea trzyma wszystkie potrzebne dane.

Następnie wystarczyło podać tą ścieżkę podczas tworzenia nowego repozytorium i kod do którego nie posiadaliśmy dostępu, nagle okazuje się być dostępny.

Więcej informacji na temat tych błędów na moim blogu.

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

#security #bezpieczenstwo #programowanie #programista15k #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu
KacperSzurek - Jak wyglądają realne błędy w aplikacjach?
W dzisiejszym odcinku #od0d...
  • 2