Paweł Goleń, blog

Dość typowym sposobem realizacji funkcji resetu zapomnianego hasła jest generowanie losowego tokenu, który następnie wysyłany jest na zapisany w systemie adres e-mail. Korzystając z tego tokenu, można ustawić nowe hasło. O tym, że sposób ten nie jest najlepszy można przeczytać tutaj: OWASP Forgot Password Cheat Sheet i posłuchać tu: OWASP Podcast #83. Ale ja dzisiaj o trochę czym innym.

Czytaj dalej...

Jeśli szukacie jakiegoś podcastu do posłuchania, możecie rzucić uchem na ISC Monthly Threat Update – February 2012. Może nie jest on specjalnie porywający, ale warto zwrócić uwagę na temat, który pojawia się (na krótko) mniej więcej między 7:45 i 9:50. Johannes mówi tam o asymetrii między obrońcami i atakującymi.

Jeśli atakujący ma skuteczność na poziomie 1%25 (na 100 parametrów podatnych na SQLi przegapi 99 z nich), to i tak odniesie sukces. Jeśli natomiast obrońca ma skuteczność na poziomie 99.9%25 (na 1000 parametrów podatnych na SQLi przegapi 1), to i tak ktoś może znaleźć ten jeden parametr i skutecznie wyprowadzić dane.

Między innymi na temat tej asymetrii (dysproporcji) pisałem już dawno temu: Pentester: doomed to fail?. Ciekawym pomysłem na zmniejszenie tej dysproporcji są programy typu bug bounty. Ludzie i tak szukają błędów, lepiej więc, jeśli znalezione błędy raportują bezpośrednio do dostawcy, a nie “puszczają w obieg”. Dzięki temu firma, która taki program ogłasza, zyskuje za niewielkie pieniądze rzeszę testerów, a w bonusie – pozytywny PR.

Oryginał tego wpisu dostępny jest pod adresem Asymetria

Autor: Paweł Goleń

Pora na kilka wskazówek do przykładu z bootcamp. A więc po kolei:

  • nie, nie chodzi o przeszukanie przestrzeni identyfikatorów (jest znany: 2161),
  • jak aplikacja zachowuje się przy próbach SQLi (patrz: Bootcamp #5: Jak szukać SQLi #1, Bootcamp #6: Jak szukać SQLi #2),
  • czy działają operacje arytmetyczne,
  • co jest przekazywane w parametrze p w drugim kroku (przekierowanie), czy można go zmodyfikować,

Dodatkowo:

  • znaku + nie można używać bezpośrednio w wartości parametru (jest traktowany jako spacja),
  • 1=1 nie jest jedyną możliwością (można znaleźć inne wyrażenia, które są zawsze prawdziwe),

Oryginał tego wpisu dostępny jest pod adresem Bootcamp II(c|d): hinty

Autor: Paweł Goleń

Po dłuższej przerwie kolejne przykłady:

Zadanie jest proste – odczytać wiadomość o identyfikatorze 2161. W obu przypadkach ta wiadomość jest taka sama. Same przykłady są bardzo podobne do siebie, a cel można osiągnąć na kilka sposobów.

Powodzenia!

P.S. Inspiracją tego przykładu (jego części) jest jedno zdanie wypowiadane w tym filmiku. Które?

Oryginał tego wpisu dostępny jest pod adresem Bootcamp II(c|d)

Autor: Paweł Goleń

Raz na miesiąc przychodzi taki dzień, gdy trzeba zmienić hasło do systemu. Procedura zmiany hasła jest prosta. Zagłębiam się w mroczne czeluście swojego umysłu i wybieram jakąś podstępną frazę, którą następnie przekształcam według pewnego algorytmu i na wyjściu mam nowe hasło, które towarzyszyć będzie mi przez najbliższe 30 dni. Gdyby to było tak proste...

Czytaj dalej...

Pamiętacie rozważania odnośnie tego, czy pierwsza odpowiedź jest najlepsza? Miałem wówczas poważne wątpliwości, czy twierdzenie to zostało słusznie uznane za mit. Wątpliwości te bynajmniej się nie zmniejszyły, co więcej słuchałem sobie ostatnio interesującego podcastu (wiekowego dość), w którym pada zdanie będące tytułem tego wpisu.

Podcast jest do odsłuchania tutaj: Potęga podświadomości, czyli uwierz, że wiesz. Całość dość długa, ale moim zdaniem warta posłuchania. Dodatkowo można też posłuchać tych podcastów: Intuicja w pracy i w życiu osobistym oraz Czy intuicja jest sprzeczna z racjonalnością.

I może ta pierwsza odpowiedź jest właśnie intuicyjna?

Oryginał tego wpisu dostępny jest pod adresem Myślenie przeszkadza w myśleniu

Autor: Paweł Goleń

Na ostatnim spotkaniu OWASP w Krakowie jedna z prezentacji dotyczyła zapobiegania XSS w aplikacjach tworzonych w ASP.NET. Z prezentacją można zapoznać się tutaj: Defending ASP.Net apps against XSS. Ja chciałem z kolei zwrócić uwagę na pewną niekonsekwencję w zachowaniu platformy, która może doprowadzić do niepożądanych skutków, czyli do XSS.

Czytaj dalej...

No bo jak inaczej skomentować poniższy obrazek?

Oryginał tego wpisu dostępny jest pod adresem (D)DoS jest trendy

Autor: Paweł Goleń

Przygotowałem dwa nowe videocasty na temat szukania błędów typu sql injection. Nie są one specjalnie oryginalne, dokładnie na ten temat pisałem tutaj: Jak szukać SQLi – przykład, temat poruszałem także tutaj: Lekcja 7: (blind) SQL injection.

W pierwszym wideo, Bootcamp #5: Jak szukać SQLi #1, omawiam przykładowe payloady, które pozwalają w miarę prosty sposób identyfikować “podejrzane” parametry, których zachowanie sugeruje, że może istnieć podatność. Drugi odcinek, Bootcamp #6: Jak szukać SQLi #2 , to już praktyczne wykorzystanie tych payloadów na przykładowej aplikacji. Cała playlista dostępna jest tutaj.

Oryginał tego wpisu dostępny jest pod adresem Nowe videocasty: jak szukać SQLi

Autor: Paweł Goleń

Ciąg dalszy poprzednich dwóch wpisów. Pomysł tej “zgadywanki” wpadł mi do głowy przy okazji zupełnie innego tematu. Wszystkie obliczenia robiłem dopiero po opublikowaniu przykładu i okazuje się, że zupełnie przypadkiem udało mi się znaleźć ciekawy przykład, który jeszcze na kilka sposobów wykorzystam.

Czytaj dalej...