반응형

wargame 4

[ 시스템 해킹 ] DreamHack WarGame : out_of_bound

1. 문제 문제를 보면 32비트라는 것과 Partial RELRO라는 것을 알 수 있고 카나리, NX는 존재하지만 PIE는 존재하지 않음을 알 수 있다. 2. 코드 #include #include #include #include #include char name[16]; char *command[10] = { "cat", "ls", "id", "ps", "file ./oob" }; void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); ..

[ 시스템 해킹 ] DreamHack WarGame : oneshot

1. 문제 일단 문제는 위와 같다. 눈에 들어오는건 64-little 라는 것과 partial RELRO이 적용되어있다는 것 카나리가 없다는것, NX와 PIE는 활성화! 2. 코드 // gcc -o oneshot1 oneshot1.c -fno-stack-protector -fPIC -pie #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(60); } int main(int a..

[ 시스템 해킹 ] DreamHack WarGame : Return to Library

1. 문제 Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000) 신경 쓸만한 코드는 64비트, Partial RELRO 라는것, 카나리와 NX 가 존재하며 PIE 가 없다는것!!! NX 보호 기법을 우회하는 공격 기법인 RTL(Return To Library)을 이용하여 푸는 문제이다. RTL을 간단하게 설명을 하자면 NX로 인해서 직접 주입한 쉘코드를 실행하는 것이 불가능해졌지만 return address를 수정하는 것은 여전히 가능하기 때문에 여전히 실행 가능한 부분을 이용하여 공격하는 기법이다. 이전 문제에서처럼 get_shell()과 같은 함수가 있으면 그냥 return ..

[ 시스템 해킹 ] DreamHack WarGame : ssp_001

1. 문제 이 문제의 환경은 이렇다. Ubuntu 16.04 Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000) 주의 깊에 본 것은 32비트 리틀엔디안인 것과 카나리가 있는것이다. 2. 코드분석 코드는 아래와 같다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler..

반응형