Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kradzież skryptów. Co można z tym zrobić?
Forum PHP.pl > Inne > Hydepark
Ghost_78
Witam serdecznie.

Mam dzisiaj taką sprawę.
Przeglądałem sobie dzisiaj statystyki w google analitics i niestety mam takie wrażenie, że ktoś pobrał plik, którego nie powinien. Stronkę mam postawioną na Zendzie i jak wiadomo każde żądanie jest za pomocą .htacces przekierowywane na index.php.

Niestety z tego co widzę w analizach ktoś (z Węgier) dostał się do plików biblioteki :/. Tzn widnieje tam link do pliku z główną biblioteką zawierającą skrypt, nad którym sporo pracowałem ponieważ rozwiązuje on jeden z problemów NP-hard :/

Jestem przekonany na 99%, że udało się tej osobie pobrać owy plik.
Powiedzcie - co można w takim przypadku zrobić ?

Pozdrawiam szanowne grono.
!*!
Niewiele. Poza tym pliku ze skryptem php nie można pobrać z zewnątrz, chyba że serwer słabo zabezpieczony.
Ghost_78
Hosting mam na Home.pl wiec nie sądzą żeby to była kwestia zabezpieczeń serwera. Staram się z nimi ustalić jak do tego doszło :/. Zobaczymy co z tego wyjdzie. Jak na mój nos wykorzystali do tego jquery bo tak mi to wygląda w logach home (aczkolwiek mogę się mylić). Z tego co widzę to ktoś dostał się do tego skryptu z north.recomp.hu (jakaś węgierska strona IT). Czy byli by tak głupi żeby kraść skrypty z firmowego IP ?
Daiquiri
Przenieśmy się do HydeParku.
peter13135
skąd wiesz, że to kradzież ? Czy to nie było tak, że ktoś odpalił w przeglądarce plik typu:
includes/cośTam.class.php

questionmark.gif
erix
Cytat
Hosting mam na Home.pl wiec nie sądzą żeby to była kwestia zabezpieczeń serwera.

Wystarczy dziurawy skrypt.

Poza tym, co to za myślenie? Jak home, to już na pewno w 100% bezpieczny? Nie ma 100% zabezpieczeń.
Ghost_78
@erix
Wcale nie napisałem, że jest niemożliwym żeby to było winą zabezpieczeń home tylko, że nie sądzę.
Tak samo jak Ty uważam, że nie ma 100% zabezpieczeń jak i 100% uszczelnionych skryptów.
Całkiem możliwe, że gdzieś mam dziurę - tylko kwestia tego czy ktoś wykorzystując dziurę, pobierając skrypt robi to zgodnie z prawem

@peter13135
po 1. skąd znałby nazwę pliku "includes/cośTam.class.php"
po 2. w normalnych warunkach dostanie pustą stronę (zakładając, że w pliku jest tylko ciało klasy)


Serdeczne dzięki za zainteresowanie.
To dla mnie dość istotna sprawa - z resztą jak dla każdego piszącego skrypty

Log który mnie zaniepokoil wyglada tak:

north.recomp.hu - - [15/Aug/2011:11:00:23 +0200] "GET /katalogZeSkryptami/html/simulator/..sciezkaDoPlikuKlasy../klasa.lib.php HTTP/1.0" 404 2098 "" "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"

a po nim kolejny:

north.recomp.hu - - [15/Aug/2011:11:00:24 +0200] "GET /katalog/html/simulator/..sciezkaDoPlikuKlasy../scripts/jquery.js HTTP/1.0" 404 223 "http://moja.domena/html/simulator//..sciezkaDoPlikuKlasy../klasa.lib.php" "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"
erix
Cytat
Całkiem możliwe, że gdzieś mam dziurę - tylko kwestia tego czy ktoś wykorzystując dziurę, pobierając skrypt robi to zgodnie z prawem

