image

Данная статья содержит решений заданий, в которых рассматриваются аутентификация javascript, обфускация javascript и javascript native code.

Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.

Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.

Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.

HTML disabled elements


image

На странице видим заблокированную форму.

image

Нам нужно ее разблокировать и использовать. Для этого откроем панель разработчика (в моем случае в браузере Firefox).

image

Наблюдаем два элемента формы, у которых присутствует параметр disabled. Нужно его просто удалить.

image

Теперь отправляем какой нибудь текст в форме и получаем флаг.

image

Javascript Authentication


image

Заходим на страницу, наблюдаем форму, где нужно ввести логин и пароль.

image

При попытке отправить какие-нибудь строки, alert’ом появляется сообщение о неверных данных.

image

Откроем исходный код. При нажатии на кнопку login, вызывается js функция Login().

image

Перейдем в панель разработчика, вкладка Debugger. В левом окне Source выбираем наш сайт и смотрим исходный код в файле login.js. Там присутсвуют данные для входа.

image

Переходим к следующему заданию.

image

Открываем страницу, нас встречает уже привычное окошко ввода пароля.

image

Открываем исходный код, забираем пароль.

image

Идем дальше.

image

По аналогии с предыдущими заданиями, открываем панель разработчика, вкладку Debugger. Из списка извлекается строка, делится на части по знаку двоеточие. Первая часть это логин, вторая — пароль.

image

Javascript obfuscation


image

Открываем исходный код, там находим переменную pass.

image

Наш пароль закодирован в URL кодировке. Перейдем в панель разработчика, вкладку Console. Декодируем с помощбю js функции decodeURI().

image

Идем дальше…

image

Опять смотрим исходники. Упоминается переменная pass.

image

Перейдем в консоль и выведем переменную pass.

image

Похоже на js код. Чтобы его выполнить, передадим pass в качестве аргумента в функцию eval().

image

Снова код и снова eval().

image

Javascript native code


image

Открываем страницу. Нас снова встречает окошко ввода пароля.

image

Открываем файл и видим native code javascript.

image

В js есть два универсальных метода: toString() и toSource(), применимые к объектам. В самом конце кода наблюдаем “()”, то есть им предшествует функция. В консоле стираем “()” и дописываем “.toSource()”.

image

Получили функцию проверки пароля, где можем видеть и сам пароль.

image

Открываем исходник, получаем js.

image

В функцию передается строка по типу переменной pass — коды символов, разделенные запятой. В самом конце вызывается функция с какой-то строкой. Давайте декодируем строку и переведем числа в символы.

image

Получаем пароль.

Дальше больше и сложнее… Вы можете присоединиться к нам в Telegram. Там можете предлагать свои темы и участвовать в голосовании на выбор темы для следующих статей.

Комментарии (2)


  1. DmitryKoterov
    17.10.2019 00:29

    Здравствуйте, я — *кий вирус. По причине ужасной бедности моего
    создателя и низкого уровня развития технологий в нашей стране я не
    способен причинить какой-либо вред Вашему компьютеру.
    Поэтому очень прошу Вас, пожалуйста, сами сотрите какой-нибудь важный
    для Вас файл, а потом разошлите меня по почте другим адресатам. Заранее
    благодарю за понимание и сотрудничество!


  1. LionisIAm
    17.10.2019 08:05

    Интересные задачки!
    Подскажите, пожалуйста, где найти их вводные данные? Условия? Хотелось бы самому попробовать