RFI (Remote File Inclusion) — та самая уязвимость, которая позволяет хакеру залить свой shell в твой блог на php-движке. За ней стоит фича, которая появилась в PHP начиная с пятой версии: автоматическая подгрузка классов. Она позволяет не включать каждый класс в скрипты через include и require — вместо этого применяется magic-функция autoload. С примером будет яснее.

<?php
  function __autoload($class_name) {
      include $class_name . '.php';
  }

  $obj  = new MyClass1();
  $obj2 = new MyClass2();
?>

Как видишь, здесь нет описания обоих классов. Но как только мы обращаемся к ним при создании объектов, происходит вызов __autoload с именем неизвестного класса. Далее совершается попытка загрузить этот класс (с добавлением в конец .php). Удобная возможность.

Несмотря на то что теоретически имя класса может содержать только ограниченный набор символов (буквы, цифры, нижнее подчеркивание и слеш), до версий PHP 5.4.24 и 5.5.8 (не включительно) не имелось проверки на «нестандартные» символы, которые передавались функции autoload. В результате если атакующий мог контролировать имя класса, то он мог выполнить в приложении классический Remote или Local File Inclusion. Для этого ему необходимо было иметь возможность передать имя класса в одну из функций (не считая передачи через оператор new).

class_exists()
interface_exists()
method_exists()
property_exists()
is_subclass_of()
class_implements()

Это не весь перечень функций — другие проверки подвержены той же уязвимости. Вот как это работает:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


Оставить мнение

Check Also

Злой дебаг. Исследуем и взламываем приложения для Android при помощи отладчика

Мы уже неоднократно рассказывали о взломе приложений для Android. Несколько раз мы вскрыва…