Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]Włamanie na stronę z wordpressem
konrados
post 9.11.2011, 14:25:50
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Cześć.

Już nie mam sił i pomysłów. Jakiś miesiąc temu miało miejsce włamanie na pewną stronę z zainstalowanym wordpressem 2.9.2 w którym, jak się okazało jest dziura.

"Włamywacz" (a pewnie jakiś bot) wstawił do każdego pliku (nawet niezwiązanego z blogiem wordpressowym) kawałek js.

Ogółem strona wygląda tak, że w katalogu głównym znajdują się pliki statyczne (z drobnym dodatkiem php, includowane są header i footer) a w podkatalogu "blog" jest zainstalowany wordpress.

Po włamaniu, okazało się, że wszystkie pliki mają chmod 777.

Zainstalowałem najnowszą wersję wordpressa (3.2.1 i z tego co widzę w googlach nie ma poważniejszych dziur), zmieniłem uprawnienia wszystkich plików na standardowe 644 i wszystko było ok aż do dzisiaj: znowu włamanko, znowu coś pozmieniało uprawnienia na 777 i wstawiło szkodliwy skrypt js.

No co ja mam zrobić? Nie ma (raczej) mowy o ukradzeniu hasła do ftp, więc jakoś inaczej ten człowiek/bot musi mi szkodzić.

Update: to jest naprawdę prosta stronka, trochę plików statycznych i blog wordpressowy w osobnym katalogu.

Ten post edytował konrados 9.11.2011, 14:27:17
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
markonix
post 9.11.2011, 14:31:03
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


To nie włam na WP tylko włam na FTP.
Zmieniłeś w ogóle hasło do tego FTP?


--------------------
Go to the top of the page
+Quote Post
konrados
post 9.11.2011, 14:42:03
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


No ale jak to?

Nie, nie zmieniłem hasła ftp, ale czemu twierdzisz, że to włam na ftp? Bo zmienili uprawnienia plików? Przecież to jest możliwe z poziomu php.
Go to the top of the page
+Quote Post
markonix
post 9.11.2011, 15:05:22
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Nie zaszkodzi zmienić.

Miałem sam coś podobnego jak setki innych ludzi (na tym forum taki temat powstaje raz na miesiąc minimum).


--------------------
Go to the top of the page
+Quote Post
konrados
post 9.11.2011, 16:01:25
Post #5





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


No i zmiana pomogła?
A po drugie - jak myślisz, skąd wzieli hasło?
Go to the top of the page
+Quote Post
elektrrrus
post 9.11.2011, 16:11:00
Post #6





Grupa: Zarejestrowani
Postów: 175
Pomógł: 18
Dołączył: 11.06.2007
Skąd: Koszalin/Poznań

Ostrzeżenie: (0%)
-----


Używasz Total Commaner albo filezilla pod windowsem do łączenia?
Go to the top of the page
+Quote Post
markonix
post 9.11.2011, 16:12:42
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Cytat(konrados @ 9.11.2011, 16:01:25 ) *
No i zmiana pomogła?
A po drugie - jak myślisz, skąd wzieli hasło?

Słyszałeś o czymś takim jak wirus (w mocnym uproszczeniu)?


--------------------
Go to the top of the page
+Quote Post
konrados
post 9.11.2011, 16:22:17
Post #8





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


@lektrrrus: nie, używam winscp i owszem każę mu zapamiętywać hasła, ale:

markonix: Słyszałeś o czymś takim jak wirus (w mocnym uproszczeniu)?

Jestem na 99.99% przekonany, że nie mam żadnych wirusów. To Musi się odbywać via php na tej stronce. Zmienię hasło, ale coś czuję, że to nic nie zmieni. No weźcie się bardziej postarajcie smile.gif
Go to the top of the page
+Quote Post
elektrrrus
post 9.11.2011, 16:26:20
Post #9





Grupa: Zarejestrowani
Postów: 175
Pomógł: 18
Dołączył: 11.06.2007
Skąd: Koszalin/Poznań

Ostrzeżenie: (0%)
-----


A ja jestem na 99% pewny że to przez ftp. Jak masz dostęp to zobacz w logi lub po proś o to administratora serwera, to rozwieje wszelkie wątpliwości.
My w firmie mamy zasadę że na zdalne serwery nie wolno łączyć się z poziomu nawet niewiadomo jak czystego windowsa, i nie zapisujemy haseł w programach. Dzięki temu nic jeszcze nigdy nie wyciekło.

