Natas, gra CTF 12–15

Natas, gra CTF 12–15

NATAS12:

Link do strony: http://natas12.natas.labs.overthewire.org
Login: natas12, password: EDXp0pS26wLKHZy1rDBPUZk0RKfLGIR3

Sprawdźmy najpierw kod strony:

Strona pozwala na upload pliku, który potem może zostać wyświetlony. Zgodnie z wymaganiami może to być plik, który jest sprawdzany pod kątem wielkości (do 1kb). Należy zatem załadować plik, który będzie skryptem php i będzie wyświetlał kod do następnego poziomu, poniżej skrypt do wysłania:

Spróbujmy załadować ten skrypt do strony, będzie potrzebny BurpSuite:

Skrypt zmienia nazwę pliku na losowy ciąg znaków oraz podmienia rozszerzenie php na jpg, dlatego też muszę je zmienić w BurpSuite.

Kod do poziomu 13 to jmLTY0qiPZBbaKc9341cqPQZBJv7MQbY

NATAS13:

Link do strony: http://natas13.natas.labs.overthewire.org
Login: natas13, password: jmLTY0qiPZBbaKc9341cqPQZBJv7MQbY

Kod strony jest poniżej:

Zadanie bardzo podobne do poprzedniego, natomiast sprawdza rodzaj ładowanego pliku czy jest to plik graficzny. Jak poprzednio wykorzystamy skrypt php do podejrzenia hasła. Dodatkowo należy wykorzystać sztuczkę aby oszukać stronę pod kątem rodzaju wgrywanego pliku.

Muszę zmodyfikować pierwsze cztery bajty odpowiedzialne za rodzaj wgrywanego pliku na ciąg FF D8 FF E0

Próbuję następnie ponownie wgrać plik jak w poprzednim zadaniu.

Tutaj jak w poprzednim zadaniu podmieniam rozszerzenie na php, następnie klikam na link do wgranego pliku i wyświetla się hasło do kolejnego poziomu, Lg96M10TdfaPyVBkJdjymbllQ5L6qdl1

NATAS14:

Link do strony: http://natas14.natas.labs.overthewire.org/index.php
Login: natas14, password: Lg96M10TdfaPyVBkJdjymbllQ5L6qdl1

Poziom składa się z panelu logowania, sprawdźmy kod strony:

Kod zawiera zapytanie do bazy sql, który wykorzystuje konkatenację stringów, należy sprawdzić czy istnieje SQL Injection, bardzo popularny błąd na stronach www.

Po wprowadzeniu tych danych pojawia się błąd na stronie:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/www/natas/natas14/index.php on line 24
Access denied!

Spróbujmy zatem wprowadzić wartość w pole logowania aby zmienić logikę zapytania SQL:

Wprowadzone dane do zalogowania w polu login zmieniają logikę zapytania SQL na:

Wszystko co znajduje się po dwóch znakach – i spacji jest traktowane jako komentarz, zatem system nie sprawdza hasła.

Po udanym zalogowaniu pojawia się hasło do kolejnego poziomu:

Successful login! The password for natas15 is AwWj0w5cvxrZiONgZ9J5stNVkmxdk39J

NATAS15:

Link do strony: http://natas15.natas.labs.overthewire.org/index.php
Login: natas15, password: AwWj0w5cvxrZiONgZ9J5stNVkmxdk39J

Kod strony przedstawia się następująco:

Na stronie można zauważyć, że sprawdzany jest warunek czy istnieje login o podanej nazwie, login natas16 istnieje. Użyjemy zatem narzędzia do sql injection w wersji blind, który występuje jeżeli możemy zadawać zapytania do bazy i uzyskiwać odpowiedzi prawda i fałsz.

Wynik działania sqlmap jest poniżej:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.