OWASP Top 10 – czyli co każdy programista o bezpieczeństwie wiedzieć powinien #od0dopentestera
Niedostateczne logowanie i monitorowanie to ostatni z punktów na liście.
Ale jak to? Przecież brak logowania to nie jest błąd sam w sobie.
Przecież jeżeli nic nie logujemy, to też nic nie może zostać wykradzione.
A co w przypadku gdy ktoś włamie się do naszej aplikacji?
Jeżeli nie posiadamy logów, to nawet jeżeli wykryjemy włamanie, dalej nie wiemy kiedy
Jeżeli pracujesz w firmie programistycznej to w którymś momencie tworzenia nowej aplikacji należy sprawdzić jej bezpieczeństwo. #od0dopentestera
Gdy brak wewnętrznego zespołu zajmującego się tym tematem, zatrudnia się zewnętrzny podmiot do przeprowadzenia testu penetracyjnego.
Umowa zawiera ramy czasowe oraz zakres pentestu – czyli to co będzie testowane.
Uogólniając: płacimy za spędzony czas a nie za znalezione błędy.
Innym podejściem do tematu jest Bug Bounty.

Tutaj wyrażamy zgodę na testowanie naszej aplikacji szerszej grupie
Masz pytanie na temat security? Zadaj je na grupie


@KacperSzurek: Jasne.
Security to very szeroki topic, w którym każdemu beginnersowi pojawia się dużo questionsów i zanswerowanie ich w social mediach jest bardzo well widziane przez community, bo może zaimpovementować knowledge i zgainować trochę nowych skillsów przydatnych w usual taskach albo większych czelenżach uzgadnianych na meetingach z coworkerami przy aprobacie managementu.
Na jakie metody oszustw można natknąć się przeglądając oferty na popularnych portalach ogłoszeniowych?
Kim jest słup oraz jak można nim zostać? #od0dopentestera

Otrzymałeś email o domniemanym spadku po królu w Nigerii.
Aby go odebrać wystarczy tylko uiścić drobną opłatę manipulacyjną.
Te wiadomości specjalnie wyglądają tak źle.
Jeżeli potencjalna ofiara uwierzy w tak nierealistyczne wizje już na samym początku, istnieje spora szansa, że da się ją przekonać jeszcze do innych rzeczy.

Ktoś
Poszukiwanie błędów typu DOM Based XSS polega na odnajdywaniu takich miejsc w skrypcie strony, które pobierają dane od użytkownika, a następnie przekazują je do potencjalnie niebezpiecznych miejsc w stylu innerHTML bez odpowiedniej weryfikacji. #od0dopentestera
Jednym z obecnie stosowanych rozwiązań, jest zamiana problematycznych funkcji na ich bezpieczniejsze odpowiedniki.
I tak zamiast innerHTML można użyć innerText.
Problem w tym, że taka zmiana nie zawsze jest możliwa.

Postanowiono zatem monitorować potencjalnie niebezpieczne miejsca.
Zmieniono
Jak rozpocząć przygodę z programami Bug Bounty? #od0dopentestera
1. Znajdź firmę, która pozwala na poszukiwanie błędów. Możesz skorzystać z agregatorów lub użyć Google
2. Sprawdź zakres (scope). Dzięki temu dowiesz się jakie domeny można testować.
3. Gwiazdka użyta w nazwie domeny oznacza, że firma pozwala na atakowanie wszystkich subdomen, które odnajdziesz.
Tutaj przydatny jest certificate transparency log gdzie zapisane są wszystkie prawidłowo wygenerowane certyfikaty SSL.
To pozwala na poznanie subdomen używanych
Certyfikat SSL sprawia, że ruch pomiędzy naszą przeglądarką a serwerem jest szyfrowany – czyli nasz operator internetowy nie wie, co przesyłamy.
Ale co w przypadku, gdy ten certyfikat wygasł i nie jest ważny?
Czy możemy bezpiecznie zaakceptować wyjątek bezpieczeństwa? #od0dopentestera

