Aby poznać fragmenty kodu źródłowego i hasło do bazy danych jednego z największych serwisów świata wcale nie trzeba niezwykłych umiejętności. Wystarczy skorzystać z Google i pracowników, którzy wklejają kod na Pastebinie.
Co robi programista lub administrator, gdy chce przekazać koledze fragment kodu? Wysyła emailem, przekazuje link do repozytorium, korzysta z wewnętrznych narzędzi lub po prostu publikuje kod na Pastebinie. Co prawda ta ostatnia opcja zapewne stoi w sprzeczności z procedurami, ale nie oznacza to, że nigdy nie ma miejsca.
Ciekawostki z internetu i hasło pewnego Marka
Nathan Malcolm, autor bloga Sinthetic Labs, pracował nad narzędziem Phabricator, stworzonym przez Facebooka i udostępnionym całej społeczności. Gdy Nathan napotkał pewien błąd, sprawdził go oczywiście w Google. W ten sposób natrafił na ciekawy wpis na Pastebinie, który wyglądał zupełnie jak log z konsoli serwera deweloperskiego.
W oparciu o słowa kluczowe tego fragmentu Nathan zaczął lokalizować kolejne pliki, kawałki logów, wewnętrznych komunikatów o błędach… Wkrótce dysponował już całkiem sporym zbiorem informacji wyglądających zupełnie jak elementy kodu źródłowego Facebooka, a do tego znalazł nazwy użytkowników i maszyn w sieci wewnętrznej, ścieżki do narzędzi, nazwy skryptów i folderów i inne drobiazgi. Najciekawszy jest jednak fragment pokazujący dane dostępowe do jednej z baz MySQL.
array ( 'ip' => '10.21.209.85', 'db_name' => 'insights', 'user' => 'mark', 'pass' => 'e5p0nd4', 'mode' => 'r', 'port' => 3306,
Jeśli zatem wierzyć internetowi (a wspomniany fragment pojawia się w nim co najmniej kilka razy już od roku 2010), to przynajmniej przez pewien czas jedna z wewnętrznych baz Facebooka miała użytkownika „mark” oraz hasło „e5p0nd4”. I ciekawym zbiegiem okoliczności założyciel firmy, Mark Zuckerberg, był w trakcie studiów członkiem elitarnego bractwa Alpha Epsilon Pi, którego godło zawiera właśnie słowo ESPONDA.
Jeśli chcecie własnoręcznie poszukać innych ciekawych fragmentów kodu Facebooka, to Nathan opublikował paczkę tego, co udało mu się zlokalizować i co może stanowić dobry punkt wyjściowy do dalszych poszukiwań.
Aktualizacja: Autor artykułu opublikował również jego drugą część.
Komentarze
hahahahaha
To teraz robimy klon FB :P
Przecież to są jakieś strzępki kodu, w większości nie robiące nic ciekawego. Hasło do bazy pewnie z jakieś wersji developerskiej (kto ustawia taki login i hasło dla bazy produkcyjnej?). Wiele krzyku o nic ;]
to tak jak by każdy wiedział, że Ty to Ty i w 0.0.0.0 wszyscy widzieli strzępki Twoich zdjęć jak jesz fekalia za przegrany zakład – „Wiele krzyku o nic :]”
Gratuluję wybitnie bezsensownego porównania. Bujną wyobraźnię proponuję jednak rozwijać w innym kierunku, niż dziwne teksty o fekaliach… ;)
dobzie tato :)
;) próba poszukania po tym dość oryginalnym haśle sugeruje, że nie był pierwszym, który na takie znalezisko trafił (albo inaczej – że było ono już dostępne od 2010/2011 roku):
http://pastebin.com/ZBJtjwgD – 2010 rok
http://pastebin.com/fKHpT4G8 – 2011 rok
Ogólnie wiele krzyku o nic ;) Na pastebinie można znaleźć wiele więcej innych „ciekawych” serwisów. W 99% są to najczęściej strzępki kodu wersji developerskich i w produkcyjnych wersjach co innego jest. Czasem moduły z dev w ogóle nie trafiają do wersji produkcyjnej i odwrotnie. Sam nie raz wrzucam kod na pastebin. Ze strzępka modułu bądź jednej klasy mało można wyciągnąć. Jedyne co nam grozi to obnażenie infrastruktury plików w aplikacji w użytych path’ach i wypływ haseł developerskich. Sam mam nawyk stawiania developerek na vhoscie z ograniczeniem dostępu przez htpasswd. Jest to w 90% przypadków rozwiązanie wystarczające. Przy projektach bardziej Top Secret VPN i strona dostępna tylko w VPNie.
>> Sam nie raz wrzucam kod na pastebin.
Naprawde jest sie czym chwalić. O crawlerach Ty słyszałeś ?
Nie tyle co chwalić, co stwierdzam fakt. Na pastebin nie wrzuca się całego kodu tylko często jedną klasę bo nie widzę błędu a znajomy mnie uświadomi co zrobiłem źle. Co Ci da kod jednego modułu z serwisu odpowiedzialnego np. za przetworzenie jakiegoś arraya? Co innego jak ktoś z pastebina robi sobie prawie że repozytorium…
To,że jeśli ten moduł jest źle napisany i są jakieś bugi może możliwe byłoby na przykład wstrzyknięcie czegoś ? Niektórzy programiści jednak nie wiedzą wszystkiego o możliwych bugach…
Ja tam na PHPie się dobrze nie znam,i aż tak nie eksperymentuję – ale:
http://php.net/manual/en/mongo.security.php – 3 lata temu,ale zawsze.
Publikacja też jest na temat programiku testującego: http://php-security.org/downloads/rips.pdf Sam programik do testowania był z 2010 i jakoś na tamtej stronie newsów nie znalazłem,więc bug stary.
Co prawda na Stack Overflow była kłótnia i niektórzy twierdzili,że problemu aż takiego nie ma…
http://stackoverflow.com/questions/1885979/php-get-variable-array-injection , no ale jednak – wygląda na to,że przynajmniej był z tymi problem.Doświadczenie uczy,że całkiem sporo ludzi popełnia stare i dawno rozwiązane problemy na nowo.
Ponadto, wcale nie twierdzę,że popełniasz np. takie stare błędy w kodzie.Powiedzmy,że np. popełnisz błędy związane z jakąś nową podatnością.I ?
Pewnie nie trafi,ale załóżmy że jednak…
Zresztą – bynajmniej nie idzie tu np. o ciebie – ostatecznie czytającego cokolwiek o bezpieczeństwie informatycznym,ale o gości,którzy tego czasem NIE ROBIĄ…
Bugi są ZAWSZE. A zresztą nawet ten 1% użyteczny na pastebinie starczy w zupełności hackerom,nawet gdy tylko 1% z tego przyda się do czegokolwiek…
To wszystko zależy od spojrzenia na kod. Jeśli znajdzie ktoś klasę z obsługą jakiegoś ciekawego API (nawet na pastebin) i znajdzie w niej błąd to poprawiona wersja na pewno wróci na jakimś blogu itp. Poza tym klasa nie koniecznie wskazuje na aplikację… więc dalej trzymam się tego, że wiele krzyku o nic :P
[email protected]/e5p0nd4
ile osób spróbowało? :D
Jak ktoś ma sprawne oko to wszędzie znajdzie interesujące strzępki informacji, które mogą się kiedyś przydać.
Przykład z filmu na Youtube:
https://www.youtube.com/watch?&v=nKIu9yen5nc
skrypt z Facebooka:
http://postimg.org/image/tcp4ozdqd/