انجمن


آیا فایل آلوده (شلر ) در پکیج وردپرس وجود دارد ؟  (۱۰ نوشته)

  • niutish

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹
    تشکر شده: ۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۷ تیر ۱۳۹۰ - ۲۰:۳۱

    سلام این دو فایل زیر روی وردپرس هست و آنتی شلرم بهش گیر میده کار این فایلا چیه اینا شلر هستن ؟ این فایل ها توی همه سایتا تست کردم بوده ولی توی خود سایت وردپرس نیست .

    ./wp-includes/Text/Diff/Engine/shell.php
    .wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۷ تیر ۱۳۹۰ - ۲۱:۳۳

    حجم این فایلها و محتویات داخلشون چی هستن؟
    در ضمن کجا بهشون گیر میده که شلر هستن؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    niutish - عبدالماجد شه بخش ( ایجباری )
  • niutish

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹
    تشکر شده: ۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۷ تیر ۱۳۹۰ - ۲۱:۳۷

    shell.php

    <?php
    /**
     * Class used internally by Diff to actually compute the diffs.
     *
     * This class uses the Unix <code>diff</code> program via shell_exec to compute the
     * differences between the two input arrays.
     *
     * Copyright 2007-2010 The Horde Project (http://www.horde.org/)
     *
     * See the enclosed file COPYING for license information (LGPL). If you did
     * not receive this file, see http://opensource.org/licenses/lgpl-license.php.
     *
     * @author  Milian Wolff <mail@milianw.de>
     * @package Text_Diff
     * @since   0.3.0
     */
    class Text_Diff_Engine_shell {
    
        /**
         * Path to the diff executable
         *
         * @var string
         */
        var $_diffCommand = 'diff';
    
        /**
         * Returns the array of differences.
         *
         * @param array $from_lines lines of text from old file
         * @param array $to_lines   lines of text from new file
         *
         * @return array all changes made (array with Text_Diff_Op_* objects)
         */
        function diff($from_lines, $to_lines)
        {
            array_walk($from_lines, array('Text_Diff', 'trimNewlines'));
            array_walk($to_lines, array('Text_Diff', 'trimNewlines'));
    
            $temp_dir = Text_Diff::_getTempDir();
    
            // Execute gnu diff or similar to get a standard diff file.
            $from_file = tempnam($temp_dir, 'Text_Diff');
            $to_file = tempnam($temp_dir, 'Text_Diff');
            $fp = fopen($from_file, 'w');
            fwrite($fp, implode("\n", $from_lines));
            fclose($fp);
            $fp = fopen($to_file, 'w');
            fwrite($fp, implode("\n", $to_lines));
            fclose($fp);
            $diff = shell_exec($this->_diffCommand . ' ' . $from_file . ' ' . $to_file);
            unlink($from_file);
            unlink($to_file);
    
            if (is_null($diff)) {
                // No changes were made
                return array(new Text_Diff_Op_copy($from_lines));
            }
    
            $from_line_no = 1;
            $to_line_no = 1;
            $edits = array();
    
            // Get changed lines by parsing something like:
            // 0a1,2
            // 1,2c4,6
            // 1,5d6
            preg_match_all('#^(\d+)(?:,(\d+))?([adc])(\d+)(?:,(\d+))?$#m', $diff,
                $matches, PREG_SET_ORDER);
    
            foreach ($matches as $match) {
                if (!isset($match[5])) {
                    // This paren is not set every time (see regex).
                    $match[5] = false;
                }
    
                if ($match[3] == 'a') {
                    $from_line_no--;
                }
    
                if ($match[3] == 'd') {
                    $to_line_no--;
                }
    
                if ($from_line_no < $match[1] || $to_line_no < $match[4]) {
                    // copied lines
                    assert('$match[1] - $from_line_no == $match[4] - $to_line_no');
                    array_push($edits,
                        new Text_Diff_Op_copy(
                            $this->_getLines($from_lines, $from_line_no, $match[1] - 1),
                            $this->_getLines($to_lines, $to_line_no, $match[4] - 1)));
                }
    
                switch ($match[3]) {
                case 'd':
                    // deleted lines
                    array_push($edits,
                        new Text_Diff_Op_delete(
                            $this->_getLines($from_lines, $from_line_no, $match[2])));
                    $to_line_no++;
                    break;
    
                case 'c':
                    // changed lines
                    array_push($edits,
                        new Text_Diff_Op_change(
                            $this->_getLines($from_lines, $from_line_no, $match[2]),
                            $this->_getLines($to_lines, $to_line_no, $match[5])));
                    break;
    
                case 'a':
                    // added lines
                    array_push($edits,
                        new Text_Diff_Op_add(
                            $this->_getLines($to_lines, $to_line_no, $match[5])));
                    $from_line_no++;
                    break;
                }
            }
    
            if (!empty($from_lines)) {
                // Some lines might still be pending. Add them as copied
                array_push($edits,
                    new Text_Diff_Op_copy(
                        $this->_getLines($from_lines, $from_line_no,
                                         $from_line_no + count($from_lines) - 1),
                        $this->_getLines($to_lines, $to_line_no,
                                         $to_line_no + count($to_lines) - 1)));
            }
    
            return $edits;
        }
    
        /**
         * Get lines from either the old or new text
         *
         * @access private
         *
         * @param array &$text_lines Either $from_lines or $to_lines
         * @param int   &$line_no    Current line number
         * @param int   $end         Optional end line, when we want to chop more
         *                           than one line.
         *
         * @return array The chopped lines
         */
        function _getLines(&$text_lines, &$line_no, $end = false)
        {
            if (!empty($end)) {
                $lines = array();
                // We can shift even more
                while ($line_no <= $end) {
                    array_push($lines, array_shift($text_lines));
                    $line_no++;
                }
            } else {
                $lines = array(array_shift($text_lines));
                $line_no++;
            }
    
            return $lines;
        }
    
    }

    File PSpellShell.php

    <?php
    /**
     * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
     *
     * @package MCManager.includes
     * @author Moxiecode
     * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
     */
    
    class PSpellShell extends SpellChecker {
    	/**
    	 * Spellchecks an array of words.
    	 *
    	 * @param {String} $lang Language code like sv or en.
    	 * @param {Array} $words Array of words to spellcheck.
    	 * @return {Array} Array of misspelled words.
    	 */
    	function &checkWords($lang, $words) {
    		$cmd = $this->_getCMD($lang);
    
    		if ($fh = fopen($this->_tmpfile, "w")) {
    			fwrite($fh, "!\n");
    
    			foreach($words as $key => $value)
    				fwrite($fh, "^" . $value . "\n");
    
    			fclose($fh);
    		} else
    			$this->throwError("PSpell support was not found.");
    
    		$data = shell_exec($cmd);
    		@unlink($this->_tmpfile);
    
    		$returnData = array();
    		$dataArr = preg_split("/[\r\n]/", $data, -1, PREG_SPLIT_NO_EMPTY);
    
    		foreach ($dataArr as $dstr) {
    			$matches = array();
    
    			// Skip this line.
    			if (strpos($dstr, "@") === 0)
    				continue;
    
    			preg_match("/\& ([^ ]+) .*/i", $dstr, $matches);
    
    			if (!empty($matches[1]))
    				$returnData[] = utf8_encode(trim($matches[1]));
    		}
    
    		return $returnData;
    	}
    
    	/**
    	 * Returns suggestions of for a specific word.
    	 *
    	 * @param {String} $lang Language code like sv or en.
    	 * @param {String} $word Specific word to get suggestions for.
    	 * @return {Array} Array of suggestions for the specified word.
    	 */
    	function &getSuggestions($lang, $word) {
    		$cmd = $this->_getCMD($lang);
    
            if (function_exists("mb_convert_encoding"))
                $word = mb_convert_encoding($word, "ISO-8859-1", mb_detect_encoding($word, "UTF-8"));
            else
                $word = utf8_encode($word);
    
    		if ($fh = fopen($this->_tmpfile, "w")) {
    			fwrite($fh, "!\n");
    			fwrite($fh, "^$word\n");
    			fclose($fh);
    		} else
    			$this->throwError("Error opening tmp file.");
    
    		$data = shell_exec($cmd);
    		@unlink($this->_tmpfile);
    
    		$returnData = array();
    		$dataArr = preg_split("/\n/", $data, -1, PREG_SPLIT_NO_EMPTY);
    
    		foreach($dataArr as $dstr) {
    			$matches = array();
    
    			// Skip this line.
    			if (strpos($dstr, "@") === 0)
    				continue;
    
    			preg_match("/\&[^:]+:(.*)/i", $dstr, $matches);
    
    			if (!empty($matches[1])) {
    				$words = array_slice(explode(',', $matches[1]), 0, 10);
    
    				for ($i=0; $i<count($words); $i++)
    					$words[$i] = trim($words[$i]);
    
    				return $words;
    			}
    		}
    
    		return array();
    	}
    
    	function _getCMD($lang) {
    		$this->_tmpfile = tempnam($this->_config['PSpellShell.tmp'], "tinyspell");
    
    		if(preg_match("#win#i", php_uname()))
    			return $this->_config['PSpellShell.aspell'] . " -a --lang=". escapeshellarg($lang) . " --encoding=utf-8 -H < " . $this->_tmpfile . " 2>&1";
    
    		return "cat ". $this->_tmpfile ." | " . $this->_config['PSpellShell.aspell'] . " -a --encoding=utf-8 -H --lang=". escapeshellarg($lang);
    	}
    }
    
    ?>

    از این ابزارهای آنلاین شناسایی شلر استفاده کردم

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۷ تیر ۱۳۹۰ - ۲۳:۰۰

    توی نگاه اجمالی چیز خاصی ندارن و فایلهای معمولی وردپرس هستن.
    از خود پکیج اصلی هم آپلود می کنید ارورو میده؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    محسن غیاثی
  • niutish

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹
    تشکر شده: ۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۷ تیر ۱۳۹۰ - ۲۳:۵۷

    بله چون من از خود سایت وردپرس دانلود کردم بعد ارور داد تعجب کردم

  • عبدالماجد شه بخش ( ایجباری )

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۰۳۱
    تشکر شده: ۱۴۳۲ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۸ تیر ۱۳۹۰ - ۱۰:۱۱

    از کدوم ابزار استفاده کردید ؟
    خوب معلوم شد که به خاطر اسم این فایلها بهشون گیر داده . چون تو اسمشون کلمه ی شل رو دارن .
    دوست عزیز اگه مشکتون حل شده آیکون رو به حل شده تغییر بدید .

  • Araz

    آفلاین
    کاربر فعال
    تعداد نوشته‌ها: ۱۵۰۴
    تشکر شده: ۹۱۰ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۸ تیر ۱۳۹۰ - ۲۲:۱۵

    دوست عزیز این یک تروجان می باشد (Trojan.JS.Redirector)که بهتر است آنرا بصورت دستی و ازطریق کنترل پانل، همراه با فولدر آن حذف کنید.

    از کدام پلاگین اسفاده می کنید؟

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۴ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۹ تیر ۱۳۹۰ - ۰۳:۱۲

    توی بسته‌ی وردپرس هیچ پرونده‌ی آلوده‌ای وجود نداره، پرونده‌ی اول (shell.php) مربوط به به‌دست آوردن تغییرات بین دو متن، و پرونده‌ی دوم (PSpellShell.php) مربوط به بررسی املایی (spell checlk) ویرایشگر دیداری وردپرس هست.
    این دو پرونده جزو پرونده‌های هسته‌ی وردپرس هستن و به هیچ‌عنوان نباید پاک بشن.
    اگر به پرونده‌های موجود در میزبان‌تون بدبین هستین می‌تونین آخرین نگارش پرونده‌های فوق رو از آدرس‌هایی که دادم دریافت کنین و جایگزین پرونده‌های قدیمی کنین.

    دوستان گرامی تا در مورد چیزی مطمئن نشدین به دیگران توصیه نکنین پرونده‌های وردپرس‌شون رو پاک کنن.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    niutish - amirsaam - Araz
  • niutish

    آفلاین
    عضو
    تعداد نوشته‌ها: ۹
    تشکر شده: ۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۹ تیر ۱۳۹۰ - ۰۴:۳۸

    ممنون دوست عزیز ممنون که راهنمایی کردید درضمن از این ابزار استفاده کرده بودم http://shell.phpnuke.ir

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۴ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۹ تیر ۱۳۹۰ - ۰۶:۰۲

    من بهتون پیشنهاد می‌کنم هرچه سریع‌تر نام کاربری و رمز ftpتون رو برای امنیت بیشتر تعویض کنین.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Araz

درباره‌ی این موضوع



برچسب‌ها

هیچ برچسبی نیست.