Paweł Goleń, blog

Opublikowane zostało rozwiązanie wyzwania Forensic Challenge 2010 – Banking Troubles. Choć nie uczestniczę w tego typu wyzwaniach (nie wysyłam odpowiedzi), to zadaniom się przyglądam i część z nich, te ciekawsze, rozwiązuję. Czytam również zgłaszane odpowiedzi, po to by popatrzeć, jak z problemem poradzili sobie inni. W tym przypadku dla mnie najbardziej ciekawe były odpowiedzi udzielone na poniższe pytanie:

5. Were there any files that were able to be extracted from the initial process? How were these files extracted? (6pts)

Rozwiązania opierały się tutaj zwykle na zrzucie pamięci wirtualnej wybranych procesów i odzyskanie z nich plików PDF, na przykład przy użyciu narzędzia Foremost lub Scalpel. Ja do tego zadania podszedłem w nieco inny sposób, wspominałem o tym we wpisie Odczytywanie plików z filecache.

Fakt, wybrana przeze mnie metoda nie do końca może jest zgodna z pytaniem, szczególnie następującym jego fragmentem: from the initial process , ale jest ciekawsza :) Przy okazji można było nauczyć się czegoś o działaniu systemu od środka.

Czytaj dalej...

Czasami przychodzi taki czas, że trzeba przyglądnąć się wykorzystywanym narzędziom, zapoznać się z nowościami, być może coś usprawnić, zmienić. Dzisiaj usiłowałem dokładniej przyjrzeć się JBroFuzz 2.1. Zamiast możliwości zobaczyłem głównie problemy i “ciekawostki”... Muszę sprawdzić jeszcze dokładnie kiedy problemy występują. Ja spotkałem się z nimi pod Windows Vista, ale na drugim komputerze z Windows XP części z nich nie udało mi się odtworzyć.

Czytaj dalej...

Małe uzupełnienie do I co z tego, że jest SQLi w Płatniku? Napisałem, że błędy są już w architekturze programu, więc błędy w implementacji nie robią już tak dużego wrażenia. Warto przyjrzeć się temu tematowi, bo sposób działania programu Płatnik jest bardzo typowy, a co za tym idzie problemy z niego wynikające są bardzo powszechne. Należy pamiętać, że poruszane tu problemy są charakterystyczne dla całej klasy aplikacji.

Czytaj dalej...

Problem z SQL Injection nie ogranicza się tylko do webaplikacji. Również “grube” aplikacje mogą mieć ten sam problem, czego przykładem może być ta informacja: SQL injection w Płatniku. Tylko co z tego? Dla mnie wygodniejszym rozwiązaniem jest odzyskanie hasła do bazy danych i podłączenie się bezpośrednio do niej. Jeśli coś ma schrzanioną u podstaw architekturę, to błędy typu SQLi nie robią na mnie wielkiego wrażenia... Choć ciekawostka to oczywiście jest :)

Oryginał tego wpisu dostępny jest pod adresem I co z tego, że jest SQLi w Płatniku?

Autor: Paweł Goleń

Warto zapoznać się z artykułem KHOBE – 8.0 earthquake for Windows desktop security software opisującym ciekawy przykład ataku, który pozwala na obejście zabezpieczeń opartych o SSDT hooking. Jest to specyficzny przypadek race condition (TOCTOU). W pewnym uproszczeniu problem polega na tym, że kod “systemu zabezpieczającego” widzi inne parametry niż te, które są ostatecznie obsługiwane przez wywołanie systemowe. Dlaczego?

Czytaj dalej...

Na początek kilka tekstów do przeczytania w ramach wprowadzenia:

Ja nie do końca zgadzam się z twierdzeniem, że wybór języka programowania, a właściwie szerzej – całego środowiska, w którym powstaje aplikacja, nie ma wpływu na bezpieczeństwo produktu wyjściowego.

Czytaj dalej...

Jeśli ktoś jest zainteresowany tematem bezpieczeństwa aplikacji internetowych, to powinien zainteresować się udostępnionym przez Google kursem Web Application Exploits and Defenses. Główne tematy poruszane w tym kursie to:

  • Cross-Site Scripting (XSS)
  • Client-State Manipulation
  • Cross-Site Request Forgery (XSRF)
  • Cross Site Script Inclusion (XSSI)
  • Path Traversal
  • Denial of Service
  • Code Execution
  • Configuration Vulnerabilities
  • AJAX vulnerabilities

Część z tych zagadnień poruszałem w moim krótkim przewodniku po bezpieczeństwie aplikacji internetowych, części nie poruszałem (np. ciężko mi było napisać bezpieczny dla mnie przykład do danego zagadnienia). Kilka zagadnień (np. SQLi) poruszanych jest z przykładami (na razie?) tylko u mnie.

Dla osób, które nigdy nie testowały aplikacji webowych pomocne może być moje krótkie wprowadzenie do tematu: Lekcja 1: absolutne podstawy, gdzie pokazuję jak korzystać z narzędzi typu local proxy.

Oryginał tego wpisu dostępny jest pod adresem Codelab: Web Application Exploits and Defenses

Autor: Paweł Goleń

Przyznam się do czegoś strasznego – nie jestem fanem Tolkiena. Próbowałem kilka razy zmusić się do przeczytania różnych jego książek i... nic. Nie udało mi się dobrnąć do końca. Ale ten cytat (z filmu, więc nie wiem jak wierny) dobrze pasuje mi do tego, o czym chcę napisać: (...) some things that should not have been forgotten were lost. History became legend. Legend became myth (...). Albo nieco inaczej – jak wiele czynności wykonywanych jest, bo tak się kiedyś robiło? Ile w tym przyzwyczajenia i tradycji, a ile sensu?

Czytaj dalej...

Ostatnio mój GPS doprowadził mnie kilka razy do lekkiej irytacji (czytaj – napadów furii). Głównym powodem było przeraźliwie wolne działanie AutoMapy, jej notoryczne zamieranie (zawieszanie się na kilka sekund), absolutnie nieakceptowalny czas wyznaczania i korygowania trasy oraz opracowywania wskazówek nawigacji. Objawy pojawiły się z chwilą aktualizacji oprogramowania do najnowszej wersji (lubię mieć aktualne mapy) i w pierwszej chwili wiązałem je z wprowadzeniem jakiejś nowej funkcji lub nowych, lepszych błędów. Po pewnym czasie wpadłem na jeszcze jeden pomysł – wolna praca karty SD. Dziś miałem okazję zweryfikować ten trop, wyglądało to mniej więcej tak:

  • włóż kartę SD do laptopa,
  • skopiuj zawartość na dysk,
  • usuń zawartość karty,
  • sformatuj kartę,
  • skopiuj dane na kartę,

Efekt – piorunujący. Irytujące objawy zniknęły bez śladu.

Oryginał tego wpisu dostępny jest pod adresem Ciekawostka: wolno działająca AutoMapa

Autor: Paweł Goleń

Zadania związane z obfuskowanym kodem JavaScript zostały rozwiązane, głównie przez Krzysztofa Kotowicza. Planowałem przygotować jeszcze jedną mutację tego zadania, ale ostatecznie chyba ją sobie odpuszczę, przynajmniej na razie. Do rozwiązania pozostają jeszcze inne zadania, związane z phishingiem na formatce logowania, oraz kontrolą dostępu do funkcji. Pora na wyjaśnienie zadania dotyczącego kontroli dostępu do funkcji.

Czytaj dalej...