Ten post edytował elektrrrus 9.11.2011, 16:27:35
Go to the top of the page
+Quote Post
konrados
post 11.11.2011, 18:00:40
Post #10





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


No to zmieniłem hasło do ftp - nigdzie go tym razem nie zapisując.
Sprawdziłem też antywirusem wszystkie komputery z których kiedykolwiek ktoś się łączył z ftp tej strony (nic nie znalazło).

Tylko mam pytanie - po co ten ktoś czy coś zmieniał ustawienia plików na 777? Macie jakieś pomysły?
Go to the top of the page
+Quote Post
Flame0
post 11.11.2011, 19:24:59
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 2
Dołączył: 9.11.2011

Ostrzeżenie: (0%)
-----


Spróbuj otworzyć plik w przeglądarce z chmodem 777, a potem z chmodem 644.

Odsyłam do -

http://pl.wikipedia.org/wiki/Chmod
Go to the top of the page
+Quote Post
arcziustka
post 12.11.2011, 00:56:10
Post #12





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 11.11.2011

Ostrzeżenie: (0%)
-----


Markonix ma rację, to włamanie przez FTP.
Ktoś ma hasło do twojego FTP i przez niego wchodzi, zmienia chmody aby potem dopisać do nich ten kod js. Z poziomu przeglądarki raczej trudno było by mu edytować pliki, choć nie twierdzę że to niemożliwe, bo niektóre CMS mają taką funkcję. Jak ktoś używa bota do tego to raczej przez ftp, bo taki bot będzie działał na każdym serwerze, byle były pliki php i nie musi wtedy brać pod uwagę zainstalowanych CMSów i tworzyć dla nich oddzielnych reguł.

Ten post edytował arcziustka 12.11.2011, 00:59:49
Go to the top of the page
+Quote Post
konrados
post 12.11.2011, 06:37:39
Post #13





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


@Flame0
Cytat
Spróbuj otworzyć plik w przeglądarce z chmodem 777, a potem z chmodem 644.


No wiem, że się nie da (błąd 500) stąd moje pytanie - po co? Skoro mieli pełen dostęp do ftp, nie musieli nic chmodować.

@arcziustka
Tylko, że wciąż nie mam pojęcia jak wykradli hasło, no ale nieważne - jeśli to przez ftp tzn. że problem jest chyba rozwiązany. Jak się w ciągu 2 tygodni nie włamią tzn. że rozwiązany:)

Update: czytam o tych permissions, ale nie jest linuksiarzem i trochę to dla mnie obce. Czy może mi ktoś powiedzieć, czy atrybut 777 daje coś komuś, kto nie ma dostępu do ftp (bo cały czas obstaję przy teorii, że hasło nie zostało wykradzione)?

Ten post edytował konrados 12.11.2011, 10:53:32
Go to the top of the page
+Quote Post
cer98
post 12.11.2011, 16:58:49
Post #14





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 17.07.2011

Ostrzeżenie: (0%)
-----


Poczytaj tutaj

