Momencik, trwa przetwarzanie danych   loading-animation

#86297

przez (PW) ·
| Do ulubionych
Jestem programistą i ostatnio wzięło mnie na wspominki, więc postanowiłem przejrzeć skrypty skrzętnie magazynowane od samego początku mojej nauki programowania. Po kilkudziesięciu minutach przeglądania i setkach "Łoo urwa jak ja mogłem to tak spierdo...ć!", dotarłem do mojej pierwszej dużej aplikacji, która jest zapalnikiem dla tej historii. Ale od początku.

Aplikację, o której wspomniałem pisałem dawno temu na dodatkowych zajęciach programowania w technikum. Ogólnie to były czasy kiedy Librusy i inne tego typu bajery dopiero raczkowały w Polsce i na dodatek były strasznie drogie. Ale od czego mamy naszych zdolnych uczniów, pomyślała dyrekcja mojej szkoły. I tak ja wraz z piątką moich znajomych zostaliśmy oddelegowani do pracy nad tym ważnym projektem. Co z tego, że pisany przez nas kod nadawał się jedynie do wywalenia na śmieci, co z tego, że nie mieliśmy pojęcia o bezpieczeństwie... Kodujcie!

Jeśli chodzi o założenia. Główna strona z newsami, jakaś galeria, zakładki z artykułami i możliwość zarządzania tym z poziomu panelu administratora. Dalej system autoryzacji. Cztery typy kont, administrator, nauczyciel, rodzic i uczeń. Każdy miał mieć inne uprawnienia. Dalej zarządzanie ocenami, średnie ważone, zachowanie, uwagi, komunikacja rodzic-nauczyciel, przypomnienia o zadaniach domowych i sprawdzianach, plany lekcji, bazy wiedzy. No i udogodnienia dla samych nauczycieli czyli w/w wyliczanie średnich ważonych, generator planu lekcji (z tego co pamiętam to było strasznie trudne do zaimplementowania, aż teraz bym coś takiego zakodował) i danych do świadectwa. Ogólnie projekt duży, jego tworzenie trwało jakieś dwa lata i poprawki kolejne pól roku, ale w końcu w połowie 4 klasy system ruszył pełną gębą. No ale co z tego, jeśli stworzyły go dzieciaki. Ten system może i działa, ale napisany jest okropnie (aż się dziwię, że wtedy łapaliśmy się o co chodzi w tym kodzie) a poza tym jest całkowicie niezabezpieczony... No i działa do dziś.

Tak! Z ciekawości wszedłem na stronę mojego technikum i okazało się, że ta nadal stoi w niezmienionej formie i jest aktualizowana. No to zacząłem zabawę :) (w dalszej części historii będę używał zwrotów związanych z programowaniem, itp., ale postaram się wszystko tłumaczyć).

Na pierwszy ogień poszło SQL Injection. Najprościej mówiąc jest to sposób na włamanie się na stronę internetową poprzez wpisywanie w formularze na stronach internetowych (np. pola login i hasło), specjalnie spreparowanego kodu, który dobrze użyty nie dość, że może ujawnić całą zawartość danych przechowywanych na stronie (w bazie danych) to również może te dane usunąć. Mając dostęp do kodu źródłowego udało mi się to bez problemu, ale myślę, że zdolniejszy uczeń technikum i bez tego dałby radę to zrobić.

Jako, że miałem zapisane dane do logowania na serwer, na którym przechowywany był kod strony postanowiłem spróbować. I o dziwo dostałem się bez problemu (do technikum uczęszczałem około 10 lat temu...). Sprawdziłem sobie daty edycji plików i jakieś małe zmiany były. Jednak 90-95% kodu nie było ruszane od naszych ostatnich poprawek. Po bazie jednak widziałem, że system jest eksploatowany na bieżąco.

Postanowiłem poinformować dyrektorkę szkoły, że ich system jest do dupy (Niestety Bonzo poszedł na zasłużoną emeryturkę, a szkoda. Może ktoś skojarzy... Jak to się mówiło? Pozdro dla kumatych :D). No i tutaj nadziałem się na biurokrację. Zostałem umówiony na rozmowę telefoniczną za dwa tygodnie. Spoko. Jeśli Pan się spóźni z telefonem o maksymalnie pięć minut rozmowa zostanie odwołana. No ok?

No to dwa tygodnie później godzina 14:45 dzwonię... Zajęte. 15:00 zajęte... 15:20... Czemu Pan nie dzwonił! Proszę teraz dzwonić za dwa tyg... O nie, dawaj mi tu dyrektorkę!

Skrócona rozmowa z dyrektorką:
[Ja]: Witam dzwonię w sprawie Państwa strony internetowej.
[Dyrektorka]: Czy jest z nią jakiś problem?
[J]: Tak, strona była...
[D]: Jeśli zaistniał jakiś problem z naszą stroną internetową odsyłam na naszą skrzynkę mailową...
[J]: Nie zrozumiała mnie Pani. Ja jestem twórcą Państwa strony internetowej i...
[D]: Niech mnie Pan nie rozśmiesza, nasza strona została stworzona przez naszych uzdolnionych informatyków.
[J]: No i własnie jestem jedn...
[Telefon]: Ti Ti Ti...

No jak tak nie chciała słuchać to uderzyłem inaczej. Edytowałem kod strony tak aby przy każdym logowaniu konta nauczyciela wyświetlało komunikat "UWAGA! WASZA STRONA JEST NIEZABEZPIECZONA PROSZĘ O KONTAKT {email}.". Tego samego dnia sama dyrektorka do mnie zadzwoniła, chyba się domyśliła, kto jest sprawcą.

I co się okazało. Nauczyciele informatyki pracujący w szkole przypisali sobie zasługi stworzenia tej aplikacji. Były w niej łatane tylko wyłapane błędy działania, nigdy nie zajęto się bezpieczeństwem. Dyrektorka ich chyba zabije.

YUHU

Skomentuj (25) Pobierz ten tekst w formie obrazka
Ocena: 239 (247)

Komentarze

Momencik, trwa ładowanie komentarzy   ładowanie…