Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3757227
А
Аноним
23 октября 2026 16:33 · публичный вопрос
А
Аноним

Реши задание на изображении

Нейросеть23 октября 2026 16:33

Короткий ответ: по одному скриншоту конкретный код подтверждения назвать нельзя — в кадре нет содержимого файла index.html, а код, скорее всего, уникален для твоего варианта.

Принцип задания такой: сайт проверяет роль в браузере, поэтому эту проверку можно обойти, изменив данные на стороне пользователя.

Что делать:

  1. Открой index.html в блокноте/VS Code или посмотри исходник страницы через Ctrl+U.
  2. Найди место, где определяется роль. Ищи слова:
    • role, admin, isAdmin;
    • cookie, localStorage, sessionStorage;
    • location.search, URLSearchParams.
  3. Посмотри, откуда берётся роль:
    • cookie — поменяй значение в DevTools → Application → Cookies;
    • localStorage — Application → Local Storage;
    • параметр URL — добавь нужное значение в адресную строку;
    • переменная в JS — замени false на true или выполни нужную команду в консоли.
  4. Обнови страницу. Должен открыться служебный раздел и появиться код подтверждения.

Примеры действий — только если в коде именно такие имена:

document.cookie = "role=admin; path=/";
localStorage.setItem("role", "admin");

Но подставлять их наугад не нужно: сначала посмотри в исходнике, какое именно значение проверяет сайт.

Главная идея: клиентская проверка прав ненадёжна. В настоящей системе проверка роли должна выполняться на сервере, а данные браузера нельзя считать доверенными.

Обсуждение

7 сообщений
А
Аноним
Нейросеть23 октября 2026 16:34

На фото видно, что страница открылась, но роль осталась «сотрудник», поэтому административный раздел закрыт. Значит, проверку прав ты пока не изменил — нужно найти, откуда сайт берёт значение роли.

1. Быстрая диагностика в консоли

F12 → вкладка Console, выполни:

console.log('localStorage:', {...localStorage});
console.log('sessionStorage:', {...sessionStorage});
console.log('cookie:', document.cookie);
console.log('URL:', location.href);

Если в выводе появится что-то вроде role: "employee" или role: "сотрудник" — это и есть нужное место.

2. Где искать в коде

Ctrl+U (исходный код страницы) или DevTools → Sources → Ctrl+Shift+F — глобальный поиск по словам:

role, admin, employee, сотрудник, isAdmin, localStorage, cookie.

Важно посмотреть, с каким значением сравнивают. Часто пишут так:

if (role === 'admin') { ... }

Тогда подставлять надо именно admin, а не слово «администратор».

3. Действия по результату

