Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]Włamanie na stronę z wordpressem
konrados
post
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
 
Start new topic
Odpowiedzi
cer98
post
Post #2





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('#(?(IMG:style_emoticons/default/ohmy.gif) n[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

Posty w temacie
- konrados   [inne][PHP]Włamanie na stronę z wordpressem   9.11.2011, 14:25:50
- - markonix   To nie włam na WP tylko włam na FTP. Zmieniłeś w o...   9.11.2011, 14:31:03
- - konrados   No ale jak to? Nie, nie zmieniłem hasła ftp, ale...   9.11.2011, 14:42:03
- - markonix   Nie zaszkodzi zmienić. Miałem sam coś podobnego j...   9.11.2011, 15:05:22
- - konrados   No i zmiana pomogła? A po drugie - jak myślisz, sk...   9.11.2011, 16:01:25
|- - markonix   Cytat(konrados @ 9.11.2011, 16:01:25 ...   9.11.2011, 16:12:42
- - elektrrrus   Używasz Total Commaner albo filezilla pod windowse...   9.11.2011, 16:11:00
- - konrados   @lektrrrus: nie, używam winscp i owszem każę mu za...   9.11.2011, 16:22:17
- - elektrrrus   A ja jestem na 99% pewny że to przez ftp. Jak masz...   9.11.2011, 16:26:20
- - konrados   No to zmieniłem hasło do ftp - nigdzie go tym raze...   11.11.2011, 18:00:40
- - Flame0   Spróbuj otworzyć plik w przeglądarce z chmodem 777...   11.11.2011, 19:24:59
- - arcziustka   Markonix ma rację, to włamanie przez FTP. Ktoś ma...   12.11.2011, 00:56:10
- - konrados   @Flame0 CytatSpróbuj otworzyć plik w przeglądarce ...   12.11.2011, 06:37:39
- - cer98   RE: [inne][PHP]Włamanie na stronę z wordpressem   12.11.2011, 16:58:49
- - konrados   @cer98: o XSS co nieco wiem, ale jesteś pewien, że...   12.11.2011, 17:27:38
- - cer98   Tak. Nie wiem, co miał zamiar autor włamania. Chmo...   12.11.2011, 19:36:15
- - adam882   To jest wirus, miałem go Wystarczyło wejść na zaw...   12.11.2011, 19:41:42
- - konrados   OK, 5 dni po zmianie hasła do ftp nie widzę żadnyc...   16.11.2011, 16:10:05
- - abort   Owszem, miał dostęp do ftp. Ale jak zmienisz hasło...   16.11.2011, 22:33:46
- - megan   Witajcie, czy możecie mi dokładnie opisać co zrobi...   20.10.2012, 10:39:24
- - CuteOne   Jeżeli nie masz pojęcia o programowaniu to lepiej ...   20.10.2012, 10:56:59
- - konrados   Kurde, jaki stary temat:) Aż wspomnienia mi się po...   21.10.2012, 09:54:41


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

 



RSS Aktualny czas: 15.10.2025 - 01:29