Lekcja 18: Więcej niż jedna ścieżka wykonania
Wprowadzenie
Pod adresem http://bootcamp.threats.pl/lesson18/ znajduje się przykład prostej formatki wyszukiwania. Użytkownik ma możliwość określenia maksymalnie trzech parametrów, które będą uwzględnione w trakcie wyszukiwania. Przykład ten należy również potraktować jako wyzwanie.
Przedmiotem wyzwania jest:
- znalezienie podatności typu sql injection,
- określenie w jakich warunkach podatność ta występuje,
Głównym celem tego przykładu jest pokazanie, że ścieżka wykonania kodu może się różnić w zależności od wybranych parametrów. Dodatkowe wskazówki można znaleźć we wpisach na blogu:
- Bootcamp XVIII: Jak to może być zrobione?,
- Bootcamp XVIII: wskazówek część dalsza,
- Jak szukać SQLi - przykład,
Na tego typu przypadki, w których podatność występuje jedynie w jednej ścieżce wykonania kodu można natknąć się podczas testowania bezpieczeństwa aplikacji, nie jest to więc przykład, który nie ma związku ze stanem faktycznym. Szczególnie ciężkie do wykrycia są przypadki, gdy podatności występują w starym/nieużywanym kodzie. Dostęp do tego typu ścieżek wykonania jest jednak czasem możliwy poprzez określenie właściwej kombinacji parametrów. Właściwa kombinacja parametrów może być znaleziona na przykład poprzez użycie fuzzingu. W tym przykładzie podatność występuje tylko w jednej ścieżce wykonania, ale ścieżka ta jest osiągalna normalnie, nie znajduje się w legacy code.
Dostępna jest również druga wersja tego przykładu, która podatność zawiera w nieco innej ścieżce wykonania. Jest ona dostępna pod adresem: http://bootcamp.threats.pl/lesson18a/.
Powodzenia!