Chrome Devtools

Инструменты разработчика в браузере Google Chrome. Чтобы открыть инструменты разработчика нужно воспользоваться клавишей F12 или ctrl+shift+i, также можно исследовать только 1 элемент, который Вас заинтересовал - правой кнопкой мыши по элементу и выбираем "просмотр кода элемента". Выглядит все как-то так: enter image description here

Панель Elements

Панель Elements показывает разметку страницы точно так же как и рендерится она в браузере. Любое изменение сделанное с DOM через JavaScript отражается на элементах найденных в этой панели. В основном используется для того, чтобы осмотреть страницу на предмет подсказок и флагов. Например, часто бывают совсем легкие таски, пример: enter image description here Ну и как бы больше ничего. Обычно, в такой ситуации я сразу нажимаю F12, чтобы посмотреть код страницы и очень часто там бывают приятные сюрпризы, как этот: enter image description here Далее вводим логин пароль в форму и получаем флаг. enter image description here На самом деле очень часто бывает, что в простых вэб тасках в коде страницы лежит или флаг или какая-нибудь подсказка, часто это бывают комментарии. Например, это может быть какая-либо директория на сайте: enter image description here Хммм, ничего нет. Попробуем посмотреть код страницы: enter image description here Открыв код, сразу видим комментарий. Возможно, в нем все-таки есть какой-то смысл. Немного подумав над тем, что же он может значить, делаем вывод о том, что скорее всего это директория. Перейдем в нее: enter image description here enter image description here Перейдя в директорию, видим такое. Используем гугл переводчик и нам становится понятно, что ничего особенного это сообщение в себе не несет. Думаю, стоит попробовать перейти в директорию "admin/" т.к. мы в ней не были и ничего не знаем о ее содержимом. enter image description here Так выглядит директория "admin/". "pass.html" мы уже открывали, поэтому стоит перейти в директорию "backup/": enter image description here Видим файл с интересным названием, думаю стоит посмотреть его содержимое: enter image description here Вот и наш флаг. Также в панели element есть такая штука как "Copy XPath". Ее можно вызвать правой кнопкой мыши по элементу и собственно "Copy XPath". Обычно, чтобы автоматизировать какие-либо свои действия используют скрипты. Так вот для того, чтобы выбрать элемент и использовать его в своем скрипте можно воспользоваться "Copy XPath" и вставить его в какую-либо конструкцию языка, на котором вы будете писать этот скрипт. Также в хроме можно редактировать страницу, например, расскоментить текст, находящийся в тэгах комментария(в мозилле почему-то можно редактировать только текст внутри тэгов).

Панель Sources

Панель ресурсов позволяет просматривать исходники сайтов, в том числе IndexedDB, базы данных Web SQL, куки, и ресурсов кэша приложений. Также можно быстро проверить визуальные ресурсы, в том числе изображений, шрифтов и стилей. Например: enter image description here Сразу обращаем внимание на название таска. В нем тоже очень часто можно найти подсказку по решению. Переходим по ссылке: enter image description here Открываем инструменты разработчика, а именно вкладку Sources и начинаем ковырять: enter image description here В этой панельке мы можем увидеть все исходники сайта, что там и как лежит. enter image description here Ну и, наверное, сразу глаза цепляются к файлу с названием "easy.js" Смотрим содержимое: enter image description here Не очень понятный код, но почти сразу возникает мысль о том, что тут использовалась обфускация.

Обфуска́ция (от лат. obfuscare — затенять, затемнять; и англ. obfuscate — делать неочевидным, запутанным, сбивать с толку) или запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.

Гуглим: enter image description here Находим онлайн тулзу и пользуемся: enter image description here

enter image description here

В конце концов, я решил этот таск перебором всех вариантов - оказалось что ответом является эта строка

else if (ch4 == "1c3a") { alert("easyjs{" + ch1 + ch2 + ch4 + ch3 + ch7 + ch6 + ch5 + "}")

сконкатенировав строки, получаем флаг:

easyjs{39770d91fdbacee1e8ceb793c0cb5722}

Таск решен.

Панель Network

Панель сеть дает нам представление о ресурсах, которые запрашиваются и загружаются по сети в режиме реального времени. Также можно просматривать запросы, которые вы отправляете, ответы на ваши запросы, куки, хедеры и много чего еще.

В качестве примера рассмотрим тот же таск:

enter image description here

Открываем инструменты разработчика, а именно панельку Network: enter image description here Обновляем страницу и наблюдаем: enter image description here Далее сразу обращаем внимание на файл "easy.js" enter image description here жмакнув по нему, мы получаем информацию о хедерах: на какой адрес мы отправляли запрос, какой запрос, какой метод использовали, статус ответа, дата и время, с какого клиента был сделан запрос, информацию о сервере и еще множество всего. Также, перейдя в вкладку Response, мы можем увидеть ответ на наш запрос, в нашем случае это будет содержимое файла "easy.js" enter image description here Ну и как далее решать этот таск вы уже знаете. Рассмотрим еще пример использования панели Network - перейдем в /hiddensuperadminpanel.php: enter image description here

Открываем Network:

enter image description here

Сразу ну и видим, что хедеры немного поменялись - изменился запрос, т.к. тут нам нужно авторизоваться, то используется POST, сразу появились куки. А если мы попробуем залогиниться появится form data, которая покажет нам информацию, которую мы пытались ввести в форму авторизации: enter image description here

Если представить все, что там написано в форме POST-запроса, то он бы выглядел бы как:

"username=qwer&password=qwer&submit=login"