Dreamhack

basic_rop_x86 문제풀이1. 취약점 확인1. C언어checksec 으로 취약점을 확인해보자[*] '/home/gunp4ng/pwnable/Dreamhack/basic_rop_x86/basic_rop_x86' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) Stripped: Nox86 아키텍처에 Partial RELRO, NX-bit 가 적용된 것을 알 수 있다.Partial RELRO 가 적용되어 GOT Overwrite 가 가능하다. C 코드를 확인해보자#include..
basic_rop_x64 문제풀이1. 취약점 확인1. C언어checksec 명령어로 취약점을 확인해보자[*] '/home/gunp4ng/pwnable/Dreamhack/basic_rop_x64/basic_rop_x64' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) Stripped: Nox64 아키텍처에 Partial RELRO, NX-bit 가 적용된 것을 볼 수 있다.Partial RELRO 가 적용되어 GOT Overwrite 가 가능하다. C코드를 확인해보자#includ..
rop 문제 풀이1. 취약점 확인1. C언어checksec 명령어로 취약점을 확인해보자[*] '/home/gunp4ng/pwnable/Dreamhack/rop/rop' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)x64 아키텍처에 Partial RELRO, Nx-bit, Stack Canary 가 적용된 것을 알 수 있다.Partial RELRO 가 적용되어 GOT Overwirte 는 할 수 있다. C 코드를 확인해보자// Name: rop.c// Compile: gcc -o rop rop..
NX-bit, ASLR1. NX-bit (No-eXecute-bit)1. NX-bit 란?Nx-bit (No-eXecute-bit) 는 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법이다.메모리 영역에 쓰기 권한과 실행 권한이 함께 있으면 시스템이 취약해지기 쉽다. 코드 영역에 쓰기 권한이 있다면 공격자는 코드를 수정하여 원하는 코드를 실행할 수 있게 되고,스택 영역에 실행 권한이 있다면 Return to Shellcode 같은 공격을 시도할 수 있다. 즉, NX-bit 는 code 영역을 제외한 나머지 영역에 실행 권한을 넣지 않는 보호기법이다. 2. NX-bit 적용gcc 는 기본적으로 NX-bit 보호기법을 적용해서 컴파일한다.-z execstack따라서 Nx-bit..
ssp_001 문제 풀이1. 취약점 확인1. C 언어먼저 checksec 명령어로 취약점을 확인해보자$ checksec ssp_001[*] '/workspaces/codespaces-blank/Dreamhack/ssp/ssp_001' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000)x86  아키텍처에 카나리가 적용된 것을 확인할 수 있다. 이제 C코드를 확인해보자#include #include #include #include void alarm_handler() { puts("TIME OUT"); ex..
Return to Shellcode 문제 풀이1. 취약점 확인1. C언어먼저 checksec 명령어로 취약점을 확인해보자$ checksec r2s[*] '/workspaces/codespaces-blank/Dreamhack/r2s/r2s' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX unknown - GNU_STACK missing PIE: PIE enabled Stack: Executable RWX: Has RWX segmentsx64 아키텍처 에 canary 가 적용된 것을 확인할 수 있다. C언어를 확인해보자.// Name: r2s.c/..
스택 카나리 (Stack Canary)1. 스택 카나리1. 스택 카나리 (Stack Canary) 란?BOF 공격으로부터 반환 주소를 보호하기 위해 스택 카나리 (Stack Canary) 보호기법이 생겼다. 스택 카나리는 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법이다.카나리 값의 변조가 확인되면 프로세스는 강제로 종료 된다. BOF 공격에서 반환 주소를 덮으려면 반드시 카나리를 먼저 덮어야 하므로카나리를 모르는 공격자는 반환 주소를 덮을 때 카나리 값을 변조하게 된다.  2. 카나리 정적 분석1. 스택 카나리 비활성화// Name: canary.c#include int main() { char buf[8]; rea..
basic_exploitation_001 문제 풀이1. 코드 확인 (취약점)1. C 코드 확인파일의 보호기법은 아래와 같다Ubuntu 16.04Arch: i386-32-littleRELRO: No RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x8048000) 파일을 실행하면 바로 입력을 받는 것을 알 수 있다. $ ./basic_exploitation_001 aaaaaaaaaaaaaaaaaaaaaaaa 이제 C 코드를 확인해보자#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initiali..
basic_exploitation_000 문제풀이1. 코드 확인 (취약점)1. C 코드 확인파일을 실행하면 buf 의 주소를 출력하고 입력을 받는 것을 알 수 있다.$ ./basic_exploitation_000buf = (0xffffc3a8) checksec 명령어로 보호기법을 확인해보자.$ checksec basic_exploitation_000[*] '/workspaces/codespaces-blank/basic_exploitation_000/basic_exploitation_000' Arch: i386-32-little RELRO: No RELRO Stack: No canary found NX: NX unknown - GNU_STACK missin..
GunP4ng
'Dreamhack' 태그의 글 목록