Skip to content

Conversation

@KarolZebala
Copy link

@KarolZebala KarolZebala commented Nov 11, 2025

Podatności w aplikacji

Jako przykładowy exploit posłużył mi następujący kod

<script>alert('Atak')</script>

Skutkiem jego działania powinno być wyświetlenie komunikatu Atak

Książki

W aplikacji zostały znalezione następujące podatności:
Podczas dodawania książki jako jej nazwę oraz autora można dodać skrypt, który zostanie zapisany do bazy.
AddBokk
Skrypt wykona się podczas wyświetlania listy
ReeadBooks
Podatność ta występuję w sposób analogiczny podczas edycji książki

Klienci

Analogiczna podatność występuje podczas dodawania klientów
AddCustomer
Skrypt wykona się podczas wyświetlania listy
ReadCustomer
Podatność ta występuję w sposób analogiczny podczas edycji klienta

Wypożyczenia

Kolejna podatność występuję przy tworzeniu wypożyczenia przy wyborze książki lub autora, których nazwa jest zainfekowana.
Ewentualnie można w konsoli zmienić kod HTML i dodać opcje w której value będzie zawierało exploita.
AddLoan
Ponownie skrypt zostanie wykonany przy wejściu na listę
ReadLoan

Rozwiązania podatności

W ramach poprawki dodałem:

  • Ograniczenie liczby znaków w request modelach, aby odpowiadały ograniczeniom w bazie
  • Listę dozwolonych znaków dla odpowiednich pól
  • Dodatkowo skorzystałem z biblioteki bleach, która odpowiada za sanityzacje danych wejściowych
  • w plikach html była użyta opcja safe która powodowała brak escapowania html przez django. Opcja ta została usunięta

Testy jednostkowe

Został napisany jeden przykładowy test dla nazwy książki, sprawdza on tylko czy nazwa książki zawiera dopuszczalne znaki.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant