System (Pwnable) (14) 썸네일형 리스트형 Dreamhack basic_rop_x86 문제 풀이 방향 Dreamhack basic_rop_x86 문제 풀이 방향https://dreamhack.io/wargame/challenges/30 basic_rop_x86Description 이 문제는 서버에서 작동하고 있는 서비스(basic_rop_x86)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일dreamhack.ioArch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) i386-32 비트이다. 디스어셈블을 해보면, 스.. basic_rop_x64 Writeup 보호되어 있는 글입니다. Dreamhack rop writeup 보호되어 있는 글입니다. Dreamhack Return to Library Writeup 보호되어 있는 글입니다. NX 및 ASLR 우회방안 - PLT GOT 설명 NXNX(No-eXecute)- 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리- 코드에 쓰기권한 있는 경우 : 임의 코드 입력, Return to Shellcode 등이 가능함- CPU가 NX를 지원해야 함.- NX를 인텔은 XD(eXecute Disable) , AMD는 NX, 윈도우는 DEP(Data Execution Prevention) , ARM에서는 XN(eXecute Never) 라고 칭하고 있습니다. 명칭만 다를 뿐 모두 비슷한 보호 기법입니다. ASLR(Address Space Layout Randomization)- 바이너리가 실행될 때마다 스택, 힙, 공유 lib 등을 임의의 주소에 할당하는 보호기법- 이제 buf의 주소를 구하는 것이 선행되어야 함 Library.. Dreamhack ssp_001 Writeup 보호되어 있는 글입니다. 스택 카나리(Stack Canary) 설명 및 카나리 우회방안(Return to Shellcode Writeup) 스택 카나리(Stack Canary) 설명 및 카나리 우회방안(Return to Shellcode Writeup)1.스택 카나리(Stack Canary)- 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에서 임의의 값을 삽입한다. - 이 값을 함수의 에필로그에서 해당 값의 변조를 확인(fs+0x28값과 현재 값을 XOR) - 카나리의 값은 TLS에 전역변수로 저장된다. 2. TLS의 주소 파악- fs의 값을 알면 TLS의 주소를 알 수 있고, fs의 값은 특정 시스템 콜에서만 조회가 가능 - arch_prctl(ARCH_SET_FS, addr)의 형태로 호출하면 fs의 값은 addr로 설정된다. - gdb 명령어 중 catch 명령어로 arch_prctl이 호출될 때를 잡아서 확인(info regist.. basic_exploitation_001 Writeup 보호되어 있는 글입니다. 이전 1 2 다음