PDA

Просмотр полной версии : Как использовать уязвимость через filemtime(): stat failed for path/some.css


Antohahaha
07.03.2025, 10:53
В рамках CTF, есть PHP код на сервере и при вызове он генерит страницу с такой ошибкой внутри тега ссылки на css: "Warning: filemtime(): stat failed for path/some.css /var/www/public_html/path/page.php on line 8
"
Файл действительно отсутствует по данному пути т.к. он (путь) перепутан.
Пока не нашел как залить файл на сервер, возможно как-то без этого можно? Через burp?
Поделитесь мыслями, как это применить

realisationz
09.03.2025, 02:14
Код:



?file=path/some.css


— впиши вместо этого:




Код:



?file=../../../../etc/passwd


.
Если не работает — кодируй символы.
Попробуй вместо ../ написать %2e%2e%2f (это URL-encode). Иногда сервак ест такое. Юзай Burp, чтобы ковырять запросы.
Перехвати запрос к странице с ошибкой. Ищи параметр, который указывает на CSS-файл (типа css=... или file=...). Вставь вместо него пейлоад для LFI (Local File Include), например:




Код:



../../../../../proc/self/environ


(тут иногда можно вытащить переменные окружения, где бывает флаг). Если скрипт включает файл через include() или похожее, впиши:




Код:



php://filter/convert.base64-encode/resource=page.php


Сервак вернет тебе исходник page.php в base64 — декодишь и ищешь флаг. Если сервар тупо включает любой файл как PHP (даже .css), создай свой CSS с кодом:

Код:



/* style.css */



Залей его (если есть upload), а потом дергай через параметр:




Код:



?css=путь/к/твоему.css&cmd=cat+/flag.txt


Если флага нет в /etc/passwd, ищи в /flag, /home/ctf/flag.txt, /var/www/flag.Если сервак отдает ошибки — читай их внимательно: иногда там подсказки. Race Condition: Если файл some.css создается на секунду — атакуй его через Burp Intruder, пока он живой.