Jump to content
pitreq

hack na stronie

Recommended Posts

Witam,

 

mam nadzieję, że ktoś z Was mi pomoże. Ktoś cały czas hakuje mi stronę. Jak się przed tym ustrzec?

 

Jakiś koleś potrafi prawdopodobnie zrobić sql injection, bo dodaje niecenzuralne komentarze na mojej stronie pod moim nickiem.

 

Jak to sprawdzić jakim sposobem się włamuje i gdzie jest dziura w skrypcie?

 

będę wdzięczny za podpowiedź ;)

Share this post


Link to post
Share on other sites

Widziałem gdzieś stronę czy skrypt, który testuje serwis pod kątem bugów. Jak odszukam to dam Ci link. Nie wiem na ile skuteczna jest taka metoda sprawdzania ale można spróbować.

Masz ten serwis na jakimś darmowym CMSie?

Share this post


Link to post
Share on other sites

ja chce po prostu zeby mi ktos powiedzial jak sie przed tym przestrzec... jak sprawdzic w jakie sposob koles mnie hakuje? jest na to jakis sposob?

Share this post


Link to post
Share on other sites

Sprawdź w jaki sposób przebiega walidacja danych.

Ale również pobierz program w3af GUI może Ci coś pomoże w sprawdzeniu pod kątem zabezpieczeń.

Share this post


Link to post
Share on other sites
co ma piernik do wiatraka ? ;)

aaa może

jeżeli coś już jest pogmatfane w kodzie,

to więcej dziur w serwisie też się znajdzie : )?

 

 

PS. myślę że przy takich sprawach, trzeba sprawdzić wszystko :P

Edited by budzyn

Share this post


Link to post
Share on other sites
co ma piernik do wiatraka ? ;)

 

Przepis na piernik:

Ciasto:

40 dag mąki

12,5 dag margaryny

25 dag cukru

2 jajka

4 łyżki powideł śliwkowych

3 łyżki kakao

1 opakowanie przyprawy do piernika (40 g)

1 szklanka mleka

1 łyżeczka sody oczyszczonej

ok. 1 ? szklanki bakalii

Do dekoracji:

polewa czekoladowa

kokos

 

A to o wiatrakach...

Wiatraki czyli młyny wietrzne miały podstawowe zastosowanie w zakresie mielenia ziarna na mąkę
Edited by FlashT

Share this post


Link to post
Share on other sites

Zajrzyj do logów serwera, i poszukaj wywołań stron zawierających w parametrach "INSERT" albo "UPDATE" - jest duże prawdopodobieństwo, że to wykonane przez niego komendy SQL. Zobacz jaki to skrypt, i w jakim parametrze są wstawiane te komendy.

Share this post


Link to post
Share on other sites

Ja chyba bym zrobil altair table i dodal int debug i wszedzie w skryptach gdzie sie laczy z mysqlem i cos wklada dal debug =1,2,3 ... itd.

Share this post


Link to post
Share on other sites
Zajrzyj do logów serwera, i poszukaj wywołań stron zawierających w parametrach "INSERT" albo "UPDATE" - jest duże prawdopodobieństwo, że to wykonane przez niego komendy SQL. Zobacz jaki to skrypt, i w jakim parametrze są wstawiane te komendy.

 

ok postaram sie to sprawdzic. Jak sie przed tym pozniej zabezpieczyc?

 

chodzi o access.log?

Edited by pitreq

Share this post


Link to post
Share on other sites

Tak, chodzi o access.log. Jeśli zobaczysz takie wywołania, powiedzą ci jaki to jest skrypt, np:

 

skrypt.php?parametr=cośtamcośtamcośtam';+UPDATE+table+cośtamcośtamcośtam

 

To wiesz, że w skrypcie "skrypt.php" parametr "parametr" jest źle walidowany. Niech jakiś programista ci poprawi.

Share this post


Link to post
Share on other sites

nie znalazlem nic takiego niestety w access.log ;-/

 

programista to ja jestem, tylko bez doswiadczenia:P

Share this post


Link to post
Share on other sites

Sprawdź wszystkie pliki index na swoim koncie na serwerze (htm, html, php itd.). Może ktoś wrzucił Ci złośliwego iframe'a albo kient FTP miał dziurę. Taki iframe dodaje się automatycznie do wszystkich pików index na serwerze i powoduje różne dziwne rzeczy.

Miałem kiedyś coś takiego na Wordpressie. Zostawiłem jeden zainfekowany plik i po chwili znowu to samo.

Edited by p0zer

Share this post


Link to post
Share on other sites

