LFI2RCE via phpinfo()
Для використання цієї вразливості вам потрібно: Вразливість LFI, сторінка, де відображається phpinfo(), "file_uploads = on" та сервер повинен мати можливість записувати в каталозі "/tmp".
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
Посібник HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
Вам потрібно виправити експлойт (змінити => на =>). Для цього ви можете виконати:
Вам потрібно також змінити пейлоуд в початку експлойту (наприклад, для php-rev-shell), REQ1 (це повинно вказувати на сторінку phpinfo та містити доповнення, тобто: REQ1="""POST /install.php?mode=phpinfo&a="""+padding+""" HTTP/1.1), та LFIREQ (це повинно вказувати на вразливість LFI, тобто: LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r -- Перевірте подвійний символ "%" при експлуатації нульового символу)
Теорія
Якщо в PHP дозволено завантаження файлів і ви намагаєтеся завантажити файл, цей файл зберігається в тимчасовому каталозі до того часу, поки сервер завершить обробку запиту, після чого цей тимчасовий файл видаляється.
Тоді, якщо ви знайшли вразливість LFI на веб-сервері, ви можете спробувати вгадати ім'я створеного тимчасового файлу та експлуатувати RCE, отримуючи доступ до тимчасового файлу перед його видаленням.
У Windows файли зазвичай зберігаються в C:\Windows\temp\php
У Linux ім'я файлу зазвичай випадкове і розташоване в /tmp. Оскільки ім'я є випадковим, потрібно витягнути звідкись ім'я тимчасового файлу та отримати до нього доступ перед його видаленням. Це можна зробити, прочитавши значення змінної $_FILES вмісті функції "phpconfig()".
phpinfo()
PHP використовує буфер розміром 4096 байт і коли він заповнюється, він відправляється клієнту. Потім клієнт може надсилати багато великих запитів (використовуючи великі заголовки) завантажуючи php зворотний шелл, чекати на повернення першої частини phpinfo() (де є ім'я тимчасового файлу) та спробувати отримати доступ до тимчасового файлу перед тим, як сервер php видалить файл, експлуатуючи вразливість LFI.
Скрипт Python для спроби перебору імені (якщо довжина = 6)
Last updated