На сервере есть программа:
#include #include #include
#define memfrob(buf, len) for (int i = 0; i < len; i++) buf[i] ^= 42
int main() { char buf[512] = { '\xcc' };
setvbuf(stdout, NULL, _IONBF, 0); mprotect(&buf, 512, PROT_READ | PROT_WRITE | PROT_EXEC);
printf("Введите ваш ✨ *muszlokod* ✨: ");
fgets(buf, 511, stdin); memfrob(buf, 511); printf("Выполнение вашего кода...\n");
(*(void(*)())buf)(); return 0; }
Что нужно написать в input, чтобы получить список файлов в текущей директории и потом прочитать содержимое файла "flag.txt".
Проверить можно, подключившись к nc challenges.wsi.edu.pl 9001 через netcat.
Информатика Колледж Темы безопасности программного обеспечения и эксплуатации уязвимостей информатика программа сервер ввод список файлов текущая директория содержимое файла flag.txt netcat mprotect memfrob выполнение кода Новый
Чтобы выполнить вашу задачу, необходимо понять, как работает представленный код. Давайте разберем шаги, которые нужно предпринять для получения списка файлов в текущей директории и чтения содержимого файла "flag.txt".
1. Понимание кода:
2. Подготовка кода:
Для того чтобы получить список файлов и прочитать содержимое "flag.txt", необходимо ввести код на языке C, который будет выполнять эти действия. Вот пример кода, который вы можете использовать:
#include#include #include int main() { system("ls > output.txt"); // Список файлов в текущей директории system("cat flag.txt"); // Чтение содержимого файла flag.txt return 0; }
3. Код для ввода:
После компиляции, код должен быть преобразован в строку, которая будет передана в качестве ввода. Чтобы это сделать, можно воспользоваться следующими шагами:
4. Ввод в netcat:
Подключитесь к серверу с помощью команды:
nc challenges.wsi.edu.pl 9001
После подключения, вставьте ваш код в формате строки, который вы получили на предыдущем шаге.
5. Проверка результата:
После выполнения кода, программа должна вывести список файлов в текущей директории и содержимое файла "flag.txt". Если все сделано правильно, вы увидите флаг в выводе.
Обратите внимание, что выполнение такого кода может быть небезопасным, и вы должны быть уверены, что делаете это в контролируемой среде, например, на платформе для соревнований по безопасности.