Aby połączenie było szyfrowane każdy serwer musi posiadać swój unikalny klucz.
Ten klucz musi być jakoś powiązany z nazwą domeny.
Tylko, że każdy może wygenerować swój klucz i stwierdzić, że należy on
@KacperSzurek: wiem, że to materiał "popularnonaukowy" ale mówisz, że tylko serwer docelowy może odczytać, to co do niego wysyłamy. A nie jest to do końca prawdą, bo to, co wysyłamy może odczytać każdy, kto posiada klucz prywatny, a często w internecie właściciel serwera intencjonalnie dzieli się swoim kluczem prywatnym z innymi podmiotami, i te podmioty także mogą (i robią to) odczytać ruch.
@Texit: Tworze materiały różnej długości. Chociażby seria od 0 do pentestera, gdzie filmy trwają około 6 minut.
Niestety, nie wszystko da się wytłumaczyć w takim czasie.
Niektóre treści tworzone są jako podcast – stąd ich nieco dłuższa forma.
Jeżeli dla kogoś to za długo zawsze może przeczytać transkrypcję do wideo bądź też przeskoczyć do interesującego wątku przy użyciu sygnatur czasowych w opisach pod filmem.
Mocno skrócone wersje publikuje również na
Każde pole w tabeli MySQL ma określony typ.
Dla varchar możemy zdefiniować maksymalną długość przechowywanego tekstu.
Ale co w przypadku, gdy użytkownik prześle dłuższy ciąg? #od0dopentestera

W przypadku konstrukcji INSERT dane zostaną automatycznie przycięte do maksymalnej długości danego pola.
To nic odkrywczego, ale mało kto wie, że standardowo baza ignoruje spacje na końcu wyrazu:

SELECT * FROM users WHERE login = "admin "

Dostaniemy takie same wyniki jak dla zapytania bez białych
WordPress to najpopularniejszy system blogowy w Internecie.
Średnio już co 3 strona korzysta właśnie z niego.
Jednak przez te lata wokół tego narzędzia narosło wiele mitów.
Czy #wordpress jest bezpieczny?
O tym w dzisiejszym #od0dopentestera

Spróbujmy prześledzić liczbę podatności.
Wykorzystamy do tego celu stronę WPScan Vulnerability Database.
Ostatni znany błąd w samym silniku pochodzi z marca 2019 roku.
Jest oznaczony jako atak XSS przy użyciu komentarza.
Tylko, że aby go wykorzystać,
W serii #od0dopentestera opowiadam głównie o atakach na strony internetowe.
Ale przecież większość firm posiada swoje fizyczne biura.
Nic zatem nie stoi na przeszkodzie aby potencjalny atakujący spróbował dostać się do biurowca i zaatakować firmę właśnie tam.
Jak może wyglądać takie kontrolowanie włamanie?

Pierwsza przeszkoda to bramki kontroli dostępu.
Jak je obejść? Spróbuj skłamać, że jesteś umówiony na rozmowę kwalifikacyjną.
Możesz również przyjść o kulach albo na wózku inwalidzkim.
Podszywanie się pod
@KacperSzurek: kilka lat temu robiłem projekt w banku. Raczej standardowe zabezpieczenia, karta dostępu, kontrola czy nie wnosisz/wynosisz jakiegoś komputera (trzeba było mieć wtedy papier).
Aż projekt się skończył i została mi powierzona funkcja wyniesienia naszego sprzętu (kilka komputerów). Więc wziąłem platformę, zapakowałem na nią komputery i wyjechałem z biurowca. Dwa razy z pełną platformą. Bez jakiejkolwiek kontroli. Strażnik mi jeszcze bramkę przytrzymał.
Jakiś czas temu tłumaczyłem błąd CSRF, który może prowadzić do nieświadomego wykonania akcji przez zalogowanego użytkownika.
Wtedy jako rozwiązanie podałem używanie dodatkowego pola z losową wartością.
Ale czy ruch twórców przeglądarki Google Chrome może doprowadzić do końca tego rodzaju podatności?

Planowane jest bowiem ustawienie flagi SameSite=Lax dla wszystkich ciasteczek.
W wersji Strict przeglądarka nie dołączy ciasteczka do żądania, które pochodzi z innej domeny.
Jeżeli więc złośliwy formularz znajduje się na innej domenie
Czasami aby przeprowadzić atak na użytkownika musimy przekonać go do wykonania pewnej czynności. #od0dopentestera
Tak jest w przypadku self XSS, kiedy to ofiara musi samodzielnie otworzyć konsolę deweloperską przeglądarki (w przypadku Chrome przy użyciu F12) a następnie wkleić tam kod #javascript otrzymany od atakującego.

