PDA

Просмотр полной версии : Easy Upload WriteUp


kovalyoff
11.06.2025, 23:22
Интересная задачка (https://hackerlab.pro/categories/web/c86fdf72-6c63-406a-b06a-9a744bc26b61) на HackerLab.

https://forum.antichat.xyz/attachments/29119031/1749667777819.png

https://forum.antichat.xyz/attachments/29119031/1749667898936.png

Первое, что мы делаем - идем смотреть исходный код. В ходе изучения, нас привлекут файлы

upload.php

и

userprofile.php

в папке classes.

Видим, что

upload.php

позволяет нам загружать аватар пользователя, а

userprofile.php

содержит класс профиля и метод loadAvatar().

Что мы будем делать? А мы будем загружать свою "аватарку". Но перед этим создадим аккаунт и зайдем в него.

https://forum.antichat.xyz/attachments/29119031/1749668143583.png

Кстати, нам понадобится утилита

Burp Suite

. Версия Community Edition бесплатная, ее можно скачать здесь.

Итак, приступаем к созданию "аватарки". Это будет php код следующего содержания:

PHP:



theme = print_r(scandir('/'), true); ?>



scandir('/')

-наш главный инструмент. Он просканирует содержимое главной директории и выведет все файлы и папки, которые там есть.
Сохраним этот код в какую-нибудь папку и назовем, скажем,

avatarka.php

. Заходим в Burp Suite -> вкладка Proxy -> вкладка Intercept. Включаем Intercept и загружаем нашу "аватарку". Страница уходит в загрузку, а в Burp Suite мы видим следующее:

https://forum.antichat.xyz/attachments/29119031/1749669132131.png

Нас интересуют строки 17 и 18.

filename="avatarka.php"

мы меняем на

filename="avatarka.jpg"

, а в

Content-Type

меняем значение на

image/jpeg

. Делаем мы это для того, чтобы сервер принял наш файл, ведь, очевидно, файл php туда по умолчанию загрузить нельзя. В Burp Suite нажимаем

Forward

. Наша аватарка ломается.

https://forum.antichat.xyz/attachments/29119031/1749669390097.png

Но это ни в коем случае не плохо! Нам нужно посмотреть исходный код страницы. Там мы увидим следующее:

https://forum.antichat.xyz/attachments/29119031/1749669439092.png

Видим, что там затесался наш fl4g.txt. Осталось его вытащить. Меняем

avatarka.php

следующим образом:

PHP:



theme = file_get_contents('/fl4g.txt'); ?>


И, повторяя те же шаги с Burp Suite, выводим наш флаг в исходный код.

Если кто-то захочет изучить тему подробнее, такая уязвимость называется

local file inclusion

. Она позволяет выполнять локальные файлы на сервере.

tryawv
16.09.2025, 12:03
Есть на мой взгляд более простое решение

Код:



" > lol.php');

?>


по сути можно просто создать SHELL, без использования глобальных переменных

https://forum.antichat.xyz/attachments/29124176/1758009758712.png