Nie robi. Ale wątpię, abyś mógł dochodzić swoich praw.
Ghost_78
Nie bardzo rozumiem.
Sprawa mogłaby wyglądać tak, że za pomocą dziury w google wykradam ich jakiś silnik. Zostanę bezkarny?
Zwłaszcza, że jeżeli dobrze czytam logi to mam źródło skąd pobrano skrypt north.recomp.hu .
and_woj
Zerknij na stronę phpencoder.eu. Może warto zainwestować w takie narzędzie?
erix
Cytat
Sprawa mogłaby wyglądać tak, że za pomocą dziury w google wykradam ich jakiś silnik. Zostanę bezkarny?
Zwłaszcza, że jeżeli dobrze czytam logi to mam źródło skąd pobrano skrypt north.recomp.hu .

Ty nie pozostaniesz bezkarny. Bo dostaniesz pozew, za którym będzie stał kapitał, a wraz z nim armia prawników.

Chyba że Ty też masz czas, pieniądze i ludzi, aby się tym zajęli. Z naciskiem na czas.
Ghost_78
@and_woj
chyba trzeba będzie się zainteresować wreszcie takimi rozwiązaniami

@erix
Masz całkowitą rację. Ja nie pozostanę bezkarny. Nie mniej jednak jeżeli się faktycznie potwierdzi, że ten skrypt został pobrany to jest pewne, że tak tego nie zostawię.

Przynajmniej spróbuję coś z tym zrobić.

Jestem takiego zdania, że jeżeli nie będzie się wcale reagowało to takie incydenty staną się codziennością. A tego ani ja ani żaden koder by nie chciał, bo po co wtedy się męczyć z klepaniem kodu skoro można sobie ukraść.
l0ud
Chyba trochę panikujesz. Log który dałeś wskazuje że żaden plik nie został wysłany (błąd 404) bo ścieżka była nieprawidłowa. A nawet jakby była prawidłowa i plik się wykonał, rezultatem będzie biała strona albo jakiś dziwny błąd.
Zastanawiałbym się tylko skąd ktoś zna plik klasy. Może masz jakieś standardowe ścieżki i włączone listowanie zawartości folderów?
1010
Cytat
Chyba że Ty też masz czas, pieniądze i ludzi, aby się tym zajęli. Z naciskiem na czas.

Moim zdaniem zdecydowanie z naciskiem na pieniądze.
Ghost_78
@l0ud
Właśnie o to chodzi. Skąd ktoś wziął strukturę katalogów.
Tak naprawdę to każde żądanie powinno się kończyć wywołaniem pliku index.php (ze względu na zenda). Skonfigurowane mam to w taki sposób w .htacces:

w katalogu strony:
  1. RewriteCond %{HTTP_HOST} ^domena.net
  2. RewriteRule (.*) <a href="http://www.domena.net/$1" target="_blank">http://www.domena.net/$1</a> [R=301,L]
  3. RewriteRule ^(.*)$ <a href="http://domena.net/html/$1" target="_blank">http://domena.net/html/$1</a>


w katalogu html:
  1. RewriteEngine on
  2. RewriteRule !\.(js|ico|gif|jpg|png|css|xml)$ index.php


sadze ze wylistowanie w normalny sposób nie będzie możliwe

A co do panikowania to może trochę tak - ale myślę, że to w miarę normalna reakcja w takim przypadku.

1010
Myślę, że tak. Ale i tak będę starał się coś z tym zrobić jeżeli moje podejrzenia uda się udowodnić. Zwłaszcza, że numer ten odwaliła firma programistyczna :/. Może tak właśnie tworzą soft dla swoich klientów - kradnąc innym :/
peter13135
Ale skąd wiesz, że ktoś Ci wykradł ? wlazł Ci ktoś na FTP czy z przeglądarki wlazł na plik ? jeśli to drugie, to jak już Ci ktoś pissał i jak sam zauważyłeś dostałby białą stronę. Czy widzaisz, że ta firma wykorzystała gdzieś Twoją klasę questionmark.gif
Moim zdaniem nic się nie stało, a Ty już chcesz się sądzić i oskarżasz jakąś firmę o kradzież.

