Aplikacje internetowe

Bełdziowe spojrzenie na aplikacje internetowe

Plamka na białym ekranie

O Centrum Filmowym Helios

Centrum Filmowe Helios – sieć kin powstała w 1993 roku na bazie dwóch największych w owym czasie kin w Łodzi, „Capitolu” i „Bałtyku”. Obecnie sieć składa się z 14 kin różnej wielkości – od jednosalowych po 9. salowe.

Błędy

Na stronie CF Helios mamy możliwość zapoznania się ze wszystkimi filmami, które były grane w tej sieci kin.

Podczas normalnego działania na stronie przedstawione są nam dane o filmie takie jak opis filmu czy obsada. Po wybraniu filmu wraz z adresem strony przekazywany jest numer identyfikacyjny wybranego filmu.

Brak jego filtracji umożliwia nam wprowadzenia do aplikacji danych, które doprowadzą do nadużycia.

Wykorzystanie

Standardowy adres wyświetlający dane filmu „Piła 3” wygląda następująco:

http://heliosnet.pl/film-frame.php?id=824&co=opis  

Zadaniem jego jest pobranie z bazy danych informacji o elemencie, którego ID jest równe 824. Wykorzystując brak filtracji zmiennej możemy tak ją przerobić, aby zamiast informacji o filmie „Piła 3” zostały nam pokazane dane wszystkich filmów zawartych w bazie danych. Dokonać tego możemy poprzez modyfikacje zmiennej „id” tak by miała ona postać:

id=824 OR 1=1;  

Celem dodanego kodu jest zmiana zapytania tak, by nie pobierało ono danych konkretnego filmu, ale wszystkich zawartych w bazie. Mamy tu do czynienia z SQL Injection, czyli modyfikacją oryginalnego zapytania SQL poprzez brak filtracji użytych w nim danych.

Efektem działania powyższej modyfikacji jest:

Poprawki

Po 4 miesiącach udało się poprawić skrypt.


Tagi: , ,
Kategoria: Bezpieczeństwo, BugTraq


9 komentarzy

  1. Pawkow napisał(a):

    No i .. ? Co ci to daje ? Masz listę wszystkich filmów. To samo możesz mieć dzwoniąc do kina o ile się nie mylę.

  2. Bełdzio napisał(a):

    Przedstawiony błąd nie jest groźny pokazuje jedynie podatność. Jeśli ilość filmów była by większa można by pokusić się o DDoS. Miałem stronę, która po wysłaniu zmodyfikowanego zapytania SQL tak obiążała serwer, że stawała się niedostępna na ~1h (wystarczyło jedno zapytanie)

  3. Pawkow napisał(a):

    Hmmm, faktycznie, nie pomyślałem o tym w ten sposób…

  4. milordi napisał(a):

    Minął ponad miesiąc, a oni nadal tego nie poprawili (sprawdzałem). Wstyd…

  5. Bełdzio napisał(a):

    spoko ;-) jakieś pół roku znalazłem w jednym z większych sklepów błąd, który umożliwia wyciągnięcie bazy danych klientów i nadal jest niezałatany

  6. empathon napisał(a):

    Aż woła o pomste do Boga jak się widzi jak są robione strony, co by nie mówić dla dużego zleceniodawcy…

  7. Bełdzio napisał(a):

    To teraz tylko zostaje wyciągnąć info kto to zrobił :>

  8. pedros napisał(a):

    Co wiecej mozna bylo poznawac nawet hasla do baz danych obslugiwanych przez serwer ;) Blad jednak zostal juz poprawiony i sie nie da w ten sposob :>

  9. Michał `Bełdzio` Ławicki napisał(a):

    Można było, można :)) ale tylko te do 8 znaków ;-)

Dodaj komentarz