Michał Walkowski
Michał Walkowski
  • 16
  • 7 762
Burp Academy #8: Fałszowanie żądań między witrynami (CSRF)
W tym odcinku omawiam szczegółowo podatność na fałszowanie żądań między witrynami (CSRF), czyli Cross-Site Request Forgery. CSRF to rodzaj ataku, który umożliwia atakującemu skłonienie użytkownika do wykonania niezamierzonych działań na stronie, na której jest aktualnie zalogowany. W tym filmiku przedstawiam, czym jest CSRF, jak rozpoznać tę podatność oraz jak przygotować skuteczny exploit.
Podczas omawiania podstaw CSRF, wyjaśniam kluczowe elementy, które muszą być spełnione, aby atak CSRF był możliwy. Znajdziesz tu również trzy najczęściej stosowane metody obrony przed CSRF: użycie tokenów CSRF, ustawienie flagi SameSite dla ciasteczek oraz weryfikację za pomocą nagłówka Referer.
W części praktycznej pokazuje, jak ręcznie skonstruować atak CSRF i jak wykorzystać Burp Suite do przeprowadzenia testów. Zawiera to przygotowanie złośliwego kodu HTML, który może zmienić adres e-mail użytkownika bez jego wiedzy. Całość kończy się opisem rozwiązania laboratorium związanym z tym tematem.
Link do Laboratorium:
portswigger.net/web-security/csrf/lab-no-defenses
Dodatkowe Materiały:
CSRF Token: portswigger.net/web-security/csrf/bypassing-token-validation
SameSite: portswigger.net/web-security/csrf/bypassing-samesite-restrictions
Referer: portswigger.net/web-security/csrf/bypassing-referer-based-defenses
---
### Spis treści:
0:00 - 0:16 - Wstęp
0:17 - 0:31- Co to jest CSRF?
0:32 - 1:00 - Skutki ataku CSRF
1:01 - 2:18 - Kiedy atak jest skuteczny?
2:19 - 2:50 - Przykład żądania podatnego na atak
2:51 - 3:32 - Zasadza działania exploitu
3:33 - 3:50 - Inne przypadki CSRF
3:51 - 4:17 - Sposoby przygotowywania exploitu
4:18 - 5:28 - Jak atakujący dostarcza exploit?
5:29 - 6:04 - Podsumowanie teorii
6:05 - 6:57 - Opis zadania
6:58 - 9:36 - Omówienie podatnej witryny
9:37 - 12:22 - Przygotowanie i przetestowanie exploita
12:23 - 12:36 - Rozwiązanie zadania
12:37 - 14:07 - Najczęściej spotykane metody obrony
14:08 - 14:25 - Podsumowanie
---
#csrf #crosssiterequestforgery #burpsuite #BezpieczeństwoWebowe #TokenCSRF #samesite #referer #ObronaCSRF
มุมมอง: 910

วีดีโอ