Oraz rozwiązanie:

  1. <?php
  2. /**
  3.  * System security methods
  4.  */
  5. class Security
  6. {
  7. /**
  8.   * Clears inputs of any xss attempts
  9.   * @return string|array
  10.   */
  11. public static function xss($str) {
  12. // If array, cycle through all array values
  13. if (is_array($str) OR is_object($str))
  14. {
  15. foreach ($str as $key => $value)
  16. {
  17. $str[$key] = Security::xss($value);
  18. }
  19.  
  20. return $str;
  21. }
  22.  
  23. // Remove all NULL bytes
  24. $str = str_replace("\0", '', $str);
  25.  
  26. // Fix &entity\n;
  27. $str = str_replace(array('&amp;','&lt;','&gt;'), array('&amp;amp;','&amp;lt;','&amp;gt;'), $str);
  28. $str = preg_replace('/(&#*\w+)[\x00-\x20]+;/u', '$1;', $str);
  29. $str = preg_replace('/(&#x*[0-9A-F]+);*/iu', '$1;', $str);
  30. $str = html_entity_decode($str, ENT_COMPAT, CHARSET);
  31.  
  32. // Remove any attribute starting with "on" or xmlns
  33. $str = preg_replace('#(?ohmy.gifn[a-z]+|xmlns)\s*=\s*[\'"\x00-\x20]?[^\'>"]*[\'"\x00-\x20]?\s?#iu', '', $str);
  34.  
  35. // Remove java script: and vb script: protocols
  36. $str = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([`\'"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2nojavascript...', $str);
  37. $str = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2novbscript...', $str);
  38. $str = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*-moz-binding[\x00-\x20]*:#u', '$1=$2nomozbinding...', $str);
  39.  
  40. // Only works in IE: <span style="width: expression(alert('Ping!'));"></span>
  41. $str = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?expression[\x00-\x20]*\([^>]*+>#is', '$1>', $str);
  42. $str = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?behaviour[\x00-\x20]*\([^>]*+>#is', '$1>', $str);
  43. $str = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*+>#ius', '$1>', $str);
  44.  
  45. // Remove namespaced elements (we do not need them)
  46. $str = preg_replace('#</*\w+:\w[^>]*+>#i', '', $str);
  47.  
  48. do
  49. {
  50. // Remove really unwanted tags
  51. $old = $str;
  52. $str = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $str);
  53. }
  54. while ($old !== $str);
  55.  
  56. return $str;
  57. }
  58. }



A w pliku index dajesz:
  1.  
  2. /**
  3.  * Clean request globals
  4.  */
  5. $_REQUEST = Security::xss($_REQUEST);
  6. $_GET = Security::xss($_GET);
  7. $_POST = Security::xss($_POST);
  8.  
Go to the top of the page
+Quote Post
konrados
post 12.11.2011, 17:27:38
Post #15





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


@cer98: o XSS co nieco wiem, ale jesteś pewien, że to ma coś wspólnego z moim pytaniem?

Teraz mi głównie chodzi o to, dlaczego sprawca zmienił atrybuty na 777 i co na tym zyskał.

A co ten skrypt js robił to dla mnie drugorzędna sprawa.
Go to the top of the page
+Quote Post
cer98
post 12.11.2011, 19:36:15
Post #16





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 17.07.2011

Ostrzeżenie: (0%)
-----


Tak. Nie wiem, co miał zamiar autor włamania. Chmod zmienił, aby móc zmodyfikować pliki. Potraktuj to jako wirusa lub jak masz czas zmodyfikuj WS tak, aby REQUEST przechodził przez ten skrypt, to na pewno pomoże. Możesz też poszukać w sieci innych rozwiązać na ataki XSS
Go to the top of the page
+Quote Post
adam882
post 12.11.2011, 19:41:42
Post #17





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

Ostrzeżenie: (0%)
-----


To jest wirus, miałem go sad.gif Wystarczyło wejść na zawirusowaną stronę i już się ściągał. Jeżeli antywirus w porę nie zablokował zainfekowanej strony, to wirus zdążył się już ściągnąć. Jego usunięcie jest dość ciężkie. Doklejał on na spodzie plików kod js. Od tamtego czasu nie trzymam haseł w pamięci Total Commandera.

Ten post edytował adam882 12.11.2011, 19:42:56
Go to the top of the page
+Quote Post
konrados
post 16.11.2011, 16:10:05
Post #18





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


OK, 5 dni po zmianie hasła do ftp nie widzę żadnych włamań, sypię więc podziękowaniami smile.gif

Nadal jednak nie rozumiem jak to się stało. I po co 777 skoro człowiek miał pełen dostęp do ftp.
@cer98 - "Chmod zmienił, aby móc zmodyfikować pliki." - no przecież mając dostęp do ftp nie musiał nic więcej robić.

Ten post edytował konrados 16.11.2011, 16:21:07
Go to the top of the page
+Quote Post
abort
post 16.11.2011, 22:33:46
Post #19





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

Ostrzeżenie: (0%)
-----


Owszem, miał dostęp do ftp. Ale jak zmienisz hasło, to tego dostępu już nie będzie miał.
Dlatego PRZYPUSZCZAM, że kod, który został dokładany, mógł powodować wiele rzeczy, włącznie z takimi, w których:
1. gość miał jakieś prawa w systemie (których nie powinien mieć)
2. gość mógł podstawiać stronę logowania/zmiany hasła i gromadzić pary user/pass użytkowników serwisu
Go to the top of the page
+Quote Post
-megan-
post 20.10.2012, 10:39:24
Post #20





Goście







Witajcie,
czy możecie mi dokładnie opisać co zrobić, żeby wywalić to g... z mojej strony? Słabo się znam na tym. Gdzie umieścić te skrypty? Dzięki.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:45