Откуда берётся роль Что делать
localStorage Application → Local Storage → поменять значение на admin → обновить страницу
sessionStorage то же во вкладке Session Storage
cookie Application → Cookies → изменить значение
параметр URL добавить в адрес ?role=admin (или #admin)
переменная в JS отредактировать файл index.html локально или через DevTools → Local Overrides, затем перезагрузить

Универсальная команда для localStorage (только если ключ действительно role):

localStorage.setItem('role', 'admin');
location.reload();

4. После смены роли

Обнови страницу — должна открыться форма администратора, а в ней код подтверждения. Если раздел всё равно закрыт, значит роль хранится не там, где ты менял: проверь ещё Network (вкладка Network → обнови страницу → посмотри, не приходит ли роль ответом от сервера или из отдельного .js-файла).

Пришли фрагмент кода из index.html, где упоминается роль (или вывод консоли из шага 1) — по нему я скажу точную строку, которую надо изменить.

А
Аноним

Какой ответ

Нейросеть23 октября 2026 16:34

Точного кода по скриншоту не назвать: он лежит внутри index.html и обычно свой для каждого варианта. Но «ответ» в таких работах добывается за минуту — вот три места, где он почти всегда оказывается.

1. Код уже есть в HTML, просто скрыт

Самый частый вариант: блок администратора присутствует на странице, но спрятан стилем. Открой Ctrl+U и поищи по странице (Ctrl+F) слова код, code, admin, подтвержд. Или в консоли:

[...document.querySelectorAll('*')]
  .filter(e => /код|code|подтвержд/i.test(e.textContent) && e.children.length === 0)
  .forEach(e => console.log(e.tagName, e.textContent.trim()));

Если увидишь что-то вида AB12-CD34 — это и есть ответ. Аналогично проверь скрытые элементы:

[...document.querySelectorAll('[hidden], [style*="none"]')]
  .forEach(e => console.log(e.id, e.className, e.textContent.trim()));

2. Роль в localStorage / cookie

localStorage.setItem('role', 'admin');
document.cookie = 'role=admin; path=/';
location.reload();

Перед этим обязательно посмотри реальное имя ключа и нужное значение — команда выше сработает только если в коде проверяется именно role и именно admin.

3. Роль в параметре URL

Попробуй по очереди: ?role=admin, ?admin=1, #admin.


Что именно нужно прислать, чтобы я дал точный ответ: фрагмент index.html со строкой, где встречается role или admin (обычно это 3–10 строк в блоке <script>), либо вывод из консоли:

console.log(document.cookie, {...localStorage}, location.href);

По этому фрагменту я скажу точное значение и точную строку для замены.

А
Аноним

Как записать ответ

Нейросеть23 октября 2026 16:35

Записать нужно в два слоя: сам код и (если требуют) краткое пояснение, как ты его получил.

1. Код подтверждения

  • Вставляй ровно так, как показано на странице администратора: тот же регистр букв, те же дефисы и цифры.
  • Без кавычек, без пробелов в начале и конце, без слова «код» и двоеточия.
  • Если код вида AB12-CD34 — дефис сохраняй; если требуют без дефиса — убирай, но только когда это прямо сказано в условии.
  • Не перепечатывай вручную — копируй через Ctrl+C, чтобы не спутать 0/O и 1/l.

2. Пояснение (обычно 2–4 строки)

Пиши по схеме «что нашёл → что изменил → что получил»:

Роль пользователя проверялась на стороне клиента и хранилась в localStorage под ключом role со значением employee. Я изменил значение на admin и обновил страницу — открылся раздел администратора, в нём код подтверждения: XXXX-XXXX. Вывод: клиентская проверка прав ненадёжна, роль должна проверяться на сервере.

Если роль была в cookie или в URL — замени второе предложение соответственно: «изменил cookie role=admin» или «добавил параметр ?role=admin в адрес».

3. Если поле одно

Тогда только код, без пояснений. А пояснение приложи отдельным файлом/сообщением, если просят отчёт.

Уточни один момент: в задании просят только код или ещё и описание уязвимости? От этого зависит, нужен ли второй пункт.

А
Аноним
Реши задание на изображении
Короткий ответ: **по одному скриншоту конкретный код подтверждения назвать нельзя** — в кадре нет содержимого файла `index.html`, а код, скорее всего, уникален для твоего варианта. Принцип задания такой: сайт проверяет роль **в браузере**, поэтому эту проверку можно обойти, изменив данные на стороне пользователя. Что делать: 1. Открой `index.html` в блокноте/VS Code или посмотри исходник страницы через `Ctrl+U`. 2. Найди место, где определяется роль. Ищи слова: - `role`, `admin`, `isAdmin`; - `cookie`, `localStorage`, `sessionStorage`; - `location.search`, `URLSearchParams`. 3. Посмотри, откуда берётся роль: - **cookie** — поменяй значение в DevTools → Application → Cookies; - **localStorage** — Application → Local Storage; - **параметр URL** — добавь нужное значение в адресную строку; - **переменная в JS** — замени `false` на `true` или выполни нужную команду в консоли. 4. Обнови страницу. Должен открыться служебный раздел и появиться код подтверждения. Примеры действий — только если в коде именно такие имена: ```js document.cookie = "role=admin; path=/"; localStorage.setItem("role", "admin"); ``` Но подставлять их наугад не нужно: сначала посмотри в исходнике, какое именно значение проверяет сайт. Главная идея: **клиентская проверка прав ненадёжна**. В настоящей системе проверка роли должна выполняться на сервере, а данные браузера нельзя считать доверенными.