ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Easy Upload WriteUp (https://forum.antichat.xyz/showthread.php?t=1645365)

kovalyoff 11.06.2025 23:22

Интересная задачка на HackerLab.

https://forum.antichat.xyz/attachmen...9667777819.png

https://forum.antichat.xyz/attachmen...9667898936.png

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

upload.php
и
Код:

userprofile.php
в папке classes.

Видим, что
Код:

upload.php
позволяет нам загружать аватар пользователя, а
Код:

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

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

https://forum.antichat.xyz/attachmen...9668143583.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/attachmen...9669132131.png

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

filename="avatarka.php"
мы меняем на
Код:

filename="avatarka.jpg"
, а в
Код:

Content-Type
меняем значение на
Код:

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

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

https://forum.antichat.xyz/attachmen...9669390097.png

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

https://forum.antichat.xyz/attachmen...9669439092.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/attachmen...8009758712.png


Время: 18:50