brzozowiak.pl – boją się mnie?
Ostatnio w moim małym miasteczku (50 km od Rzeszowa – Brzozów, przypominam) rozszerzyła się reklama nowego serwisu ogłoszeniowego – brzozowiak.pl. Cóż, wydaje się fajnie. Można wrzucić ogłoszenie za darmo, poczytać inne, wszystko jest podzielone na dość intuicyjne kategorie. No i racja – wydawało się fajne.
Czemu o tym piszę? Aby autor, który być może zauważy mojego bloga, a “nie zauważył” 2 maili oraz 2 (może 3, już nie pamiętam) ogłoszeń z moim – jakże konkurencyjnym – nazwiskiem, choć trochę zainteresował się, co w jego serwisie kuleje oraz co mi się nie podoba. Poza tym będę dobry i jeżeli ja nie mogę mieć reklamy tam, to Państwo i tak mogą mieć ją u mnie. [UPDATE: kilka rzeczy poprawiono w serwisie i staje się to nieaktualne, ale autor powinien być wdzięczny za skorzystanie z mojej uprzejmości - niezniszczeniu serwisu oraz poinformowaniu o lukach]
Pierwsze błędy jakie znalazłem to możliwość podglądania niezaakceptowanych ogłoszeń. Nie ma ich na liście, ale wystarczy spreparować link podglądu ogłoszenia numerkiem swojego ogłoszenia. I co? W ten sposób można za’SPAM’ować serwer, a potem rozesłać i odpowiednimi botami nawet łatwo załadować bazę danych śmieciami :) W takim scenariuszu strona zawiera pełno śmieci, traci na atrakcyjności (mimo darmowości), bo ciężko jest przeglądać ogłoszenia i ogólnie całe przedsięwzięcie bez kontroli admina nawet w parę godzin jest w stanie się wysypać. Powodzenia potem z odfiltrowaniem SPAM-u od prawdziwych ogłoszeń :)
To jest w stanie zrobić każdy. Nie trzeba przy tym prawie żadnych umiejętności. Spróbuj już teraz: dodaj ogłoszenie, kliknij “Publikuj”, na mail powinieneś dostać jego numer. Teraz wejdź na jakiekolwiek ogłoszenie na stronie, poczytaj je sobie i zauważ jak wygląda link. Ciekawie, prawda? :) Wpisz tam swój numerek nieopublikowanego jeszcze ogłoszenia! [UPDATE: to już nie działa]
Jednak na tym etapie nie ma się czym jeszcze zachwycać. Można narobić bałaganu nieco inaczej. Ja do tego wykorzystałem błąd z kategorii XSS. Jakikolwiek skrypt JavaScript (porażka każdego webmastera), jaki byśmy chcieli wrzucić na stronę – możemy po prostu wkleić w ogłoszeniu lub innym polu :) Reszta to inwencja własna. [UPDATE: to też już o dziwo nie działa :)]
Następny, kategoryczny błąd to… niefiltrowanie zapytań SQL. W tej kwestii było tak marnie, że nawet nie spodziewałbym się takiego wyniku tego badania. W polach “Przedmiot ogłoszenia”, “Treść” i “Informacje kontaktowe” podanie znaku apostrofu (‘) nie robiło kompletnie nic. Znak wyświetlał się w tekście, być może za sprawką funkcji stripslashes bez znaku poprzedzającego ukośnika (\). Jednakże w ostatnim polu (“email”) to nie wystąpiło, tam mieliśmy \’ Do czego te insynuacje? Cóż, pada podejrzenie, że to wszystko jest zapisywane w plikach tekstowych, a nie bazie typu SQL :) [UPDATE: j.w.]
Strony wykonywane przez ImdStudio nawet nie trzymają się standardów. Zamiast DIV-ów i aktualnie stosowanego XHTML-a w kodzie widzimy niepraktyczny oraz niesemantyczny układ tabelkowy. Niektóre strony są oparte o systemy Joomla! a nawet PHP Fusion – oczywiście bez informacji o tym na dole. Podejrzewam, że owa oferta CMS-ów to tylko delikatnie przerobiona Joomla! ze szablonami :)
Co mówi na ten temat licencja GPL:
You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
Krótko mówiąc – publikowany modyfikowany program powinien mieć notę o oryginalnej wersji programu. Przeglądnąłem serwisy wykonane przez tą firmę i nie zawsze tak było, np. tu.
Inna sprawa tej firmy – może grafik się znajdzie, ale producent stron www – nie za bardzo. Recz, na którą można jeszcze lubieżnie ponarzekać, to dosyć duże elementy niezbyt dobrze supportowanego Flash-a. Menu w tej technologi to po prostu porażka. User niemający zainstalowany takiego pluginu w przeglądarce, nie jest w stanie wejść w dział “Kontakt” na witrynie wizytówkowej. A na Linuxie naprawdę są z tym problemy. Z resztą nie tylko tu, przykład – urządzenia mobilne typu PDA czy zwykłe telefony komórkowe, obsługujące Opera Mini w Javie (czyli prawie wszystko z kolorowym wyświetlaczem).
Ostatnia mała luka, tym razem użytkowa, to niepoinformowanie użytkownika o przekroczeniu maksymalnej ilości znaków. Niektóre wpisy są po prostu ucięte. No ale na szczęście jest “Podgląd ogłoszenia”.
Czemu jestem taki zadziorny? Bo chcę pokazać, że nie dam się nie liczyć. Co tu dużo mówić – ja, człowiek uczący się, mający na koncie świeży dowód osobisty, niemający żadnej firmy w posiadaniu oraz przy tym możliwości wystawienia faktury VAT, chcący dorobić małymi zleceniami programistycznymi dzięki swoim zdobytym umiejętności, tak, właśnie ja okazałem się dla ImdStudio zbyt niebezpieczny :-) Dlatego nie należało dodawać mojego ogłoszenia, w którym napisałem “C/C++, Java, XHTML/CSS, PHP, Ruby on Rails”. Cóż, jestem konkurencyjny, więc boją się mnie.
Wrzesień 28th, 2008 at 14:37
Niestety tak jest, wiele małych firm i osób nie może sie wybić przez takie pseudo-giganty, które działają tylko dzięki temu, że złapały kiedyś kilku dobrych klientów i teraz mają referencje. Nie potrafią nic ale zaśmiecają internet swoimi produktami.
Zabezpieczenie strony przed takimi atakami to przecież kwestia dnia, może nawet nie, pozatym ataki te wynikają tylko i wyłącznie z głupoty programistów.
Wrzesień 30th, 2008 at 22:45
bo ja wiem… no nie wiem :E