Burp Academy #7: DOM based XSS
มุมมอง 48121 วันที่ผ่านมา
W tym odcinku z serii Burp Academy by Portswigger pokażę, jak wykorzystać podatności typu DOM-based Cross-Site Scripting (XSS). Przeanalizuję trzy laboratoria, w których zademonstruję techniki ataków przy użyciu funkcji JavaScript takich jak `document.write`, `innerHTML` oraz jQuery. Dowiesz się, jak skutecznie manipulować DOM, aby przeprowadzać ataki XSS oraz jak różne "sinks" mogą prowadzić d...
Burp Academy #6: Bezpieczeństwo JavaScript: Zagrożenia eval i XSS
มุมมอง 306หลายเดือนก่อน
Witajcie w kolejnym odcinku serii Burp Academy by PortSwigger! Dziś zagłębimy się w świat zagrożeń związanych z użyciem funkcji eval w JavaScript oraz jak może to prowadzić do ataków typu DOM-based Cross-Site Scripting (XSS). Co znajdziesz w tym odcinku: * Wprowadzenie do DOM-based XSS: Wyjaśnimy, czym jest Document Object Model (DOM) i jak JavaScript interpretuje stronę internetową. * Analiza ...
Testy Penetracyjne: Od Czego Zacząć Testy Bezpieczeństwa Pierwszej Aplikacji
มุมมอง 9192 หลายเดือนก่อน
Cześć! W tym odcinku z serii "Burp Academy by PortSwigger" chciałbym wam przedstawić, jak wykonać swój pierwszy test penetracyjny. Na prośbę jednej z osób z Discorda, pokażę, od czego zacząć i jak się do tego zabrać, korzystając z przykładowej aplikacji Gin And Juice Shop od PortSwigger. Zanim jednak przystąpimy do naszego pierwszego testu penetracyjnego, przypomnę, czym jest test penetracyjny ...
Burp Academy #5: Jak wykraść sesję administratora za pomocą stored XSS?
มุมมอง 4022 หลายเดือนก่อน
W tym odcinku z serii Burp Academy by PortSwigger będziemy kontynuować naukę na temat wykrywania podatności XSS, czyli cross-site scripting. Tym razem skupimy się na stored XSS. Linki do laboratoriów: portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded portswigger.net/web-security/cross-site-scripting/exploiting/lab-stealing-cookies portswigger.net/web-secu...
Burp Academy #4: Twój pierwszy XSS!
มุมมอง 4432 หลายเดือนก่อน
W tym odcinku serii Burp Academy by PortSwigger skupimy się na Reflected XSS, jednym z najczęstszych ataków webowych. Przeanalizujemy trzy zadania z Burp Suite Academy, które pomogą nam zrozumieć, jak działa ten typ podatności i jak go wykorzystać. Pokażę, jak wykonać ataki typu cross-site scripting w różnych kontekstach HTML i JavaScript. Więcej informacji na temat XSS i cheat sheet znajdziesz...
Burp Academy #3: SQL Injection - Ataki UNION i ORDER BY
มุมมอง 5333 หลายเดือนก่อน
W tym odcinku z serii Burp Academy by PortSwigger kontynuujemy naszą przygodę z testami penetracyjnymi, koncentrując się na SQL Injection. Przedstawię trzy zróżnicowane zadania dla średnio zaawansowanych, które pomogą Ci zrozumieć, jak identyfikować i wykorzystywać podatności w różnych bazach danych. Przyjrzymy się kluczowym technikom, takim jak UNION oraz ORDER BY, i pokażę, jak mogą być one p...
Burp Academy #2: Jak ominąć funkcjonalność logowania dzięki SQL Injection?
มุมมอง 5613 หลายเดือนก่อน
W tym odcinku serii Burp Academy przyglądamy się kolejnemu przypadkowi podatności SQL Injection, gdzie omówimy, jak ominąć system logowania i uzyskać dostęp do panelu administratora bez znajomości hasła. Odkryj, jak błędy w implementacji SQL mogą prowadzić do poważnych wycieków danych i zmian w logice biznesowej aplikacji. 🔗 Link do laboratorium: portswigger.net/web-security/sql-injection/lab-l...
Burp Academy #1: Eksploatacja podatności SQL Injection w WHERE
มุมมอง 7274 หลายเดือนก่อน
W tym odcinku skupimy się na jednym z najczęściej spotykanych zagrożeń w aplikacjach internetowych - SQL Injection. Przyjrzymy się, jak taka podatność może wystąpić w klauzuli WHERE zapytania SQL i jakie niebezpieczeństwa niesie ze sobą, w tym nieautoryzowany dostęp do ukrytych danych i potencjalne uszkodzenie lub przejęcie kontroli nad bazą danych. Z pomocą przykładu laboratorium "SQL injectio...
Wprowadzenie do Testów Penetracyjnych z Burp Academy by PortSwigger
มุมมอง 1.8K4 หลายเดือนก่อน
Cześć! Zapraszam na pierwszy odcinek serii Burp Academy by Port Swigger, gdzie opowiem o podstawach testów penetracyjnych i narzędziu Burp Suite. Dowiesz się, jakie możliwości oferuje Burp Suite i jakie zadania na początek proponuje Port Swigger Academy dla początkujących. Zapraszam do oglądania i nauki razem ze mną! 👉 Chcesz dowiedzieć się więcej? Odwiedź mój blog pod adresem mwalkowski.com i ...
Rozwiązywanie nazw hosta w Burp: Czyli jak uniknąć edycji pliku /etc/hosts
มุมมอง 2925 หลายเดือนก่อน
W dzisiejszym wideo pokazuję, jak skutecznie wykorzystać funkcję Hostname resolution override w Burp Suite, aby ominąć konieczność edycji pliku /etc/hosts. Dzięki temu trickowi, nawet użytkownicy systemów Windows mogą łatwo manipulować rozwiązywaniem nazw hostów bez potrzeby posiadania uprawnień administratora. Wyjaśniam krok po kroku, jak skonfigurować Burp Suite, wykorzystując przykład maszyn...
CVE-2024-2465: Open redirect in CDeX
มุมมอง 785 หลายเดือนก่อน
Vulnerability detected by me in the CDeX software offered by the company of the same name. The vulnerability allows to redirect users to arbitrary websites via a specially crafted URL. Read more: mwalkowski.github.io/post/cve-2024-2465-open-redirection-in-cdex
CVE-2024-2464: Application users enumeration in CDeX
มุมมอง 825 หลายเดือนก่อน
Vulnerability detected by me in the CDeX software offered by the company of the same name. This vulnerability occurs during password recovery, where a difference in messages could allow an attacker to determine if the user is valid or not, enabling a brute force attack with valid users. Read more: mwalkowski.github.io/post/cve-2024-2464-application-users-enumeration-in-cdex/
CVE-2024-2463: Weak password recovery mechanism in CDeX
มุมมอง 1325 หลายเดือนก่อน
Vulnerability detected by me in the CDeX software offered by the company of the same name. The vulnerability allows the interception of the token used to reset the password of any user. Read more: mwalkowski.github.io/post/cve-2024-2463-weak-password-recovery-mechanism-in-cdex
Once again, ZAP Scripting, request encryption, and finally, signing
มุมมอง 445 หลายเดือนก่อน
🔐 Discover the power of RSA encryption and signing with ZAP Scripting! 🚀 In this video, we delve into the functionality of our custom scripts for encrypting and signing messages using RSA keys within ZAP. Curious to learn more? Check out our detailed blog posts for in-depth insights and examples: mwalkowski.github.io/post/dark-side-backend-side-requests-encryption-with-rsa-in-python-flask-part-...
Using Burp Python Scripts to encrypt requests with RSA keys
มุมมอง 1196 หลายเดือนก่อน
Using Burp Python Scripts to encrypt requests with RSA keys