ten folder z Twoją klasą ma nazwę includes/libs albo podobną standardową? Nie znam się na zendzie, ale jeśli jest tak jak mówię i w dodatku w tym folderze nie ma indexa, to zobaczene nazwy tego pliku nie jest żadnym wlamaniem
Ghost_78
Sorki Peter ale muszę to napisać.

Życzę Ci żebyś kiedyś miał podobną sytuację gdzie będziesz ślęczał kilka miesięcy nad biblioteką a potem trafi Ci się podobna sytuacja, gdzie ktoś będzie się do niej bezpośrednio odwoływał.
Ciekaw jestem wtedy Twojej reakcji. Czy będziesz potrafił z zimną krwią to olać.

Tak jak ktoś wcześniej napisał - może jestem trochę przewrażliwiony - ale szkoda mi trochę mojej pracy. Po to właśnie napisałem na tym forum aby ktoś potwierdził lub rozwiał moje obawy.

Edit:
Wpisując wszystkie te adresy które były w logach z hostingu - ja dostawałem stronę z brakiem dostępu lub nieprawidłowe odwołanie. I to mnie właśnie zaniepokoiło. Po tych zabiegach niestety nie byłem w stanie wyświetlić nazwy biblioteki. A jednak komuś się to udało.
erix
Cytat
Sorki Peter ale muszę to napisać.

Życzę Ci żebyś kiedyś miał podobną sytuację gdzie będziesz ślęczał kilka miesięcy nad biblioteką a potem trafi Ci się podobna sytuacja, gdzie ktoś będzie się do niej bezpośrednio odwoływał.
Ciekaw jestem wtedy Twojej reakcji. Czy będziesz potrafił z zimną krwią to olać.

Jeśli Ci zależy na tym, aby kod źródłowy nie wyciekł, to go zakoduj, np. ionCubem.

Dlaczego masz pretensje? To są żelazne prawa internetu - nie ma 100% zabezpieczeń, a PHP jest językiem interpretowanym. Nawet wredny admin może być powodem wycieku. Chcesz zabezpieczyć? Zakoduj.
peter13135
Cytat
Sorki Peter ale muszę to napisać.

Życzę Ci żebyś kiedyś miał podobną sytuację gdzie będziesz ślęczał kilka miesięcy nad biblioteką a potem trafi Ci się podobna sytuacja, gdzie ktoś będzie się do niej bezpośrednio odwoływał.
Ciekaw jestem wtedy Twojej reakcji. Czy będziesz potrafił z zimną krwią to olać.

Niezbyt jesteś miły, ja niczego złego Tobie nie życzyłem wink.gif. Wszelkie moje posty w tym temacie były próbą diagnozy, czy ten skrypt został skradziony, czy nie.To jeszcze nie jest pewne. Moja intuicja podpowiada mi, że jednak nic nie zostało wykradzione.
Przykro mi, że za moje starania (nawet jeśli Tobie nic nie pomogły, a mi za dużo czasu nie zabrały) otrzymałem zapłatę w formie takiego życzenia wink.gif
Ghost_78
Ehhhhh.....

Sorki, już mnie chyba trochę ponosi ... jedyne co mogę zrobić to przeprosić co czynię wstydnis.gif .

Oczywiście za wszelką pomoc i porady dziękuje.

Co do dalszych zabezpieczeń to oczywiście będę coś myślał. Tylko to jest tak jak zwykle - Polak mądry po szkodzie - więc ja niczym nie odbiegam od normy wink.gif.

Teraz właśnie najbardziej zależy mi na ustaleniu czy jednak wyciekło czy nie.
Wiem, że w bezpośredni sposób odwołując się do strony - raczej nie było takiej możliwości. Przez FTP też niby nie było w tym dniu logowania (info z Home). Jedyne co mi przyszło do głowy to jeszcze jakieś odwołanie przez jQuery (może tworzę herezje).


