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?
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...
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.
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.
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.
Ciąg dalszy poprzednichdwó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.
Nie spodziewałem się, że mój poprzedni wpis zaowocuje tak dużą ilością komentarzy. Tak, pytanie o to, czy gra ma sens, jest nieco przewrotne. Odpowiedź na to pytanie zależy od tego, co uznamy za sensowność. Z grubsza (na dłuższą metę) mogą zajść trzy sytuacje:
gracze i organizator gry wychodzą na zero,
gracze są stratni,
organizator gry jest stratny,
W komentarzach utworzyły się dwie partie. Według części komentujących w grze wychodzi się “na zero”, według innych – organizator gry musi dopłacać do interesu (pojawia się też trzecia partia obstająca za trzecią możliwością – zarobkiem dla kasyna). I tutaj jest kolejna przewrotność: zgadywanka. Tu nie chodzi o zgadywanie, tylko o fakty.
Wyobraźmy sobie następującą grę. W skrzyni znajduje się 10 kul, z czego 1 może być czarna. Prawdopodobieństwo, że czarna kula znajduje się w skrzyni wynosi ½. Zadaniem gracza jest właściwe odgadnięcie, czy w skrzyni znajduje się czarna kula. Gracz może:
udzielić odpowiedzi natychmiast,
raz wylosować dowolną, z góry zadeklarowaną, liczbę kul,
Przystąpienie do gry kosztuje 50 PLN. Za prawidłową odpowiedź gracz otrzymuje 100 PLN, przy czym kwota jest pomniejszana o 5 PLN za każdą wylosowaną kulę.
Przykładowo: gracz przystępuje do gry, deklaruje wylosowanie 3 kul. Jedna z kul jest czarna, więc oczywiście odpowiada (prawidłowo), że w skrzyni znajduje się czarna kula. Otrzymuje 85 PLN (100 – 3 * 5 = 100 – 15 = 85 PLN).