system hacking 16

드림핵 라이브러리 주소 알아내는 방법, 특정 라이브러리를 로드하는 방법

내 컴퓨터(local)에 있는 파일에 process로 실행할 때 안 될 경우드림핵 라이브러리와 관련된 문제를 풀 때, 제대로 된 익스플로잇 코드를 짰음에도 오류가 생기는 경우는 라이브러리의 버전이나 주소 문제일 수 있다.라이브러리 파일의 주소는 gdb에 vmmap을 치면 알아낼 수 있다.0x601000 0x602000 0x1000 0x1000 /workspace/C/drop/rop 0x7ffff7dc9000 0x7ffff7deb000 0x22000 0x0 /usr/lib/x86_64-linux-gnu/libc-2.31.so 0x7ffff7deb000 0x7ffff7f63000 0x178000 0x22000 /usr..

system hacking 2024.07.03

드림핵 ssp_001 문제 풀이

문제풀이 환경 : 구름 ide1. 문제 파일 다운, 환경 파악문제의 바이너리와 소스 코드를 다운 받고 $ chmod +x ssp_001을 하여 실행 권한을 주었다.environment$ checksec를 이용해 확인할 수도 있고, 이 문제에서는 미리 주어졌다.Ubuntu 16.04Arch: i386-32-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x8048000)32비트 환경이고, Canary 보호 기법이 적용 되었음을 알 수 있다.No PIE이므로 함수의 위치가 고정 됨을 알 수 있다.2. 코드, 취약점 분석#include #include #include #include void..

system hacking 2024.06.30

드림핵 basic_exploitation_001 문제 풀이

풀이 환경 : 구름 ide구름 ide에서는 가져온 파일에 실행권한을 부여해주어야 됨.$ chmod +x basic_exploitation_001 이라는 코드로 실행 권한 부여1. 문제 파일 다운, 코드 분석basic_exploitation_001.c 코드#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(30);}void read_flag() { ..

system hacking 2024.06.29

드림핵 basic_exploitation_000 문제 풀이

문제 풀이 환경 : 구름ide1. 문제 파일 다운, 취약점 분석문제 파일을 다운 받고 실행시켜 보려 했으나 '허가 거부' 라는 오류가 뜸./basic_exploitation_000bash: ./basic_exploitation_000: 허가 거부실행권한이 없는 것이므로 아래와 같은 코드를 작성하여 해결chmod +x basic_exploitation_000문제 코드 (basic_exploitation_000.c)#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout..

system hacking 2024.06.19

드림핵 shell_basic 문제 풀이

1.파일 다운로드문제 파일을 받으면 shell_basic과 shell_basic 파일이 있다.이 파일을 구름ide로 가져온다.2.코드 분석void main(int argc, char *argv[]) { char *shellcode = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); void (*sc)(); init(); banned_execve(); printf("shellcode: "); read(0, shellcode, 0x1000); sc = (void *)shellcode; sc();}위 코드를 보면 printf 함수 이후 shellcode 메모리 영역에 위치한 ..

system hacking 2024.06.15