P.S.
Jeszcze raz przepraszam - zwłaszcza Petera
CuteOne
Herezja wink.gif dostaniesz białą stronę / błąd 404 ponieważ plik się wykona jak przy "normalnym" requeście. Hmm zapewne masz serwer współdzielony i raczej tu bym szukał przyczyny
pyro
Cytat
north.recomp.hu - - [15/Aug/2011:11:00:23 +0200] "GET /katalogZeSkryptami/html/simulator/..sciezkaDoPlikuKlasy../klasa.lib.php HTTP/1.0" 404 2098 "" "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"

a po nim kolejny:

north.recomp.hu - - [15/Aug/2011:11:00:24 +0200] "GET /katalog/html/simulator/..sciezkaDoPlikuKlasy../scripts/jquery.js HTTP/1.0" 404 223 "http://moja.domena/html/simulator//..sciezkaDoPlikuKlasy../klasa.lib.php" "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"



Jeżeli to wszystko co Cię zaniepokoiło to słowo Ci daję, że nie musisz się niczego bać jeśli w tych plikach były tylko kody z klasami.
Ghost_78
Dzięki. No to jQuery sobie wykluczę wink.gif

Co do współdzielonego serwera to pewnie tak jest. Hosting na home więc nie sądzę abym na maszynie sam siedział.
Tylko cały czas zachodzę w głowę - jak można było poznać nazwę biblioteki smile.gif. Tylko to mi nie daje spokoju.

Edit:

@pyro
tak - tam był tylko skrypt z klasą - tylko tak jak napisałem wyżej biggrin.gif skąd wzięli nazwę pliku smile.gif to dla mnie zagadka, która nie daje mi spokoju.
!*!
Pobranie "struktury" może być akurat bardzo proste

Kod
wget --recursive ?convert-links http://domena.com


edit: i na 99% w którymś momencie musiał wyskoczyć błąd, jeśli nie masz ich wyłączonych z nazwą klasy wink.gif poza tym zostają też komentarze czy cokolwiek co może być "wyświetlone" po stornie użytkownika. A pobranie "struktury" + przeanalizowanie tego co zostało pobrane, może sprawić że w jakimś momencie nazwa tej klasy wypłynie. A co z innymi klasami? A i jeszcze jedna rzecz, sprawdź co dokładnie znaczą te logi, bo 404 o czymś świadczy wink.gif I może napisz do tej firmy, oni dadzą Ci odpowiedź z pierwszej nogi.
rzymek01
pozwolę sobie wrzucić 2 grosze,
czemu nie trzymasz super_tajnych_bibliotek poza public_html ?
Ghost_78
@rzymek01
właśnie o to chodzi, że mam to w innym drzewie:

Katalog_strony:
===================
.htacces

-- library
---- My
---- Zend

-- html
---- .htacces
---- index.php
---- style
---- img
============

wywołanie mam www.domena.net/html/

i teraz po wpisaniu www.domena.net/library/ dostaje brak uprawnień zamiast komunikatu o błędnym kontrolerze mimo, że w .htaccesie mam:
"RewriteRule ^(.*)$ http://domena.net/html/$1"


Cytat(!*! @ 29.08.2011, 12:58:03 ) *
Pobranie "struktury" może być akurat bardzo proste

Kod
wget --recursive ?convert-links http://domena.com


sprawdziłem sobie to co napisałeś - faktycznie pobiera całą stronę ale tylko tak jak wskazują linki. I robi z tego HTMLa

Cytat(!*! @ 29.08.2011, 12:58:03 ) *
i na 99% w którymś momencie musiał wyskoczyć błąd, jeśli nie masz ich wyłączonych z nazwą klasy ;) poza tym zostają też komentarze czy cokolwiek co może być "wyświetlone" po stornie użytkownika. A pobranie "struktury" + przeanalizowanie tego co zostało pobrane, może sprawić że w jakimś momencie nazwa tej klasy wypłynie.