Przede wszystkim sprawdź plik w którym odbierasz dane z formularza logowania. Jeżeli gość zna tylko Twoją nazwę użytkownika, a w skrypcie jest błąd to bez problemy zaloguje się na Ciebie.

 

Po wpisaniu login i haslo i wysłaniu danych idą one do jakiegoś pliku, który masz prawdopodobnie określony w tym miejscu (na stronie logowanie): <form name="np.logowanie" action="nazwapliku.php" method="post lub get" ... >

 

W nazwapliku.php przy odbieraniu danych koniecznie muszą być zabezpieczenia np. addslashes i / lub strip_tags czyli np:

 

$password=strip_tags(addslashes(md5($_POST['wprowadzonehaslo']))); - jeżeli nie ma tych komend to zalogowanie się na dowolnego użytkownika, znając tylko jego login jest bardzo proste.

 

Jeżeli gość ogranicza sie tylko do głupich postów, to są dwie trzy ;) wersje:

 

1) Nie potrafi popsuć nic innego, czyli to jakiś amator więc błąd w skrypcie musi też być banalny

2) Nie chce robić nic innego i tylko "delikatnie" daje Ci znać o błędzie.

3) Na razie to go satysfakcjonuje i mu wystarzcza - jak zaczniesz z nim grać, a błędów masz więcej i on je znajdzie, to może być bardziej upierdliwy. Na wszelki wypadek rób często backup bazy.

Edited by kamilovsky

Share this post


Link to post
Share on other sites

Kiedyś na stronie na Wordpressie ktoś zamieścił w stopce linki porno, jakoby one wychodziły z mojego serwisu. Właściwie były one bardzo krótko, ale wystarczyły i dostałem filtr w Google.

Share this post


Link to post
Share on other sites

zadnego zlosliwego kodu nie mam, a problem dotyczyl totalcomandera, ktory mial dziury wiec sobie sprawdz to p0zer ;)

 

kamilovsky tego sie spodziewalem i o tym czytalem. Sprawdze dokladnie czy mam wszedzie addslashes itp wiem, ze to wykorzystywalem ;) ale dzieki za konkretna odpowiedz ;)

Share this post


Link to post
Share on other sites

Nie szukaj w logach żadnego insert czy update tylko "union select" albo słówka from,a co to filtrowania sprawdź czy masz na serwie mod_rewrite jeśli tak to w pliku .htaccess filtrujesz dane z adresu za pomocą wyrażenia regularnego.

Edited by plsd

Share this post


Link to post
Share on other sites
Nie szukaj w logach żadnego insert czy update tylko "union select" albo słówka from,a co to filtrowania sprawdź czy masz na serwie mod_rewrite jeśli tak to w pliku .htaccess filtrujesz dane z adresu za pomocą wyrażenia regularnego.

 

mozesz rozjasnic jak to zrobic w htaccess?

Share this post


Link to post
Share on other sites

wpisz w google "htaccess mod_rewrite" znajdziesz informacje o skracaniu linków n.p jeżeli , w adresie masz index?id=2 w pliku .htaccess tworzysz regułę która zamienia index?id=2 n.p na /index/2 i filtrujesz te dane w taki sposób ,że n.p tylko po index/ mogą być liczby itp. Z doświadczenia wiem ,że ludzie dopisują sobie zapytania do takich zmiennych w postaci union select i w ten sposób wyciągają dane z bazy.Dane z formularza wypadało by też walidować przy pomocy wyrażeń regularnych.Jak nie masz dużo kodu warto by było zrealizować połączenie z bazą za pomocą PDO z użyciem funkcji prepare i bindValue.

 

//edit

 

 

Może filtrowanie tu nic nie da ,bo pisałeś że ktoś dodaje tylko komentarze w twoim imeniu.Powodem tego może być wadliwie napisany skrypt w taki sposób ,że nie sprawdzasz uprawnień użytkownika podczas dodawania komentarza i ktoś może podmieniać zmienną POST ,która odpowiada za id użytkownika czy jego nazwę.Może to wyglądać tak ,że masz ukryte pole formularza w którym ustawiłeś wartość id użytkownika następnie gdy ktoś dodaje komentarz realizowane jest zapytanie w postaci "insert into komentarz (id_uz,komentarz) values ($_POST['wartosc_z_formularza'],"Komentarz") " i ktoś ustawia wartość zmiennej wartosc_z_formularza na twój id_uz jest to możliwe przez wtyczki do firefoxa,wtedy filtrowanie ci nie pomoże jak tak wygląda skrypt bo dane będą poprawne.

Edited by plsd

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×