ProjektPython/README.md

2.2 KiB

Temat projektu

Projekt zwraca użytkownikowi informacje na temat tego czy przekazany poprzez API ciąg znaków zawiera w sobie próbę ataku z jednej z poniższych klas: Cross Site-Scripting SQL Injection OS Command Injection

Dane trenujące

Do wytrenowania sieci wykorzystano publicznie dostępne zbiory przykładowych payloadów: https://github.com/payloadbox/xss-payload-list/blob/master/Intruder/xss-payload-list.txt https://github.com/CyberM0nster/SQL-Injection-Payload-List- https://github.com/omurugur/OS_Command_Payload_List/blob/master/OS-Command-Fuzzing.txt

Dane "zwykłe" (w rozumieniu - wolne od próby ataku na aplikacje) uzyskano poprzez framework Faker (10200 wartości). Dane te wygenerowano z użyciem następujących funkcji: faker.ascii_company_email() faker.city() faker.country() faker.postcode() faker.street_address() faker.iban() faker.company() faker.credit_card_number() faker.date_of_birth() faker.domain_name() faker.job() faker.sentence(nb_words=10) faker.passport_number() faker.name() faker.phone_number() faker.ssn() faker.user_agent() Zbiór ten reprezentuje typowe dane wprowadzane przez użytkowników do formularzy w aplikacjach webowych.

Prezentacja do projektu

Prezentacja do projektu znajduje się pod tym adresem.

Test jednostkowe Rest API

Stworzonych zostało 8 testów API, zarówno dla metody GET jak i POST.

Dostęp do aplikacji

Aplikacja dostępna jest w sieci wydziałowej pod adresem:

http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/docs

Instalacja odbyła się bez anacondy, ponieważ w kontenerze zabrakło wolnego miejsca na dysku.

Przykładowe wywołania (dla GET):

http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/courtneybennett@miller.com - dane normalne
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/1))%20or%20sleep(5)# - sql injection
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/%3Cimg%20src=%22javascript:alert(2)%22%3E - xss
http://ppw-s1201686.vm.wmi.amu.edu.pl:8000/detect/%22%7Cecho%20DKGJRP$((17%2B97))$(echo%20DKGJRP)DKGJRP' - os command injection

Sposób komunikacji poprzez POST można zobaczyć w pliku test_main.py