## Zadanie zaliczeniowe z przedmiotu Wprowadzenie do Testowania
### Opis
Moim zadaniem zaliczeniowym było utworzenie raportu na podstawie przeprowadzonych testów penetracyjnych strony https://google-gruyere.appspot.com/part1.
W tym celu wygenerowałam unikalne id, dlatego testy zostały przeprowadzone na stronie https://google-gruyere.appspot.com/427718249942042260769664292874039511420/.
### Spis treści
* [Lista użytych narzędzi](#lista-narzędzi)
* [Znalezione podatności](#znalezione-podatności)
* [Scenariusze testów](#scenariusze-testów)
* [Możliwe zastosowania](#możliwe-zastosowania)
## Lista użytych narzędzi
Testy zostały przeprowadzone przy użyciu przeglądarki FireFox, dostępnego w niej zestawu narzędzi deweloperskich oraz dodatkowego rozszerzenia Web Developer dla tejże przeglądarki.
Wskutek obsługi formularzy przy użyciu metody GET zamiast POST, przekazywane zapytania widoczne są w adresie url, tym samym narażone zostają na ataki, a manipulacja przekazywanymi danymi jest bardzo prosta.
Np. fragment zapytania tworzącego nowe konto użytkownika: https://.../saveprofile?action=new&uid=agata&pw=agata&is_author=True można łatwo zmanipulować na: https://.../saveprofile?action=update&uid=agata&is_admin=True.
Po otwarciu linku https://google-gruyere.appspot.com/427718249942042260769664292874039511420/quitserver następuje zamknięcie serwera - taką możliwość powinien mieć wyłącznie administrator, tymczasem nie trzeba być nawet zalogowanym użytkownikiem, aby do tego doprowadzić.
2. Zmień adres url na: https://google-gruyere.appspot.com/427718249942042260769664292874039511420/saveprofile?action=update&uid=username&is_admin=True, gdzie *username* to Twoja nazwa użytkownika
3. Aplikacja powinna zalogować Cię do Twojego konta
4. Wyloguj się
5. Zaloguj się z powrotem przy pomocy takich samych danych, jak przy tworzeniu nowego konta
6. W prawym górnym rogu pojawi się zakładka *Manage this serwer*, dostępna tylko dla użytkowników z uprawnieniami administratora; nowe uprawnienia są także widoczne w ciasteczku:
2. Nastąpi zamknięcie serwera, a jego ponowne uruchomienie wymagać będzie czasu:
![Upload](images/g5.png)
### Wyświetlenie zawartości bazy danych
1. Zaloguj się na konto użytkownika
2. Wybierz zakładkę *Profile*
3. Jako treść formularza wprowadź: *{{_db:pprint}}*
4. Wybierz *Update*
5. Przejdź do *Private Snippet Show* i wyświetl swój prywatny snippet
6. Wyświetlone zostaną wrażliwe dane użytkowników:
![Upload](images/g6.png)
## Możliwe zastosowania znalezionych podatności
## Manipulacja zapytań http
Poprzez manipulację zapytać http, którą można przeprowadzić choćby przy pomocy edycji adresu url, można nadać sobie (lub dowolnemu użytkownikowi znając jedynie jego nazwę) uprawnienia administratora. Daje to możliwości resetowania oraz zamykania serwera, ale także edycji dowolnych danych