Nie do końca zaskoczyłem o co dokładnie pytasz.
Komentarzy w HTML'u nigdy nie robię. W php jeżeli coś było zakomentowane to i tak interpreter nie wyświetli.
Jeżeli chodzi o strukturę to tak jak opisałem rzymek'owi. Nie mam plików klas poniżej pliku index.php ani nawet w tej samej gałęzi.

Cytat(!*! @ 29.08.2011, 12:58:03 ) *
A i jeszcze jedna rzecz, sprawdź co dokładnie znaczą te logi, bo 404 o czymś świadczy ;)


tzn ?

Cytat(!*! @ 29.08.2011, 12:58:03 ) *
I może napisz do tej firmy, oni dadzą Ci odpowiedź z pierwszej nogi.

To wolałbym zrobić już dopiero jak upewnię się co mogli zrobić a czego nie. To tak żeby właśnie nie wyszło tak jak ktoś wyżej napisał, że spanikowałem biggrin.gif.


P.S.
Jeszcze raz dziękuję wszystkim za zainteresowanie. Każdy pomysł chętnie sprawdzę.
!*!
Ale w jakim drzewie? Pokazałeś wyżej że wszytko masz w public_html (czyli ogólnie dostępne). A chodzi o to żeby było poza nim, wtedy tylko z 'serwera' będziesz mieć dostęp. Sprawdź co oznacza komunikat 404. Albo jeszcze lepiej podaj adres domeny, już obadamy co jest nie tak biggrin.gif może jakaś dziura w home.pl jest i wyznaczą nagrodę w postaci 'domeny za zeta' bo są w tym dobrzy.
Ghost_78
Hahaha!

Hmmm. Chyba znalazłem sposób w jaki znaleźli nazwy plików. Tylko nie śmiejcie się ze mnie za głośno wink.gif.

Niestety mam na stronce formularz, który służy potem to przetworzenia ( zrobienia obliczeń). Niestety - w przypadku kiedy ktoś nie poda wcale wartości wyskakuje błąd w pliku. Zgadnijcie w którym - oczywiście w tym niby pobranym :/. Ale gafa :/. Aż wstyd exclamation.gif! wstydnis.gif

Sądzę, że scenariusz dalej był taki, że ktoś po prostu skopiował to co mu się wyświetliło do adresu bo liczył, że mu się coś pokaże ale najprawdopodobniej zobaczył to co i ja.

Nie mniej jednak - !*! jak chcesz się pofatygować i "włamać na home" to adres to: www.pakowacz.net. Pakowanie teraz nie działa bo usunąłem wczoraj część tej biblioteki. Ale plik w razie czego do "pobrania" wink.gif. Muszę wrzucić ją niebawem z powrotem.

Ehhh - dobrze ktoś wcześniej napisał biggrin.gif "PANIKARZ"

P.S.
Tak czy siak dzięki wszystkim wielkie za zainteresowanie

P.P.S.
ALE WSTYD exclamation.gif!!
!*!
Ano wstyd Panie wink.gif

Kod
Warning: Wrong parameter count for max() in /library/My/Pakowacz/pakuj.lib.php on line 118

Warning: Division by zero in /library/My/Pakowacz/pakuj.lib.php on line 120


W środowisku produkcyjnym po prostu wyłącz pokazywanie błędów w PHP wink.gif
Ghost_78
Hyhyhy.
Przecież były wyłączone. Chyba się same po włączały wink.gif.

Chyba za dużo ostatnio czytam o włamach na facebooka, strony firm antywirusowych itp tongue.gif

MASAKRA

Jeszcze raz dzięki śliczne.

P.S.
Ale i tak miło wiedzieć, że są na tym forum ludzie którzy w takiej sytuacji pomogą.

Czółko!
peter13135
Ja proponuję dać output błędów do pliku txt, albo do bazy (set_error_handler).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.