Retire.js – odpowiedź na pytanie czy nie używasz przestarzałych komponentów

komponenty ze znanymi podatnościami

Ręczne przekopywanie się przez kod źródłowy w celu identyfikacji wszystkich przestarzałych i podatnych na atak bibliotek naszej aplikacji webowej jest ogromnie czasochłonne. Możemy to zadanie nieco zautomatyzować za pomocą narzędzia Retire.js. Jest ono dostępne zarówno z poziomu przeglądarki (Chrome, Firefox) jak i wtyczki do Burpa. „Używanie komponentów ze znanymi podatnościami”… Continue reading

Jak zwiększyć bezpieczeństwo wordpressa? – czyli własny hardening cmsa

Jak zwiększyć bezpieczeństwo wordpressa

Treściwa lista rzeczy, które można zrobić aby zwiększyć bezpieczeństwo strony postawionej na wordpresie: przeniesienie/zmiana nazwy pliku wp-login.php, a tym samym domyślnej strony logowania; usunięcie pliku readme.html, który udostępnia wersje wordpressa; skorzystanie z wtyczki “Wordfence” która daje nam:  ochronę w czasie rzeczywistym przed znanymi atakami. Działa to w ten sposób, że… Continue reading

Przykładowy raport z rzeczywistego testu penetracyjnego

Przykładowy raport z rzeczywistego testu penetracyjnego

W ramach swojej pracy magisterskiej miałem okazję przeprowadzić pełny test penetracyjny komercyjnej aplikacji webowej napisanej z użyciem ASP.NET. Wynikiem moich badań jest raport, którym postanowiłem podzielić się w “zaciemnionej” formie z szerszym gronem osób. Materiały tego typu w naszym ojczystym języku są towarem deficytowym. W zasadzie jedyny, który znam z… Continue reading

Jak powinien wyglądać dobry raport z testu penetracyjnego?

dobry raport z testu penetracyjnego

Doświadczony pentester, wie że dobrze napisany raport cechuję się tym, że po jego prezentacji klient nie ma żadnych dodatkowych pytań. Aby było to możliwe powinien on zawierać co najmniej cztery podstawowe sekcje z informacjami przeznaczonymi dla różnej grupy odbiorców. Sekcja 1: Ogólne informacje i statystyki Podczas, gdy programista mający naprawić… Continue reading

Testowanie pod kątem wstrzykiwania zapytań SQL

Testowanie pod kątem wstrzykiwania zapytań SQL

Ataki typu SQL injection polegają na wstawieniu lub „wstrzyknięciu” zapytania SQL za pośrednictwem danych wejściowych przesyłanych przez klienta do aplikacji. Pomyślnie przeprowadzony atak tego typu może posłużyć do odczytu wrażliwych informacji z bazy danych oraz ich modyfikacji, czy też usunięcia. W najbardziej skrajnych przypadkach umożliwia on wydawanie poleceń systemowych. Poniżej… Continue reading

Testowanie podatności typu „CSRF”

Testowanie podatności typu „CSRF”

Atak typu CSRF (cross site request forgery) polega na wykorzystaniu ogólno przyjętej logiki działania przeglądarek internetowych dotyczących zarządzania sesją użytkownika w otwartych stronach. Standardem jest, że użytkownik może posiadać tylko jedną aktywną sesję w aplikacji internetowej z której aktualnie korzysta. Każda nowo otwarta karta w przeglądarce będzie automatycznie korzystać z… Continue reading

Testowanie procesu zarządzania sesją

Testowanie procesu zarządzania sesją

Proces zarządzania sesją obejmuje w szerokim zakresie wszystkie mechanizmy kontrolne użytkownika od uwierzytelnienia do opuszczenie aplikacji. HTTP jest protokołem bezstanowym, co oznacza, że ​​serwery WWW odpowiada na żądania klienta bez  ustanawiania ciągłego połączenia z nim.  Z tego względu nawet prosta aplikacja wymaga wysłania przez użytkownika wielu żądań, zanim zostanie powiązana… Continue reading

Testowanie procesu zakończenia sesji

Testowanie procesu zakończenia sesji

Badanie procesu zakończenia sesji polega w głównej mierze na sprawdzeniu, czy po wylogowaniu użytkownika aplikacji nie jest możliwe ponowne użycie jego identyfikatora sesji. Należy sprawdzić także jak aplikacja zarządza danymi przechowywanymi w pamięci. Aby zminimalizować czas, w którym atakujący może przeprowadzić atak na aktywną sesję i ją przejąć, należy ustawić… Continue reading

Test na zgodność danych uwierzytelniających z popularnymi słownikami

Test na zgodność danych uwierzytelniających z popularnymi słownikami

Większość użytkowników aplikacji internetowych nie stosuje się do zaleceń stosowania trudnych, nie słownikowych danych dostępowych. Często opierają swoje hasła na słowach i frazach, których łatwo nie zapomną. Słowa te to imiona dzieci, adresy ulic, ulubiona drużyna piłkarska, miejsce urodzenia itp.  Konta użytkowników – szczególnie administracyjne powinny być chronione za pomocą… Continue reading

Testy wykorzystania kanałów szyfrowanych do przesyłania haseł oraz poufnych danych.

Testy wykorzystania kanałów szyfrowanych do przesyłania haseł oraz poufnych danych

Wszystkie poufne dane takie jak hasła, loginy, czy też numery kart kredytowych powinny być przesyłane szyfrowanym kanałem pomiędzy klientem, a serwerem. Dzięki temu użytkownik chroniony jest przed atakiem typu „man in the midle”, gdzie atakujący jest wpięty w komunikację pomiędzy użytkownikiem a siecią z której aktualnie korzysta. Ma on dostęp… Continue reading