ความคิดเห็น

  • @Krzysztof.Kinel.
    @Krzysztof.Kinel. 6 วันที่ผ่านมา

    Świetna robota. CSRF jest skomplikowaną podatnością. Wytłumaczyłeś to bardzo dobrze!

    • @mwalkowski
      @mwalkowski 6 วันที่ผ่านมา

      Dzięki!

  • @Alercik_1
    @Alercik_1 7 วันที่ผ่านมา

    Kolejny świetny odcinek😎

    • @mwalkowski
      @mwalkowski 7 วันที่ผ่านมา

      Dzięki!

  • @janekmachnicki2593
    @janekmachnicki2593 7 วันที่ผ่านมา

    Super odcinek

    • @mwalkowski
      @mwalkowski 7 วันที่ผ่านมา

      Dziękuję ;)

  • @aaggaajjll
    @aaggaajjll 7 วันที่ผ่านมา

    Super! Widać bardzo duże zaangażowanie w przygotowaniu filmiku 👏🏻💪🏻

    • @mwalkowski
      @mwalkowski 7 วันที่ผ่านมา

      Dziękuję :)

  • @toannguyenchi2710
    @toannguyenchi2710 14 วันที่ผ่านมา

    long time no see bro, hope your channel will grow up so fast and all the best to your family ❤❤❤

    • @mwalkowski
      @mwalkowski 14 วันที่ผ่านมา

      Thanks a lot! Great to hear from you again. I appreciate the support and best wishes. Sending warm regards and all the best to you and your family! ❤❤❤

  • @PaweDuzy
    @PaweDuzy 21 วันที่ผ่านมา

    10:50 - skąd wiedziałeś co wpisać w google? :) Rozumiem, że potrzebowaliśmy nazwy drugiego pola, ale jaki proces myślowy kierował akurat temu wyszukaniu i dlaczego `table_name`?

    • @PaweDuzy
      @PaweDuzy 21 วันที่ผ่านมา

      i skąd wiedziałeś, że dalej ma być `column_name`? Podejrzewam, że kłania się podstawowa wiedza o zapytaniach SQL ale jestem ciekaw co odpowiesz

    • @mwalkowski
      @mwalkowski 21 วันที่ผ่านมา

      Cześć, dzięki za komentarz. Wynika to w dużej mierze z mojego doświadczenia. Każdy serwer bazy danych posiada wbudowaną bazę/tabelę, w której przechowuje swoją konfigurację oraz informacje na temat innych baz danych, tabel, kolumn itp. Wiedząc, że muszę odpytać tabelę `all_tables`, skonstruowałem zapytanie zgodnie z zasadą: nazwa tabeli + typ bazy danych + typ informacji, jakiej szukam (w tym przypadku chodziło o informacje dotyczące kolumn). Jeśli chodzi o `table_name`, to przez analogię - nazwy zazwyczaj nie są wymyślane przypadkowo. Skoro `table_name` przechowuje nazwę tabeli, to analogicznie `column_name` prawdopodobnie zawiera nazwę kolumny. Gdyby jednak okazało się, że się mylę, pewnie poszukałbym tej informacji ponownie w Google.

    • @PaweDuzy
      @PaweDuzy 21 วันที่ผ่านมา

      @@mwalkowski Super, dziękuję.

    • @mwalkowski
      @mwalkowski 21 วันที่ผ่านมา

      Do usług ;)

  • @PaweDuzy
    @PaweDuzy 22 วันที่ผ่านมา

    Wohoo :) Dzięki :)

    • @mwalkowski
      @mwalkowski 22 วันที่ผ่านมา

      Miłego oglądania :)

    • @PaweDuzy
      @PaweDuzy 9 วันที่ผ่านมา

      ​@@mwalkowski a ciekawe, bo przy pierwszym labie, takie coś też działa: '">');<script>alert(0)</script>// Czyli generalnie z tego: function trackSearch(query) { document.write('<img src="/resources/images/tracker.gif?searchTerms='+query+'">'); } Robię to: function trackSearch(query) { document.write('<img src="/resources/images/tracker.gif?searchTerms=' '">');<script>alert(0)</script>//'">'); } I teraz, czy to jest zgodne ze sztuką, czy może np. sam lab jest słabo zaimplementowany?

    • @mwalkowski
      @mwalkowski 9 วันที่ผ่านมา

      @PaweDuzy Hej, jesteś tego pewny? Przeanalizuj jeszcze raz odpowiedź w historii Burp lub zajrzyj do kodu w przeglądarce za pomocą "Pokaż źródło". Porównaj to z tym co pokazuje Ci się w DOM inspektor. Wspominam o tym w filmiku, że inspektor DOM w przeglądarce będzie pokazywał co innego niż kod HTML. Tak właśnie działa podatność DOM-based XSS :) Co do samego payload, nie ma znaczenia jakiego użyjesz. Każdy będzie dobry, który będzie działał.

    • @PaweDuzy
      @PaweDuzy 9 วันที่ผ่านมา

      @@mwalkowski Widzę, że youtube chyba uznał mój komentarz za złośliwy. Zaraz znajdę coś do nagrywania PoC i podeślę na Discordzie.

    • @PaweDuzy
      @PaweDuzy 9 วันที่ผ่านมา

      ​@@mwalkowskiDobra, generalnie to znalazłem swoje rozwiązanie które też działało ale zastanawiałem się czy jest poprawne. Jednak Pan Walkowski mi dokładnie wszystko wytłumaczył, więc gra gitara :D Dzięki wielkie!

  • @Alercik_1
    @Alercik_1 22 วันที่ผ่านมา

    Wkońcu nowa dawka nauki😎

    • @mwalkowski
      @mwalkowski 22 วันที่ผ่านมา

      Jeśli masz pytania lub sugestie, śmiało pisz!

  • @Alercik_1
    @Alercik_1 หลายเดือนก่อน

    świetny materiał, Rób dalej to co robisz ponieważ naprawdę dobrze ci to idzie i można dowiedzieć się z tych materiałów dużo ważnych rzeczy.

    • @mwalkowski
      @mwalkowski หลายเดือนก่อน

      Dzięki ;)

  • @piotrrrrrrek
    @piotrrrrrrek 2 หลายเดือนก่อน

    Z dodawaniem scope'a w Burpie zawsze jest trochę ambiwalencji. Z jednej strony dobrze go skonfigurować żeby uniknąć strzelenia w coś, co nie miało być celem. Warto też w tym celu żeby sobie zaznaczyć w ustawieniach proxy żeby nie przechwytywało ruchu spoza scope'u (odsieje to np. ruch jaki generują przeglądarki/wyszukiwarki itp.) Z drugiej strony czasem warto na początku zostawić otwarty scope i pasywnym przeklikiwaniem zobaczyć z czym komunikuje się aplikacja - można w ten sposób odkryć jakieś ukryte domeny, serwery API, czy inne komponenty, które nie były w początkowym scop'ie, a które warto wskazać klientowi i być może uwzględnić w testach. Pzdr

    • @mwalkowski
      @mwalkowski 2 หลายเดือนก่อน

      Dzięki za komentarz. Tak masz racje, zawsze trzeba popatrzeć z czym strona się komunikuje po za scope, tylko nie wolno tego atakować. Scope zawsze warto skonfigurować na początku, to z czym strona się komunikuje możesz zobaczyć już sterując filtrem w historii Burp. Po prostu na początku projektu nie zaznaczasz opcji "Show only in-scope items".

  • @Piotr_Lesko
    @Piotr_Lesko 2 หลายเดือนก่อน

    Świetne. Dziękuję.

    • @mwalkowski
      @mwalkowski 2 หลายเดือนก่อน

      Proszę :)

  • @MrYavax
    @MrYavax 2 หลายเดือนก่อน

    Dobrze oby tak dalej :)

    • @mwalkowski
      @mwalkowski 2 หลายเดือนก่อน

      Dzięki ;)

  • @Alercik_1
    @Alercik_1 2 หลายเดือนก่อน

    Bardzo dobrze wykonany materiał z którego naprawdę mogę się dużo nauczyć jako nastolatek. Bardzo dobrze wszystko tłumaczysz a przykłady które dajesz są naprawde bardzo przemyślane i przydatne bo dzięki nim mogę jeszcze bardziej zrozumieć o co chodzi. mam nadzieje że będzie więcej tego typu filmików :)

    • @mwalkowski
      @mwalkowski 2 หลายเดือนก่อน

      Dzięki! Właśnie taki jest plan, aby tłumaczyć wszystko najbardziej jak się da ;)

  • @cezarywysocki2289
    @cezarywysocki2289 3 หลายเดือนก่อน

    🤌

    • @mwalkowski
      @mwalkowski 3 หลายเดือนก่อน

      Thx ;)

  • @MrYavax
    @MrYavax 3 หลายเดือนก่อน

    Może w końcu zacznę się tego burpa uczyć :)

    • @mwalkowski
      @mwalkowski 3 หลายเดือนก่อน

      Team Burp 💪

  • @aaggaajjll
    @aaggaajjll 3 หลายเดือนก่อน

    Kolejny ciekawy filmik! Dzięki Michał! Widać też upgrade w oprawie graficznej 👏🏻💪🏻

    • @mwalkowski
      @mwalkowski 3 หลายเดือนก่อน

      Dzięki!

  • @cezarywysocki2289
    @cezarywysocki2289 3 หลายเดือนก่อน

    nareszcie! :)

    • @mwalkowski
      @mwalkowski 3 หลายเดือนก่อน

      staram się :)

  • @Piotr_Lesko
    @Piotr_Lesko 4 หลายเดือนก่อน

    Dzięki.

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      Proszę ;)

  • @vroclaviavroclavia4864
    @vroclaviavroclavia4864 4 หลายเดือนก่อน

    Gratuluję

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      Dziękuję ;)

  • @aaggaajjll
    @aaggaajjll 4 หลายเดือนก่อน

    Z filmiku na filmik jest coraz ciekawiej! Widać progres 💪🏻 Czekam na kolejne

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      dzięki!

  • @danielmadejski4676
    @danielmadejski4676 4 หลายเดือนก่อน

    Ciekawy content, dzięki Michał, niezłe uzupełnienie tego czego nie znalazłem w książce od sekuraka "Bezpieczeństwo aplikacji webowych".

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      Dzięki! Miło to słyszeć :)

  • @konradszatanek6241
    @konradszatanek6241 4 หลายเดือนก่อน

    Super, krótko, zwięźle i na temat. Czekam na następne !

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      dzięki!

  • @xBart78
    @xBart78 4 หลายเดือนก่อน

    Świetny materiał! Jak kolega wyżej, będę śledził (i oglądał oczywiście!)

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      Dzięki :)

  • @cezarywysocki2289
    @cezarywysocki2289 4 หลายเดือนก่อน

    b. d. pomysl na serię! wytrwalosci! bede ogladał.

    • @mwalkowski
      @mwalkowski 4 หลายเดือนก่อน

      Dzięki!

  • @toannguyenchi2710
    @toannguyenchi2710 5 หลายเดือนก่อน

    So amazing bro ❤❤❤

    • @mwalkowski
      @mwalkowski 5 หลายเดือนก่อน

      thank u!

  • @cezarywysocki2289
    @cezarywysocki2289 5 หลายเดือนก่อน

    Super!

    • @mwalkowski
      @mwalkowski 5 หลายเดือนก่อน

      Dzięki!