Innym przykładem są błędy w obsługiwaniu niektórych nagłówków przesyłanych przez przeglądarkę, chociażby User-agent, czyli informacji na temat wersji programu, której aktualnie używamy.
Ten nagłówek jest
Nie zawsze analizując aplikację natrafiamy na błędy typu SQL Injection bądź XSS.
Czasami odnajdujemy podatności, które na pierwszy rzut oka wydają się być mało interesujące.
Chociażby możliwość usunięcia dowolnego pliku z serwera.
Dzisiaj w #od0dopentestera o kreatywnych sposobach wykorzystania tego rodzaju błędów.

1. WordPress to popularny system blogowy.
Informacje na temat dostępu do bazy danych przechowuje on w pliku wp-config.php
W przypadku jego braku, system automatycznie uruchamia instalator.
Takie rozwiązanie jest przyjazne
Pracujesz z dużą ilością serwerów podczas swojej pracy?
Do każdego z nich logujesz się przy pomocy swojego klucza SSH?
A co w przypadku gdy do wielu serwerów dostęp powinno mieć wielu użytkowników?
Czy klucz każdego z nich należy dopisać do pliku ~/.ssh/authorized_keys?
Co w sytuacji gdy użytkownik straci kontrolę nad swoim kluczem prywatnym albo odejdzie z firmy?
Jak zarządzać taką infrastrukturą?
O tym w dzisiejszym odcinku #od0dopentestera

W SSH możemy skonfigurować
Czy moje hasło jest bezpieczne? #od0dopentestera
A może znalazło się w jakimś wycieku danych?
Jak mogę to sprawdzić?

Pierwsza możliwość to samodzielne odnalezienie linków do baz zawierających dane z wycieków.
Następnie należy je wypakować, odpowiednio przetworzyć i spróbować odnaleźć w nich swoje hasła.
Ale nie każdy posiada odpowiednie zdolności techniczne.

Wiemy, że podawanie naszych haseł na zewnętrznych serwisach nie jest najlepszym pomysłem.
W celu zachowania bezpieczeństwa będziemy wiec korzystać z funkcji haszującej,
via Wykop Mobilny (Android)
  • 5
jak raz sprawdzisz przez jakąkolwiek wyszukiwarkę haseł to już napewno będzie w bazie wycieknietych haseł xd


@atari_XE: czytałeś co napisał @KacperSzurek: ?
Pomogę Ci znaleźć odpowiedni fragment w tej "ścianie" tekstu..

Serwis lokalnie, na naszym komputerze wylicza hash sha1 a następnie pobiera z niego pierwsze 5 znaków.

Te 5 znaków wysyłane jest do serwera API, który to zwraca wszystkie rekordy, zaczynające się od tych wartości. Przeglądarka ponownie lokalnie porównuje każdy
Jak działa kradzież karty SIM? Co to jest SIM swap?
Dlaczego banki chcą abyśmy zrezygnowali z potwierdzania przelewów przy użyciu SMSów?
O tym dzisiaj w #od0dopentestera

Zazwyczaj sam login i hasło bankowości elektronicznej nie wystarczą aby zlecić przelew.
Bank chce mieć pewność, że to my zleciliśmy transakcję dlatego wykorzystuje idee dwuskładnikowej weryfikacji.
W przeszłości wykorzystywano do tego karty kodów jednorazowych.
W ostatnim kroku wysyłania przelewu losowano jeden z nieużytych numerów i proszono
@KacperSzurek:
Warto wiedzieć bo kiedyś (na ile mi się wydaje) nie było.
Jak piszesz nie zabezpiecza całkowicie bo były wykopy bądź czytałem poza serwisem że gość wtopił gdy pożyczono na niego kasę w firmach które nie widziały sensu by cokolwiek sprawdzać.
Mimo że używam niemal od zarania to wydaje mi się że na obecnym poziomie bezpieczeństwa bankowość elektroniczna wydaje się coraz bardziej emocjonującą zabawą jeśli dotyczy relatywnie sporych kwot.
Sporych czyli
Jak działa BitLocker i szyfrowanie dysków? Co to jest TPM i do czego służy? #od0dopentestera

