На странице
Незащищённая админка с непредсказуемым URL
Лаборатория
Unprotected admin functionality with unpredictable URL · Apprentice
Решение
Дано
This lab has an unprotected admin panel. It's located at an unpredictable location, but the location is disclosed somewhere in the application.
Solve the lab by accessing the admin panel, and using it to delete the user carlos.
Анализ задания
Есть открытая админка по рандомному URL. Нужно найти адрес, войти и удалить пользователя. Сделаем разведку. Будем обращать внимание на JS-файлы и код — где-то должна быть логика отображения ссылок для админа. Возможно, где-то на странице товара — предположение.
Разведка
Походил по сайту: посмотрел товар, return to list, My account. Смотрим историю запросов в Burp. Явных загрузок JS-файлов не видно.
Посмотрим HTML GET /product?productId=2 — вижу интересный кусок кода:
<script>
var isAdmin = false;
if (isAdmin) {
var topLinksTag = document.getElementsByClassName("top-links")[0];
var adminPanelTag = document.createElement('a');
adminPanelTag.setAttribute('href', '/admin-q4va6y');
adminPanelTag.innerText = 'Admin panel';
topLinksTag.append(adminPanelTag);
var pTag = document.createElement('p');
pTag.innerText = '|';
topLinksTag.appendChild(pTag);
}
</script>
Нашли адрес админки — /admin-q4va6y.
Идём в админку, удаляем пользователя. Лаба решена!
Ещё в этой категории
Web Shell Upload через обход блек-листа расширений (PortSwigger Lab)
.php в блек-листе, но .htaccess заливается без вопросов — подсовываем свой конфиг Apache и заставляем сервер исполнять shell.bug как PHP.
Web Shell Upload через обфускацию расширения (PortSwigger Lab)
Блек-лист расширений не пускает .php, двойное расширение shell.php.jpg отдаётся как картинка — null-byte shell.php%00.jpg обходит обе проверки.
Remote Code Execution через загрузку web shell (PortSwigger Lab)
Загрузка аватарки без валидации — заливаем PHP web shell и читаем /home/carlos/secret.