• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

CTF Детский реверс (writeup)

Всем привет.
Так как не нашел райтапа, решил сам сделать =)

Идем в ghidra.
Создаем non-shared проект.
task1_ghidra_project.png


Выбираем папку для проекта и его название
task1_ghidra_project_2.png


Далее импортируем файл (hotkey I). На все оставшиеся вопросы отвечаем подефолту.
Переходим в CodeBrowser (иконка с гидрой) или жмём 2 раза на импортированный файл.

Далее в Symbol Tree переходим в Functions и далее m -> main. Обычно с main все и начинается.
Как видно из кода - у нас есть orig с которым сравнивается введенный flag.
Надо по сути получить то, что есть в orig в нормальном виде.
task1_main.png


Можно конечно руками все перепечатывать, но я написал скрипт на питоне, т.к. надо еще все это перевернуть.
Python:
x_0_8 = '577b594245444f43'
x_8_8 = '485f554f595f574f'
x_16_8 = '4c4145525f455641'
x_24_8 = '425f4749425f594c'
x_32_4 = '4e494152'
x_36 = '}'

x = bytes.fromhex(str(x_32_4 + x_24_8 + x_16_8 + x_8_8 + x_0_8)).decode()
print(x[::-1] + x_36)

Флаг получен.
 
  • Нравится
Реакции: Архип Борисов
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!