Dlaczego warto zabezpieczyć swoje dane na laptopie?
Chociażby aby w przypadku jego kradzieży nasze zdjęcia z wakacji nie dostały się w niepowołane ręce.
Ale jak to możliwe? Przecież mój komputer jest zabezpieczony hasłem, które podaję podczas logowania do systemu operacyjnego.
Mechanizm logowania a szyfrowanie to dwie różne kwestie.

Istnieją metody na uruchomienie działającego systemu operacyjnego z poziomu
konto usunięte via Wykop Mobilny (Android)
  • 9
@linc0ln_dll: zależy z jakiego powodu chcesz szyfrować. Jak boisz się po prostu o kradzież komputera i chcesz zabezpieczyć dane to BitLocker będzie wystarczający, jak robisz coś nie do końca legalnego czy boisz się że służby mogą się zainteresować tym co masz na komputerze, to wtedy potrzebujesz coś pewniejszego. Dla 99% ludzi BitLocker, nawet jeśli ma jakieś backdoory, będzie wystarczający.
Co to jest błąd typu 0 day oraz 1 day? #od0dopentestera
Kim jest black hat oraz white hat?
Jaka jest różnica pomiędzy responsible a full disclosure.
A także na czym polega polityka 90 dni?

Nowoczesne aplikacje wykorzystują sporo kodu stworzonego przez inne osoby.
Kierujemy się tutaj zasadą: „nie wymyślaj koła na nowo”.
I tak w #javascript mamy NPM a w #python PyPI.
Z jednej strony, dzięki temu programy mogą powstawać szybciej.
Ale
Czy kliknięcie w odnośnik może być niebezpieczne? #od0dopentestera
Parę tygodniu temu opisywałem podstawy ataku XSS.
Dzisiaj nadarzyła się okazja aby opisać tą podatność w oparciu o prawdziwy błąd w oprogramowaniu QNAP NAS.
Podatny kod mieści się w jednej linijce:

location.href = decodeURIComponent(location.href.replace(/(.*?\?r=)/,''));
W teorii miał przekierowywać użytkownika pod nowy adres znajdujący się w parametrze ?r=.
Czyli wchodząc na podatną stronę skrypt.html?r=[http://google.pl](http://google.pl) zostajemy automatycznie przeniesieni do wyszukiwarki.
Jest to wiec typowy
Pobierz
źródło: comment_WPAeIqQucPcGkswZUFJk7Ghloqa69AKD.jpg
Poranek z #od0dopentestera
Wykorzystanie newslettera do przenoszenia złośliwego oprogramowania.
CSS jako metoda infiltracji tajnych danych na stronach internetowych - wyjaśnienie zasady działania Sequential Import Chaining.
Co to jest plik apple-app-site-association i jakie dane można w nim znaleźć.
Nowa sztuczka wykorzystywana przez malware Emotet.
Jak stracić milion dolarów? Historia miłosnego zauroczenia.
A także wyjaśnienie pojęcia Sextortion.

Subskrybuj kanał na YouTube
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do
Jak zmiana daty urodzenia na Twitterze, może sprawić nie lada kłopoty.
Co to jest credential stuffing i jak się przed nim obronić.
Dlaczego nie warto używać wyrażeń regularnych do sprawdzania poprawności domeny.
Shodan monitor - czyli ostatni bastion bezpieczeństwa naszych serwerów.
Dystrybucja Windowsa dla pentesterów? Parę słów na temat commando VM.
Jak testować bezpieczeństwo sklepów internetowych.

Subskrybuj kanał na YouTube
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do
@oskar_15: Rzeczywiście, musiałem pomylić pliki podczas wysyłki.
Dzięki za info.
Wprowadziłem już zmiany na Anchor.fm ale pewno chwile zajmie zanim zauważy je reszta serwisów.
@passage: W tym przykładzie nie chodzi tylko o błędne wyrażenie regularne.
Zwracam tam uwagę, że ostatnimi czasy pojawiło się sporo nowych domen, co może powodować pewne problemy.
Opisuje tam przykład:
/^[a-z]+\.security.com$/
Tutaj problemem jest brak \ przed drugą kropką.
Ale w przeszłości niewiele to dawało –