Momencik, trwa przetwarzanie danych   loading-animation

piekielni.pl

Pokaż menu
Szukaj

Jestem programistą i ostatnio wzięło mnie na wspominki, więc postanowiłem przejrzeć skrypty…

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

by Satsu
Dodaj nowy komentarz
avatar AnitaBlake
10 10

Dobrze ze sa jeszcze takie osoby, ktore pomoga, a nie zniszcza. Przyznam ze spodziewalam sie iz stadardowo, wlamales sie i usunales, zmieniles itd. Mile zaskoczenie :)

Odpowiedz
avatar kierofca
9 9

Czy aby podpisanie się pod cudzą pracą nie jest karalne?

Odpowiedz
avatar j3sion
3 5

@kierofca tak jeżeli autor chce dochodzić swoich praw, a że jest ich 5 to praktycznie niewykonalne. Podobna historia była z bestplayerem. Lepiej, jesli strona jest własnością szkoły to ingerencja autora który nie jest jej administratorem może skończyć się zarzutami. Fakt że strona jest nie zabezpieczona nie ma znaczenia dla polskich sądów. Autor uzyskał nieautoryzowany dostęp do cudzego systemu informatycznego.

Odpowiedz
avatar PooH77
2 4

@kierofca: Do tego, zapewne, jeszcze hajs za to wzięli...

Odpowiedz
avatar berlin
0 0

@j3sion: obstawiam art 267 i dalsze Kodeksu Karnego.

Odpowiedz
avatar Doombringerpl
3 5

@berlin: Po pierwsze: par. 5 rzeczonego artykułu i dalszych. Po drugie. Sam, jako pracę dyplomową miałem do zrobienia stronę dla nauczycieli. Robiłem ją wspólnie z kolegą, ale jego zadanie polegało na laniu wody, czego ja nie potrafię. Cały kod stworzyłem ja. A w dokumentacji, którą złożyłem, została zawarta klauzula autorstwa i zasad publikacji. Nikt się nie przyczepił do tego, ale kod na oficjalnej stronie nigdy się nie pojawił, właśnie z powodu tego, że nie promotor, a uczeń był autorem i nie zezwalał na wykorzystanie bez swojej wiedzy. Strona do tej pory jest tylko wizytówką, zamiast platformą, jaką miała być. Trzecia sprawa. Nawet gdyby dyrektorka postanowiła to zgłosić, w sądzie wygrana jest pewna, a sama naraża się na aferą na pół Polski. łatwo udowodnić, że próbowało się poinformować o problemie i wobec braku zainteresowania, podjęło się najbardziej łagodne środki uświadomienia problemu. A przy okazji wyjdzie, skąd dana osoba miała tą wiedzę i wyjdzie, ze zostały naruszone prawa autorskie. A potem wystarczy nagłośnić to w TV. Nie dość, plagiat plus szykany wobec autora. Temat pójdzie jak świeże bułeczki i odbije się szerokim echem.

Odpowiedz
avatar berlin
2 4

@Doombringerpl: naprawde nie rozumiesz, ze: - sprawa wlamania do systemu, jego modyfikacji i zapoznanie sie z danymi, do ktorych nie ma sie prawa oraz: - kwestia praw autorskich do kodu tego systemu to dwie zupelnie odrebne sprawy?

Odpowiedz
avatar Lapis
5 5

@j3sion: żeby strona była własnością szkoły to chyba powinni mieć na to umowę o odstąpienie praw autorskich?

Odpowiedz
avatar kitusiek
5 5

Bezpieczeństwo to w ogóle ciekawa sprawa. U mnie w korpo jest jakaś webowa apka mniej więcej w moim wieku (druga połowa lat 90.), która jest całkowitym zaprzeczeniem bezpieczeństwa - niezaszyfrowane hasła w bazie, które i tak nie są potrzebne, bo login i hasło to to samo, czyli dostępny dla wszystkich pracowników numer pracownika. Parametry zapytań (w tym login i hasło) są przesyłane w adresie, z którego pobierane są dane wstawiane dalej w zapytanie do bazy. A że apka od początku stała na jakichś Windowsowych serwerach, dodali sobie do bazy klasę Javy, która wywoływała w konsoli dowolne polecenie z najwyższymi uprawnieniami. Łącząc wszystko w całość - przez odpowiedniego URL można zrobić SQL Injection skutkujące m.in. utworzeniem dowolnego pliku na pulpicie użytkownika, w tym wypadku admina serwera :) Oczywiście dla firmy najważniejsze są tabelki, czyli migracja całości z Windows Server 2008 na 2016. Nikt się nie przejmuje - jak działa, to po co ruszać. Przestanie działać, to zaczną się martwić.

Odpowiedz

Zmodyfikowano 1 raz. Ostatnia modyfikacja: 19 marca 2020 o 0:07

avatar niepodam
-1 9

Satsu, dobrze ci radzę, ty się przestań chwalić, że wynosisz z pracy kod napisany dla klienta. I przestań to robić, bo się kiedyś możesz mocno sparzyć.

Odpowiedz
avatar Satsu
9 9

@niepodam: A wskaż mi proszę, w którym miejscu napisałem cokolwiek o kodzie pisanym dla klienta?

Odpowiedz
avatar niepodam
-1 5

@Satsu: w którejś wcześniejszej historii żaliłeś się, że ktoś ci ukradł cudny skrypt wysyłający logi na maila, który dodałeś do X produktów. Łącząc to z "skrypty skrzętnie magazynowane od samego początku mojej nauki programowania" na miejscu twoich klientów zacząłbym mieć wątpliwości.

Odpowiedz
avatar Satsu
6 6

@niepodam: Słowo klucz: NAUKI.

Odpowiedz
avatar Koralik
0 4

@Satsu: Słowa klucze "magazynowane od samego początku mojej nauki" - to sugeruje, że magazynujesz wszystko, co utworzyłeś od samego początku. Nie dodałeś nigdzie warunku zakończenia :)

Odpowiedz
avatar Ginsei
-1 1

@Koralik: Nie no - jest. Skończył naukę, skończył magazynowanie ;) Jak pisze dla klientów, to już się niczego nowego nie uczy ;)

Odpowiedz
avatar Koralik
0 0

@Ginsei: Słaby to programista, co się niczego nowego nie uczy :P

Odpowiedz
avatar konto usunięte
-1 1

Zastanawia mnie jedno: skoro apke pisaliście na zajęciach z programowania to czy sami nauczyliście się programować czy uczył Was nauczyciel? I czy w takim razie nie stworzył on również części apki? Fakt faktem, że nawet w takim przypadku powinno się wymieniać wszystkich autorów, a szkoła powinna być dumna z osiągnięć uczniów :p Powinna.

Odpowiedz
avatar Satsu
1 1

@malami2112: Nad aplikacją pracowaliśmy sami. Nauczyciel dostarczał nam tylko wymagania i pomagał trochę jeśli trafiliśmy na jakiś duży problem, z którym nie mogliśmy sobie poradzić szybciej niż w godzinę. Ewentualnie czasami pytaliśmy go czy istnieje jakąś gotowa funkcja albo biblioteka, która zrobi to, to i tamto.

Odpowiedz
avatar kojot_pedziwiatr
-3 3

Włamywanie się na strony internetowe, nawet w dobrej wierze, to nadal włamywanie się. To że masz historyczne dane dostępowe w żaden sposób Cię nie usprawiedliwiają. Łamiesz prawo. Kiedyś dokonałem włamu i odwetu na spamerze, z czego jestem i nie jestem dumny. Jestem, bo "kara" poszła mu mocno w pięty, i nie jestem bo to jednak włam był. Włam, mocne słowo jak na zalogowanie hasłem demonstracyjnym, ale jednakże jest to nieautoryzowany dostęp. Uważaj na siebie.

Odpowiedz
avatar gmiacik
0 0

@kojot_pedziwiatr cóż, jeżeli jest autorem to chyba tak nie do końca. Tak jakbyś powiedział, że ktoś włamuje się do własnego domu

Odpowiedz
avatar kojot_pedziwiatr
0 0

@gmiacik: bycie autorem oprogramowania nie daje dożywotniego prawa korzystania z tego programu. To tak jakbyś powiedział że będąc budowlańcem masz prawo wchodzić do każdego wybudowanego przez siebie domu.

Odpowiedz
avatar gmiacik
0 0

@kojot_pedziwiatr sorry memory, na to masz umowę, akty własności itd. Tutaj nie było czegoś takiego (chyba)

Odpowiedz
avatar Trepan
0 0

Cóż, oby ich utłukła :)

Odpowiedz
avatar gmiacik
-1 1

Ja na twoim miejscu (poza zrobieniem gnoju, że sobie przypisali to) wyszedłbym z propozycją zabezpieczenia i administrowania tej strony. Oczywiście na umowie za odpowiednią opłatą. Wiadomo, że na dzień dobry masz trochę roboty, ale potem tylko tego doglądasz zdalnie (jeśli nic się nie dzieje) a kasa leci co miesiąc. sam też chcę wejść w coś podobnego z jakimiś małymi firmami czy stowarzyszeniami poza pracą na etacie

Odpowiedz
Udostępnij